그래서 파일의 그룹 소유자를 특정 그룹으로 변경하는 코드를 설정했습니다.
PS 동일한 폴더와 파일 구조를 가진 사용자가 10명 이상 있는데 각 폴더에 있는 특정 파일의 소유권을 변경하고 싶습니다.
이렇게 하면 누군가가 파일을 편집하면 10초 이내에( cron
및 sleep
기능 사용) 그룹 소유자가 특정 그룹으로 변경됩니다.
이것은 내가 사용하고 owner.sh라는 파일을 만든 코드입니다.
chgrp www-data /home/*/private/FILE.TXT
sleep 10
chgrp www-data /home/*/private/FILE.TXT
sleep 10
chgrp www-data /home/*/private/FILE.TXT
sleep 10
chgrp www-data /home/*/private/FILE.TXT
sleep 10
chgrp www-data /home/*/private/FILE.TXT
sleep 10
chgrp www-data /home/*/private/FILE.TXT
sleep 10
작동해야 하지만 공격하려고 하면
bash owner.sh
존재 하지 않는다고 하는데 /home/*/private/FILE.TXT
수동으로 실행하면 존재합니다.
chgrp www-data /home/*/private/FILE.TXT
, 각 사용자의 폴더로 이동하여 해당 특정 파일에 대한 그룹을 변경합니다.
그렇다면 내가 원하는 대로 작동하게 하려면 어떻게 해야 할까요?
답변1
노력하다:
#!/bin/bash
while true; do
for user in $(ls /home); do
chgrp www-data /home/${user}/private/FILE.TXT
done
sleep 10
done
무한 루프는 1분 반복 작업의 크론 제한을 우회하는 것입니다. 실행 가능하게 만드세요:
chmod +x /PATH/TO/owner.sh
cronjob 없이 그냥 실행하세요.
또는 파일 수정에 반응하고 해당 파일의 소유권을 직접 수정하려는 경우 inotify-tools를 사용할 수 있습니다.
#!/bin/bash
for user in $(ls /home); do
inotifywait -mqe close_write /home/${user}/private/FILE.TXT --format %f | while IFS= read -r file; do chgrp www-data $file; done
done
한번만 실행해 보세요