При запуске приведенный ниже скрипт автоматически меняет разрешения для всех файлов данного типа (расширения) в каталоге (один раз). После этого скрипт каждые 5 секунд проверяет каталог на наличие новых добавленных файлов и изменяет права доступа, если файл имеет заданный тип (в данном случае .py
файл).
Он имеет несколько вариантов: в данном случае, это делает вновь добавленные исполняемые файлы, но и другие действия возможны также, как это определено в строке: command = "chmod +x"
. Кроме того, вы можете определить (изменить) тип файлов (языковые расширения), которые необходимо выполнить.
Как пользоваться
Скопируйте приведенный ниже скрипт в пустой файл. Сохраните его как change_permission.py
и запустите в фоновом режиме с помощью команды:
python3 <script> <folder_to_watch>
Сценарий
#!/usr/bin/env python3
import subprocess
import time
import sys
directory = sys.argv[1]
command = "chmod +x"; check_interval = 5; extensions = (".py")
def current_files():
read = subprocess.check_output(["ls", directory]).decode("utf-8").strip()
return [item for item in read.split("\n") if item[item.rfind("."):] in extensions]
initial_files = current_files()
for file in initial_files:
subprocess.call(["/bin/bash", "-c", command+" "+directory+"/"+file])
while True:
update = current_files()
for file in update:
if not file in initial_files:
subprocess.call(["/bin/bash", "-c", command+" "+directory+"/"+file])
initial_files = update
time.sleep(check_interval)
* Примечание: если вам нужны привилегии sudo, просто запустите скрипт с sudo
vim
илиemacs
сделать это для вас.