Saya memiliki skrip shell lokal yang melakukan sejumlah tes pada host jarak jauh, sebelum mengirimkan payload; salah satu dari tes ini adalah apakah pengguna memiliki hak sudo, diperiksa hanya dengan sudo -v
namun ini mengharuskan pengguna untuk memasukkan kata sandi mereka. Selain itu host jarak jauh tampaknya memiliki batas waktu sudo instan sehingga entri kata sandi diperlukan pada setiap koneksi baru, dan ini adalah sesuatu yang saya tidak punya izin untuk ubah (sebagai kebijakan).
Tentu saja saya dapat menguji apakah pengguna adalah bagian dari kelompok tertentu, tetapi kemudian ini tidak akan menjadi agnostik untuk konfigurasi host jarak jauh, jadi saya berharap ada metode yang dapat memeriksa yang tidak perlu mengasumsikan grup pengguna, juga karena tidak membutuhkan input pengguna?
Terima kasih!
PEMBARUAN: Untuk menggemakan komentar saya, saya hanya ingin menguji apakah pengguna bisa saja sudo, tanpa memerlukan interaksi pengguna untuk tes itu.
sudo -l
meminta kata sandi saya.sudo -k
terlebih dahulu.Jawaban:
Saya khawatir satu-satunya hal yang dapat Anda uji adalah jika pengguna memiliki hak sudo tanpa kata sandi.
Menjalankan
Jika $? adalah 0, pengguna memiliki akses sudo tanpa kata sandi, jika $? adalah 1, pengguna membutuhkan kata sandi.
Jika Anda memerlukan verifikasi untuk program tertentu, ubah
true
dengan program Anda, dengan cara program tidak melakukan apa pun, sepertichmod --help
sumber
X
inisudo
mampu tanpa memasukkan password dan tanpa sengaja menjalankannyaJika Anda memiliki satu pengguna dengan akses sudo, seperti "root", Anda dapat menggunakannya untuk memeriksa login lainnya. Sebagai pengguna dengan akses dijalankan:
sudo -n -l -U foo 2> & 1 | egrep -c -i "tidak diizinkan menjalankan sudo | pengguna tak dikenal"
Jika mengembalikan nol, "foo" memiliki akses. Kalau tidak, ia tidak memiliki akses sudo.
sumber
sudo -n -l cmd
dan Anda akan diberi tahu jika pengguna saat ini memiliki akses sudo ke cmd. Jika Anda ingin menguji hasilnya.Itu akan memberi Anda cukup untuk memutuskan apakah Anda memiliki privasi yang Anda inginkan / butuhkan.
sumber
Saya tahu bahwa ini adalah pertanyaan yang sangat lama, tetapi saya menemukan keberuntungan dengan
-n
bendera (non-interaktif) dan-v
/-l
. Tapi, Anda harus memeriksa hasilnya:Beberapa redirection-output dan grepping akan membawa Anda ke sana, mungkin:
sumber