Как узнать, являюсь ли я sudoer?
Как работает система Linux, когда я не sudoer? Вот что произойдет, если я попытаюсь использовать sudo:
server:/tmp>$ sudo cal
[sudo] password for user:
Sorry, try again.
Возможно ли, что я просто не знаю свой пароль, или это означает, что я не sudoer? (На другой машинной системе напечатано, что я не судья, и об этом инциденте сообщается)
3 ответа
Чтобы узнать, имеет ли конкретный пользователь доступ к sudo или нет, мы можем использовать -l
и -U
.
Например,
Если пользователь имеет доступ к sudo, он будет печатать уровень доступа sudo для этого конкретного пользователя.
$ sudo -l -U pradeep User pradeep may run the following commands on this host: (ALL : ALL) ALL
Если у пользователя нет доступа к sudo, он будет печатать, что пользователю не разрешено запускать sudo на localhost.
$ sudo -l -U pradeep.c User pradeep.c is not allowed to run sudo on localhost.
Вы можете использовать флаг -l
, чтобы перечислить свои привилегии.
-l[l] [command]
If no command is specified, the -l (list) option will list the allowed (and forbidden)
commands for the invoking user (or the user specified by the -U option) on the current
host. If a command is specified and is permitted by sudoers, the fully-qualified path
to the command is displayed along with any command line arguments. If command is
specified but not allowed, sudo will exit with a status value of 1. If the -l option
is specified with an l argument (i.e. -ll), or if -l is specified multiple times, a
longer list format is used.
Если вы не в файле, вы должны получить ошибку «не в файле sudoers», которую вы видели на другой машине.
Вы можете проверить, находитесь ли вы в группе sudo, используя команду
groups
В сценарии оболочки вы можете использовать это:
if groups | grep "\<sudo\>" &> /dev/null; then
echo yes
else
echo no
fi