Как я использую аргументы команды с Cmnd_Alias в sudoers?

Современные версии Ubuntu на 64 бита имеют dpkg мультидугу, включенную по умолчанию. Можно установить пакеты на 32 бита путем добавления :i386 в конец имени пакета. Можно найти больше информации о мультидуге в Ubuntu здесь.

38
19.01.2017, 18:32
2 ответа

Вы не использовали никаких подстановочных знаков, но предоставили два аргумента. Следовательно Sudo Sudo ищет команды именно так, как написано (исключая путь к пути) (из MAN 5 Sudoers ):

 If a Cmnd has associated command line arguments, then the arguments in
 the Cmnd must match exactly those given by the user on the command line
 (or match the wildcards if there are any).

Попробуйте что-то вроде:

Cmnd_Alias AWSS3_CMD = /usr/local/bin/aws s3 cp *, /usr/local/aws/bin/aws s3 cp *

Обратите внимание, что:

 Wildcards in command line arguments should be used with care.  Because
 command line arguments are matched as a single, concatenated string, a
 wildcard such as ‘?’ or ‘*’ can match multiple words. 

так Только один подстановочный знак нужен за команду.

47
27.01.2020, 19:36

То же, что и @muru, но для тех, кто любит полный рабочий пример:

# Cmnd alias specification
Cmnd_Alias ECHO_CMD=/bin/echo A *,/bin/echo B *

# Make USER run specific commands on given HOSTNAME
# USER_NAME 

#userx
userx ALL=(root) NOPASSWD: /sbin/cmd1,/sbin/cmd2,ECHO_CMD

В то время как /sbin/cmd1, /sbin/cmd2могут быть любыми другими командами.

Цель ECHO_CMDсостоит в том, чтобы представить, что sudo echo X Aбудет запрашивать кодовую фразу, а sudo echo A Xнет, и позволить вам обрести уверенность посредством такого простого эксперимента.

(Предполагалось, что эхо находится в /bin/echo, чтобы проверить, где оно находится в вашей системе, попробуйтеwhereis echo)

12
27.01.2020, 19:36

Теги

Похожие вопросы