Відповіді:
Якщо заборонити деяке використання ACL за межами основної системи дозволів, a chmod 000
можна скасувати без додаткових повноважень. Біти дозволу керують доступом до вмісту файлу, але вони не контролюють доступ запису до самих бітів дозволу. Як правило, root і власник файлу завжди мають доступ до запису до бітів дозволу. Отже, ви повинні мати можливість "відновити" файл, якщо ви можете вчинити дії як власника файлу.
$ id -u
501
$ echo foo > foo
$ stat -f '%u %p' foo; cat foo
501 100644
foo
$ chmod 000 foo
$ stat -f '%u %p' foo; cat foo
501 100000
cat: foo: Permission denied
$ chmod 644 foo
$ stat -f '%u %p' foo; cat foo
501 100644
foo
Якщо у вас є доступ до оболонки, і ваш користувач оболонки володіє файлом (або ваш користувач може перейти до власника файлу (su / sudo /…)), то просто chmod
поверніть його вручну. В іншому випадку, якщо ви можете редагувати скрипт PHP (а PHP працює як власник файлу), просто відредагуйте його chmod
у файлі до потрібних дозволів.
Якщо ви можете змінити PHP, який створив файл, в першу чергу, можливо, ви могли б зробити PHP скинути дозволи на те, що ви хочете ...