На видалення sudo дозволено заборонено


0

У мене є два користувачі userA та userB. userA має дозвіл на файл з іменем cache. Я хочу надати користувачевіB дозвіл на видалення файлу. Я зробив наступний запис у /etc/sudoersфайлі:

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

Коли я набираю текст sudo -u userA /bin/rm /opt/cache, він каже, що дозвіл відхилений. Однак кеш має 777дозвіл. Будь ласка, дайте мені знати, де я роблю це неправильно.


Зазвичай /opt/cacheце каталог (я бачу, ви редагували "каталог" на "файл", але я не знаю, чому?). Вам потрібно rm -rвидалити каталог. Також ви можете отримати дивні помилки, якщо /opt/cacheце точка монтажу. Ви випадково використовуєте SELinux?
Джейсон C

кеш - це файл у моєму випадку. Я помилково набрав там каталог, і я не використовую SELinux. Крім того, це не точка монтажу. Для більшої ясності, будь ласка, знайдіть результат ll:-rwxrwxrwx. 1 userA userA 87475 Jun 17 06:39 cache
newbie17

Відповіді:


1

NOPASSWDприймає список програм, розділених комами. Зробіть це замість цього:

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

Зверніть увагу, що дозволить userB видалити будь-який файл, який користувачA може видалити.

Кращим, більш контрольованим рішенням може бути зміна групи власників цього файлу на якусь групу, якій дозволено видалити її, а потім додати користувачів до цієї групи.

Ви також можете піти зі скриптом оболонки, який видаляє цей файл, і вказавши натомість. Не впевнений, але подбайте про те, щоб тільки root або userA могли редагувати цей сценарій.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.