
Я запускаю свой сервер как пользователь root, но, несмотря на это, при запуске команды ls
я получаю следующую ошибку:
bash: /bin/ls: Permission Denied.
Я пытался изменить разрешения этого файла с помощью, chmod
но разрешение также отклонено. В чем причина этого?
решение1
Этому есть несколько возможных причин.
- Файловая система смонтирована
noexec
. - Повреждение файловой системы, которое необходимо исправить с помощью fsck.
- Файловая система является чужой, и неправильный перевод разрешений приводит к отказу в привилегиях.
- В каталоге, содержащем двоичный файл, не установлен бит выполнения (что приводит к проблеме с обходом)
- В подкаталоге каталога не установлен бит выполнения (применяется только в том случае, если двоичный файл вложен более чем в один каталог)
- В двоичном файле не установлены биты чтения и выполнения для вашего идентификатора пользователя или идентификатора группы.
- Вы на самом деле не root (UID 0), хотя в имени учетной записи указано
root
. Хотя это и маловероятно, но возможно. Обратите внимание, чтоroot
это не на 100% то же самое, что UID 0, который является «специальным» идентификатором, обходящим проверки привилегий.root
Однако счет таков :нанесенный на картук UID 0. - Правила SELinux/grsecurity запрещают все. (спасибо Янне Пиккарайнен! у меня был небольшой психологический блок из-за этой досады.)
- Один или несколько двоичных файлов скомпрометированы. В этом случае вы не можете доверять ничему, что вы запускаете.
Чтобы по-настоящему понять, что происходит, необходимо больше информации.