Проблема виконання команди як іншого користувача з sudo -u


12

Коли я намагаюся виконати lsяк користувач abcіз такою командою, я отримую помилку:

xyz@host:~/temp$ sudo -u abc ls
[sudo] password for xyz:
Sorry, user xyz is not allowed to execute '/bin/ls' as abc on host.

Але якщо я це зробити, su abcа потім виконати, у lsмене немає проблем

Відповіді:


17

Ви повинні налаштувати політику безпеки sudo, щоб дозволити користувачеві xyz виконувати щось як користуваче abc. Прочитайте "man sudoers" і використовуйте команду visudo для налаштування / etc / sudoers.

Наприклад, дозвольте користувачеві xyz exec / usr / bin / whoami як користувач abc без пароля. Додайте цей рядок до / etc / sudoers (з візуально, не редагуйте / etc / sudoers безпосередньо):

xyz ALL = (abc) NOPASSWD: /usr/bin/whoami

А тепер протестуйте:

xyz@host:~$ sudo -u abc /usr/bin/whoami
abc

Ви не проти пояснити, чому слід уникати редагування / тощо / sudoers безпосередньо?
Аді

Тому що, коли ви редагуєте / etc / sudoers безпосередньо, ви можете помилитися, зламали файл sudoers і (в гіршому випадку) заблокуєте себе використанням sudo. "Visudo" - це не лише редактор, він також перевіряє синтаксис файлу sudoers і допомагає уникнути помилок, помилок друку тощо
svq

4

Це тому sudo, що відрізняється від su. Коли ви su abcстанете користувачем abc, що стосується системи. Потім ви можете робити все, що abcможна зробити.

З іншого боку, sudoвикористовується, щоб дозволити іншим користувачам виконувати деякі команди за допомогою проксі. Іншими словами, ваша sudoконфігурація дозволяє виконувати деякі команди від імені abc. Якщо команда, яку ви намагаєтеся виконати, не є однією з них, ви отримаєте повідомлення про помилку.


0

У випадку, якщо все виглядає нормально, але ви все одно отримуєте Sorry user xxx cannot execute...повідомлення, і воно постійно запитує вас про sudoпароль.

Ви можете зробити це:

  1. У /etc/sudoersрядку видалення з налаштуваннями користувача
  2. Зберегти файл
  3. Відкрийте файл, введіть (NO COPING) свої параметри для цього користувача
  4. Зберегти файл
  5. Спробуй це.

Це працювало для мене. Виявилося, що закінчення в цьому рядку було поганим, оскільки я скопіював команди, які потребували виконання з електронної пошти.


Звичайно, якби ви visudoв першу чергу це редагували, вам би це сказали?
Auspex

Ні, ви б не стали.
борбар

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