У меня есть два пользователя userA и userB. userA имеет разрешение на файл с именем cache . Я хочу дать разрешение пользователю Б удалить файл. Я сделал следующую запись в файл /etc/sudoers :

userB ALL=(userA) NOPASSWD:/bin/rm /opt/cache

Когда я sudo -u userA /bin/rm /opt/cache , он говорит, что разрешение отклонено. Однако кеш имеет 777 разрешений. Пожалуйста, дайте мне знать, где я делаю это неправильно.

1 ответ1

1

NOPASSWD принимает список программ через запятую. Сделайте это вместо этого:

userB ALL=(userA) NOPASSWD:/bin/rm

Обратите внимание, что это позволит пользователю В удалить любой файл, который пользователь А может удалить.

Лучшим, более контролируемым решением может быть изменение группы владельцев этого файла на какую-то группу, которой разрешено его удаление, а затем добавление пользователей в эту группу.

Вы могли бы также избежать использования сценария оболочки, который удаляет этот файл и указывает его вместо этого. Хотя не уверен, и позаботьтесь о том, чтобы только root или userA могли редактировать этот скрипт.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .