Назад | Перейти на главную страницу

Почему пользователь root может редактировать файлы, доступные только для чтения, а обычный пользователь с доступом sudo - нет?

Если вы попытаетесь добавить в файл без прав на запись (скажем, файл / etc / sudoers, который принадлежит пользователю root и имеет разрешения 0440), это сработает, если вы являетесь фактическим пользователем root. Однако, если вы другой пользователь, использующий sudo, вы получите ошибку отказа в разрешении.

Почему это? Это не из-за владельца файла - он также не работает с файлами, принадлежащими обычному пользователю. Настоящий пользователь root, похоже, имеет больше разрешений, чем предоставляется с помощью sudo. В чем причина этого? Есть ли способ предоставить это разрешение пользователям, использующим sudo?

Похоже, вы делаете что-то вроде:

sudo echo "blah blah blah de blah" >> /etc/protected_file

Это не работает, потому что sudo применяется к echo команда, которая успешно запускается от имени пользователя root, но перенаправление является частью вашей текущей оболочки, которая не работает как root.

Общие решения:

sudo bash -c 'echo "blah blah blah de blah" >> /etc/protected_file'

и

echo "blah blah blah de blah" | sudo tee -a /etc/protected_file

Примечание: вы должны использовать «visudo» для редактирования файла sudoers, потому что он проверяет файл на наличие синтаксических ошибок, прежде чем позволить вам их зафиксировать, чтобы вы не заблокировали себя.