Як дізнатись, чи я судо?


32

Як поводиться система Linux, коли я не судер? Ось що відбувається, якщо я спробую використовувати судо:

server:/tmp>$ sudo cal
[sudo] password for user:
Sorry, try again.

Чи можливо, я просто не знаю свого пароля чи це означає, що я не судер? (На іншій машинній системі надруковано, що я не судер, і про інцидент буде повідомлено)


Краща відповідь, ніж будь-яке із наведеного нижче: superuser.com/questions/553932/…
barnhillec

Відповіді:


40

Щоб знати, чи має конкретний користувач доступ до 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.

4
Це не працює для мене. Замість того, щоб давати мені інформацію, він знову запитує мене паролем: server:/home/drasto>$ sudo -l -U drasto [sudo] password for drasto:на цьому сервері є
distro

9

Ви можете використовувати -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", яку ви побачили на іншій машині.


2
Це також не працює для мене. Він просто запитує мене паролем:server:/home/drasto>$ sudo -l [sudo] password for drasto:
Rasto

1
Введіть свій пароль
Кевін

1
@Kevin @Michael Мій пароль не працює. Я знаю лише один пароль для цього сервера, і саме цей я використовую для входу на сервер. Це просто не працює, коли мене запитують пароль для sudo (я пробував його близько 100 разів, caplock, numlock тощо). Але вся думка не має сенсу! Я хочу знати, чи є у мене права привілеїв, але щоб дізнатися, чи потрібні мені привілеї ?! Для запуску sudo -lмені потрібен пароль для sudo? Тож я повинен мати корінь, щоб знати, чи я корінь ?!
Расто

1
@drasto Як сказано в законопроекті, sudoшукає ваш пароль для входу. Тож якщо ви спробували це, і це не працює, або sudo жахливо неправильно налаштовано, або ви знаходитесь у в'язниці, де він не бачить чи не читає належні файли. Так чи інакше, у вас фактично немає дозволів на судо.
Кевін

1
@Kevin Тоді я, мабуть, в якійсь тюрмі. Насправді я думаю, що я не повинен мати цих дозволів на судо на цій машині. Тож я здивувався, коли в першу чергу він запитав мене про свій пароль sudo. У будь-якому випадку це так, як я писав: мій пароль для входу не працює.
Расто

-1

Ви можете перевірити, чи є ви в групі судо, скориставшись командою

groups

У скрипті оболонки ви можете використовувати це:

if groups | grep "\<sudo\>" &> /dev/null; then
   echo yes
else
   echo no
fi

1
Група може бути sudo, admin, wheelабо що - то зовсім інше, і навіть членство в групі, окремий користувач може бути відмовлено в доступі Судо за певними правилами (або навпаки).
muru

У мене занадто багато помилкових негативів для моєї мети (посилення перевірки). Відповідь Кевіна більш остаточна.
StockB
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.