Удаление файла chmod 0 без прав суперпользователя?

2041
Tarnschaf

PHP-скрипт случайно изменил правильные флаги (chmod) каталога на 0. (Нет доступа ни к кому, включая владельца). Если у меня нет корневого доступа к этому серверу, возможно ли снова удалить файл с помощью FTP или PHP?

2

3 ответа на вопрос

6
Chris Johnsen

Запрет на использование списков ACL за пределами базовой системы разрешений 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в файл с желаемыми разрешениями.

0
Chris Kimpton

Если вы можете сначала изменить PHP, который создал файл, возможно, вы могли бы заставить PHP сбросить разрешения на то, что вы хотите ...

-1
Snark

В основном нет. Вы потеряли весь доступ к файлу. Только root может изменять права доступа к этому файлу. Обратитесь к системному администратору или администраторам хостинговой компании или интернет-провайдера, размещающего сайт.

Похожие вопросы