Напишите скрипт Linux, который можно запустить от имени пользователя root / sudo. - PullRequest
0 голосов
/ 07 октября 2011

Что я хочу сделать, это:

  • Напишите скрипт для установки некоторого программного обеспечения с помощью yum: yum установите все, что вам нужно
  • Этот скрипт будет выполнен пользователем, у которого нет прав root или sudo

Я не возражаю против ввода пароля root в скрипт, я просто не знаю, как это сделать, я имею в виду, что мой скрипт может выглядеть так:

sudo -u root -p password
yum install whatever

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

Ответы [ 2 ]

5 голосов
/ 07 октября 2011

Полная мощность описана здесь :

Гибкость sudo широко недооценивается. Это приводит к очень плохим практикам (таким как sudo su - метод хирургии канонического шара).

Гораздо лучший метод - разрешить команды, которые вы хотите разрешить без использования пароля :

phill = NOPASSWD: /bin/ls, /usr/bin/lprm

При желании вы можете сделать это для определенных пользователей с определенных хостов, работающих как определенные пользователи-администраторы. Вы даже можете запретить пользователям передавать экранированные символы в качестве параметров. Вы можете заставить sudo запретить запущенной программе динамически запускать другие приложения и т. Д. И т. Д. Вам нужно прочитать справочную страницу для sudoers (и обязательно прочитать процедуры по редактированию этого специального файла!) .

Вот небольшой вкус вещей, ( отсюда ):

User_Alias     OPERATORS = joe, mike, jude
Runas_Alias    OP = root, operator
Host_Alias     OFNET = 10.1.2.0/255.255.255.0
Cmnd_Alias     PRINTING = /usr/sbin/lpc, /usr/bin/lprm

OPERATORS ALL=ALL
#The users in the OPERATORS group can run any command from any terminal.

linus ALL=(OP) ALL
# The user linus can run any command from any terminal as any user in the OP group (root or operator).

user2 OFNET=(ALL) ALL
# user user2 may run any command from any machine in the OFNET network, as any user.

user3 ALL= PRINTING
# user user3 may run lpc and lprm from any machine.

go2linux ALL=(ALL) ALL
# user go2linux may run any command from any machine acting as any user. (like Ubuntu)

 If you want not to be asked for a password use this form
go2linux ALL=(ALL) ALL NO PASSWD: ALL
0 голосов
/ 07 октября 2011

Если у пользователя нет разрешений sudo, то вызов sudo совершенно бесполезен, поскольку он просто запрещает доступ. Также: используя sudo, пользователь будет запрашивать не пароль root, а свой собственный пароль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...