При ініціації сценарій нижче автоматично змінює дозволи всіх файлів заданого типу (розширення) в каталозі (один раз). Після цього сценарій перевіряє каталог кожні 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
зробити це для вас.