GNU/Linux >> Belajar Linux >  >> Linux

Sudo - apakah ada perintah untuk memeriksa apakah saya memiliki sudo dan/atau berapa banyak waktu yang tersisa?

Saya tahu ini adalah pertanyaan yang sangat lama tetapi inilah yang saya lakukan dalam skrip hari ini. Dengan asumsi bahwa menjadi sudo berarti dapat menjalankan perintah apapun sebagai sudo (atau, setidaknya, uptime)

CAN_I_RUN_SUDO=$(sudo -n uptime 2>&1|grep "load"|wc -l)
if [ ${CAN_I_RUN_SUDO} -gt 0 ]
then
    echo "I can run the sudo command"
else
    echo "I can't run the Sudo command"
fi

Namun, jika pengguna Anda memiliki batasan dalam visudo, pemeriksaan ini tidak akan cukup, misalnya jika pengguna Anda hanya dapat menggunakan perintah make. Coba jalankan beberapa perintah yang Anda tahu akan berhasil. Anda dapat menambahkan filter grep -v Sorry, misalnya:$(sudo -n uptime 2>&1|grep "load" | grep -v Sorry|wc -l) untuk menghindari false positive tersebut.


-n opsi tersedia di versi sudo yang lebih baru, tetapi seperti yang Anda nyatakan itu bukan opsi. Tidak ada cara nyata untuk melakukan apa yang Anda cari selain hanya mencoba sudo dan melihat apakah itu kembali dengan prompt kata sandi. Jika kekhawatiran Anda adalah Anda menginginkan indikasi visual, mengapa tidak mulai melakukan sudo /bin/bash untuk memulai sesi root bash? Perhatikan bahwa ini tidak aman, tetapi juga agak tidak aman jika seseorang menyadari prompt Anda berubah pada sudo.


Untuk menyederhanakan jawaban yang diberikan oleh @wags007

if sudo -n true
then
  sudo id
else
  echo "sorry, but did not want to bother you"
fi

Namun, jika dalam konfigurasi https://www.sudo.ws/man/1.8.15/sudoers.man.html Anda memiliki defaults mail_badpass akan ada email yang dikirim untuk setiap tes yang hasilnya salah (akan diminta). Untuk menghindari gangguan seperti itu, ubah bagian dari file sudoers Anda menjadi

Defaults       mail_badpass
Defaults!      /bin/true !mail_badpass

Akibatnya surat peringatan keamanan dikirim untuk semua perintah kecuali /bin/true. Ya, seseorang sekarang dapat mencoba memaksa kata sandi dengan memanggil sudo true berkali-kali tanpa batas tanpa mengirimkan email peringatan keamanan apa pun.

Catatan:Selalu gunakan visudo alih-alih editor favorit Anda untuk mengedit file sudoers. Jika tidak melakukannya, Anda berisiko terkunci.


Linux
  1. Cara Menyalin File Dan Mengubah Kepemilikan, Izin Pada Saat Yang Sama

  2. Bagaimana cara memeriksa apakah saya memiliki akses sudo?

  3. Bagaimana cara memeriksa berapa banyak ruang kosong yang tersisa di perangkat untuk membuat partisi

  1. Cara Memeriksa Apakah Sistem Linux 32 bit Atau 64 Bit

  2. Bagaimana cara memeriksa apakah pipa kosong dan menjalankan perintah pada data jika tidak?

  3. Bagaimana Cara Mengingat Opsi Perintah??

  1. Periksa Berapa Lama Skrip Bash Dijalankan Dengan Perintah Waktu

  2. Trik Baris Perintah:Cara Mengidentifikasi Tanggal dan Waktu Eksekusi Perintah Unix

  3. Bagaimana saya bisa memeriksa file yang ada dan menjalankan perintah jika tidak?