sudo su другому пользователю для запуска скрипта - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь войти в систему как USER1 и переключить пользователя на USER2 и выполнить некоторые сценарии (100+ сценариев, не могу перечислить их все в файле sudoer по одному) как USER2

в Sudoerфайл, который у меня есть

   USER1 ALL=(USER2) NOPASSWD: ALL

Когда я запускаю следующее как USER1

  sudo su - USER2 -c "test.sh"

Я получаю

Извините, пользователю USER1 не разрешено выполнять '/bin / su - USER2 -c test.sh 'от имени root

, если я запускаю

  sudo su - sassrv

Я получаю

Извините, пользователь USER1 являетсяне разрешено выполнять '/ bin / su - USER2'

Если я изменю файл Sudoer на

         USER1 ALL=(ALL) NOPASSWD: /bin/su - USER2

Это позволит мне сменить пользователя, но я все еще получаю

Извините, пользователю USER1 не разрешено выполнять '/ bin / su - USER2 -c test.sh' от имени root

Как мне этого добиться?

1 Ответ

0 голосов
/ 06 сентября 2018

Вы хотели запустить test.sh как USER2 с sudo, но вместо этого вы запускаете su как root.

su может, в свою очередь, попытаться запустить test.sh как USER2, но это выходит за рамки и знания sudo. С точки зрения sudo, единственное, что вы делаете, это пытаетесь запустить команду от имени пользователя root.

Вместо этого попросите sudo запустить test.sh непосредственно от имени пользователя USER2:

sudo -u USER2 test.sh

PS: sudo su в любом контексте - это запах кода, который указывает на отсутствие понимания того, что такое и что делает sudo.

...