Apa yang dilakukan layanan sudo?


17

Sejauh yang saya tahu dan tampaknya orang lain memiliki pendapat yang sama sudo adalah perintah yang mengeksekusi sesuatu dengan hak administratif.

Namun ketika saya menjalankan rcconfsaya dapat melihat baris ini:

[*] sudo    Provide limited super user privileges to specific users

Lantas apa gunanya layanan ini? Atau bahkan ini layanan?


Ini adalah apa yang saya temukan saat mencari google-> Sudo
adi

"Di sinilah sudo masuk - memungkinkan pengguna yang diotorisasi (biasanya pengguna" Administratif "; untuk informasi lebih lanjut silakan merujuk ke AddUsersHowto) untuk menjalankan program tertentu sebagai Root tanpa harus mengetahui kata sandi root." - Itulah tepatnya yang saya katakan dalam pertanyaan saya.
s3v3n

3
Pertanyaannya adalah tentang layanan, bukan perintah
s3v3n

Jawaban:


22

Jawaban singkat

Untuk mencabut tindakan otentikasi 'cache' dari pengguna saat reboot. Ini bukan daemon, hanya skrip yang dijalankan saat boot.


Jawaban yang luas

Dengan memeriksa file init /etc/init.d/sudoyang 'memulai layanan', Anda dapat dengan mudah melihat apa yang dilakukannya:

case "$1" in
  start)
        # make sure privileges don't persist across reboots
        if [ -d /var/lib/sudo ]
        then
                find /var/lib/sudo -exec touch -t 198501010000 '{}' \;
        fi
        ;;
  stop|reload|restart|force-reload)
        ;;
  *)
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

Jadi, pada dasarnya, itu hanya menyentuh beberapa file di /var/lib/sudoawal sistem untuk memilikinya cap waktu modifikasi yang sangat lama. Akibatnya, tindakan otentikasi yang diberikan 'di-cache' dicabut pada awal layanan (yang terjadi saat boot).

Lebih detail tentang /var/lib/sudodirektori dan stempel waktu itu? Nah, dari peta sudo(8):

[...]
Once a user has been authenticated, a time stamp is updated and the
user may then use sudo without a password for a short period of time
(15 minutes unless overridden in sudoers).
[...]
Since time stamp files live in the file system, they can outlive a
user's login session.  As a result, a user may be able to login, run a
command with sudo after authenticating, logout, login again, and run
sudo without authenticating so long as the time stamp file's
modification time is within 15 minutes (or whatever the timeout is set
to in sudoers).
[...]
/var/lib/sudo           Directory containing time stamps

Jawaban sempurna :)
s3v3n

12

File sudolayanan ada untuk memastikan bahwa hak istimewa yang dipanggil tidak tetap setelah reboot. Pada dasarnya itu menjamin bahwa setelah reboot, pengguna normal yang meminta izin root akan tetap sebagai pengguna normal.


Penjelasan rinci tentang sudo

Semua penjelasan di bawah ini adalah untuk mendapatkan semua informasi untuk semua orang yang membaca pertanyaan ini dan kemudian menjelaskan apa yang dilakukan file sudo di folder layanan di sana.

Saat Anda menginstal Ubuntu atau distro lain yang menggunakan sudoperbedaan antara menjadi root dan menjadi pengguna yang menggunakan sudountuk mendapatkan hak istimewa "root like" (Hak Istimewa pengguna super atau administratif) adalah sebagai berikut:

Sebagai root

  • Anda tidak dimintai kata sandi untuk setiap atau semua perintah yang Anda jalankan pada suatu sesi
  • Tidak semua perintah yang Anda jalankan akan dicatat secara default
  • Sistem menganggap Anda tahu apa yang Anda lakukan (Alasan mengapa ia tidak meminta kata sandi setiap kali Anda menjalankan perintah)
  • Tidak ada kesempatan kedua atau opsi menit terakhir jika Anda melakukan kesalahan

Sebagai sudo

  • Anda diminta kata sandi untuk setiap atau semua perintah yang Anda jalankan pada suatu sesi. Misalnya jika Anda membuka terminal dan menjalankan perintah yang memerlukan hak administratif, ia akan meminta kata sandi satu kali untuk sesi itu hingga Anda menutup terminal atau logout. Ini bervariasi tergantung pada perintah apa yang Anda gunakan dan di mana. Mungkin bertanya sekali atau beberapa kali.
  • Semua perintah yang Anda jalankan akan dicatat karena Anda sebenarnya meminta izin untuk menggunakan perintah istimewa pengguna super.
  • Sistem mengasumsikan Anda meminta izin sementara dan hak administratif akan dipinjamkan sementara (Sampai Anda keluar, tutup terminal, dll.)
  • Anda memiliki opsi menit terakhir untuk memperbaiki kesalahan. Ini dilakukan saat Anda diminta untuk memasukkan kata sandi.

