Bagaimana saya mencari tahu apakah saya sudoer?

32

Bagaimana sistem Linux berperilaku ketika saya tidak sudoer? Inilah yang terjadi jika saya mencoba menggunakan sudo:

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

Apakah mungkin saya tidak tahu kata sandi saya atau apakah ini berarti saya tidak sudoer? (Pada sistem mesin lain dicetak bahwa saya bukan sudoer dan insiden itu akan dilaporkan)

Rasto
sumber
Jawaban yang lebih baik daripada yang di bawah ini: superuser.com/questions/553932/…
barnhillec

Jawaban:

40

Untuk mengetahui apakah pengguna tertentu memiliki akses sudo atau tidak, kita dapat menggunakan -ldan -Uopsi secara bersamaan.

Sebagai contoh,

Jika pengguna memiliki akses sudo, itu akan mencetak tingkat akses sudo untuk pengguna tertentu.

   $ sudo -l -U pradeep
     User pradeep may run the following commands on this host:
     (ALL : ALL) ALL

Jika pengguna tidak memiliki akses sudo, itu akan mencetak bahwa pengguna tidak diizinkan menjalankan sudo di localhost.

   $ sudo -l -U pradeep.c
     User pradeep.c is not allowed to run sudo on localhost.
pradeepchhetri
sumber
4
Ini tidak bekerja untuk saya. Alih-alih memberi saya informasi itu meminta saya untuk kata sandi lagi: server:/home/drasto>$ sudo -l -U drasto [sudo] password for drasto:Ada distro Red Hat di server itu jika itu membantu
Rasto
9

Anda dapat menggunakan -lbendera untuk mendaftar hak istimewa Anda.

-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.

Jika Anda tidak ada dalam file, Anda harus mendapatkan kesalahan "not in the sudoers file" yang Anda lihat di komputer lain.

Kevin
sumber
2
Ini juga tidak berfungsi untuk saya. Itu hanya meminta saya untuk kata sandi:server:/home/drasto>$ sudo -l [sudo] password for drasto:
Rasto
1
Masukkan kata sandi Anda
Kevin
1
@Kevin @Michael Kata sandi saya tidak berfungsi. Saya hanya tahu tentang satu kata sandi untuk server itu dan itu yang saya gunakan untuk masuk ke server. Yang itu tidak berfungsi ketika saya diminta kata sandi sudo saya (saya sudah mencobanya sekitar 100 kali, capslock, numlock, dll). Tetapi seluruh pemikiran itu tidak masuk akal! Saya ingin tahu apakah saya memiliki hak sudo tetapi untuk mengetahuinya saya perlu hak sudo ?! Untuk menjalankan sudo -lsaya perlu kata sandi sudo? Jadi saya harus menjadi root untuk mengetahui apakah saya root?
Rasto
1
@drasto Seperti yang dikatakan tagihan, sudosedang mencari kata sandi login Anda . Jadi, jika Anda sudah mencobanya dan tidak berhasil, baik sudo salah konfigurasi atau Anda berada di penjara yang tidak bisa melihat atau membaca file yang tepat. Apa pun itu, Anda sebenarnya tidak memiliki izin sudo.
Kevin
1
@Kevin Lalu aku mungkin di penjara semacam itu. Sebenarnya saya pikir saya seharusnya tidak memiliki izin sudo pada mesin itu. Jadi saya terkejut ketika pertama kali menanyakan kata sandi sudo saya. Pokoknya sama seperti yang saya tulis: kata sandi login saya tidak berfungsi.
Rasto
-1

Anda dapat memeriksa apakah Anda berada dalam grup sudo, dengan menggunakan perintah

groups

Dalam skrip shell, Anda mungkin ingin menggunakan ini:

if groups | grep "\<sudo\>" &> /dev/null; then
   echo yes
else
   echo no
fi
Schlacki
sumber
1
Kelompok ini bisa sudo, admin, wheel, atau sesuatu yang lain sama sekali, dan bahkan dengan keanggotaan dalam kelompok, pengguna individu mungkin ditolak akses sudo melalui aturan tertentu (atau sebaliknya).
muru
Ini memiliki terlalu banyak negatif palsu untuk tujuan saya (pengerasan verifikasi). Jawaban Kevin lebih pasti.
StockB