Тест, есть ли у пользователя sudo полномочия, не требуя ввода данных пользователем

Как Kyle упомянул, нет никаких классов больше и не были в течение почти 15 лет.

Диапазоны IP частной сети:
10.0.0.0 к 10.255.255.255
172.16.0.0 к 172.31.255.255
192.168.0.0 к 192.168.255.255

12
задан 28 February 2012 в 12:12
4 ответа

Боюсь, что единственное, что вы можете проверить, - это наличие у пользователя прав sudo без пароля.

Выполнить

sudo -n true

If $? равно 0, пользователь имеет доступ к sudo без пароля, если $? равно 1, пользователю нужен пароль.

Если вам нужна проверка для конкретной программы, измените true в своей программе таким образом, чтобы программа ничего не делала, например chmod - -help

11
ответ дан 2 December 2019 в 21:35

Если у вас есть один пользователь с доступом к sudo, например, "root", вы можете использовать его для проверки других логинов. Как пользователь с доступом выполняется:

sudo -n -l -U foo 2>&1 | egrep -c -i "не разрешен запуск пользователя sudo|unknown"

Если он возвращает ноль, то "foo" имеет доступ. В противном случае, у него нет доступа к sudo.

3
ответ дан 2 December 2019 в 21:35

sudo -l

Этого должно быть достаточно, чтобы решить, есть ли у вас приваты, которые вам нужны.

.
1
ответ дан 2 December 2019 в 21:35

Я знаю, что это очень старый вопрос, но мне повезло с флагом -n (неинтерактивный) и -v / -1 . Но вы должны проверить вывод:

$ sudo -vn && sudo -ln  #User with cached credentials
User adminuser may run the following commands on computername:
    (ALL) ALL
$ sudo -vn && sudo -ln  #User who _can_ sudo but isn't cached
sudo: a password is required
$ sudo -vn && sudo -ln  #User who can't at all
Sorry, user nonadmin may not run sudo on computername.

Некоторое перенаправление вывода и grepping, вероятно, приведут вас к этому:

if (sudo -vn && sudo -ln) 2>&1 | grep -v 'may not' > /dev/null; then
  #they're cool
  exit 0 #Or, whatever
fi
1
ответ дан 2 December 2019 в 21:35

Теги

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