Mengapa SUDO Dibuat

Pembuatan SUDO dilakukan karena di masa lalu, menggunakan root menciptakan lebih banyak masalah daripada solusi. Pengguna memiliki semua hak, yang berarti bahwa jika mereka melakukan pembersihan musim semi dan benar-benar menghapus /usr, /libdan /binfolder (karena mereka pikir mereka tidak membutuhkannya) .. tebak apa yang akan terjadi. Banyak masalah di masa lalu adalah karena pengguna tidak tahu kekuatan yang mereka miliki saat menggunakan root. Pada dasarnya mereka memiliki root tetapi tidak mengerti Linux, hierarki sistem file, file apa yang penting, dll. (Sesuatu seperti memiliki ferrari dan tidak tahu cara mengemudi ... di jalan raya!)

SUDO juga digunakan oleh aplikasi GUI (Suka Pembaruan Manajer) ketika mereka membutuhkan hak administratif sementara untuk melakukan sesuatu. Mereka hanya membutuhkannya untuk jumlah perintah tertentu (Biasanya 1) dan kemudian mereka kembali ke hak istimewa tingkat pengguna. Ini untuk menghindari hak akses root setiap saat dan untuk menghindari membuat kesalahan jika pengguna memutuskan untuk menghapus beberapa bagian penting dari sistem.

Selain itu memberikan keamanan yang lebih baik karena pengguna root dinonaktifkan secara default.

Terakhir, jika Anda memiliki Desktop PC atau Server, Anda benar-benar tidak ingin semua orang menjadi root, atau memiliki semua hak istimewa admin. Gagasan yang sangat buruk jika adik perempuan Anda mulai bertanya-tanya apa yang akan terjadi jika /bootbertemu DELkunci. Di sinilah sudomasuk untuk mengurangi kemungkinan sesuatu yang buruk terjadi.

Apa yang dimaksud dengan Memberikan hak istimewa pengguna super terbatas untuk pengguna tertentu ?

pengguna sudo atau sudoers sebenarnya memiliki file konfigurasi yang memberitahu mereka seberapa terbatas atau membuka perintah sudo untuk pengguna tertentu. File /etc/sudoersmemiliki semua informasi untuk membatasi atau memberikan akses ke pengguna sudo. Secara default ia datang dengan akses ke semuanya, tetapi Anda dapat mengkonfigurasi atau membatasi ini seperti yang Anda inginkan.

Untuk informasi tentang cara menggunakan jenis file sudoers man sudoersdi terminal. Misalnya format normal adalah:

PENGGUNA HOST = PERINTAH

Sebagai contoh cyrex server1 = /bin/lsakan memberikan cyrex pengguna di host server1 akses untuk menjalankan perintah ls.

Sebagai contoh cyrex server1 (root) = /bin/lsakan memberikan cyrex pengguna di host server1 akses untuk menjalankan perintah ls sebagai root.

Sebagai contoh cyrex ALL = /bin/lsakan memberikan cyrex pengguna di semua host akses untuk menjalankan perintah ls.

Sebagai contoh cyrex ALL = ALLakan memberikan cyrex pengguna di semua host akses untuk menjalankan semua perintah.

Sebagai contoh luis ALL=(root) NOPASSWD: /bin/kill, /usr/bin/killallakan memungkinkan saya untuk menjalankan sudo untuk killdan killallperintah sebagai root tanpa meminta kata sandi.

masukkan deskripsi gambar di sini


2
Dia tahu tentang apa yang dilakukan perintah sudo. Pertanyaannya adalah tentang layanan sistem untuk sudo.
gertvdijk

1
@ gertvdijk - Saya harus terlebih dahulu menjelaskan dasar-dasarnya, karena tidak hanya dia yang akan melihat pertanyaan ini. Bagian terakhir mencakup satu-satunya alasan saya melihat file sudo di folder layanan.
Luis Alvarado

Terima kasih Luis Alvarado - The Wolver untuk informasi yang begitu luas dan terima kasih atas xkcd yang dimodifikasi lucu yang merujuk pada !!operator bang bang, tetapi apa yang dilakukan layanan (BUKAN perintah) sudo? Alangkah baiknya jika Anda dapat memperbarui jawaban Anda untuk benar-benar menjawab pertanyaan itu.
s3v3n

1
Sedikit terlalu banyak menjelaskan semua itu hanya untuk sebuah frase pada akhirnya, tetapi itu menjawab pertanyaan saya;)
s3v3n

1
@ LuisAlvarado-TheWolverine Haha, kan? Sangat baik bahwa Anda menjawab saya ya, saya lakukan .. Terima kasih
Lucio
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.