Untuk mengklarifikasi sedikit: Tidak ada "perintah sudo", hanya ada perintah yang membutuhkan hak akses root untuk beroperasi dengan benar dan sudo
adalah perintah untuk memperolehnya untuk satu perintah: sudo
cukup jalankan perintah yang diberikan sebagai root (baca "sudo" sebagai imperatif) kalimat "pengguna super, lakukan sesuatu!"). Aturan tentang mana pengguna dapat melakukan hal ini tertulis dalam /etc/sudoers
. Pada instalasi Raspbian default, "pi" pengguna default telah mendapatkan izinnya dari baris ini:
pi ALL=(ALL) NOPASSWD: ALL
Ini berarti: "Pi 'pengguna pada SEMUA host diizinkan untuk beralih ke SEMUA pengguna dan TIDAK harus mengetik PASSWD-nya saat menggunakan SEMUA (baca: apa saja) perintah". (Saya menggunakan tata bahasa gila di sini untuk mempertahankan urutan baris .. catatan tentang mengapa ada cara untuk membedakan host: cara ini, file sudoers yang sama dapat didistribusikan ke beberapa mesin di jaringan sehingga admin jaringan memiliki lebih sedikit pekerjaan) .
Mungkin bisa menjalankan perintah menggunakan sudo tanpa mengeluarkan kata sandi admin adalah alasan mengapa Anda pikir itu berbahaya untuk menggunakan sudo di atas SSH (Saya belum pernah mendengar masalah umum dengan melakukan itu ... begitu juga Anda bisa jelaskan bahaya apa yang sebenarnya Anda maksudkan?).
Tentu Anda dapat memiliki banyak pengguna dengan izin berbeda. Tapi saya khawatir menggunakan sudo masih merupakan cara terbaik untuk mengelola izin ini.
Jadi, saya harap resep kecil ini adalah yang Anda butuhkan:
$ sudo adduser admin
Ini akan membuat pengguna "admin", meminta kata sandi, membuat direktori rumahnya, dll.
$ sudo adduser admin sudo
$ sudo adduser admin adm
Ini akan menempatkan pengguna "admin" ke grup pengguna "sudo" dan "adm". Dan karena izin dikelola di Linux dengan menambahkan pengguna ke grup pengguna, ini memberi pengguna "admin" semua hak istimewa dan izin yang ia butuhkan. Ada baris di /etc/sudoers
dalamnya yang memungkinkan setiap pengguna yang ada di grup pengguna "sudo" untuk mengeksekusi perintah apa pun sebagai root; dan hak istimewa ini adalah apa yang kami butuhkan untuk pengguna admin (menambahkannya ke "adm" memungkinkannya untuk membaca beberapa file log /var/log
tanpa menggunakan sudo
dan beberapa hal lainnya). Anda masih perlu menggunakan sudo
saat Anda masuk sebagai admin - tetapi sekarang sudo lagi dan lagi meminta kata sandi admin setiap kali Anda tidak menggunakan sudo selama sekitar lima menit.
Sekarang logoff dan logon sebagai "admin" pengguna. Periksa apakah
$ sudo apt-get update
$ sudo apt-get upgrade
bekerja. Jika ya, Anda dapat mencabut beberapa hak istimewa dari pengguna "pi", karena Anda sekarang yakin bahwa pengguna admin Anda memiliki hak istimewa yang tepat:
$ sudo deluser pi sudo
$ sudo deluser pi adm
Ini membuat pengguna "pi" keluar dari grup pengguna "sudo".
$ sudo visudo
Ini akan memulai editor yang memungkinkan Anda untuk mengedit /etc/sudoers
. Letakkan tagar ( #
) sebelum baris dimulai dengan "pi", berkomentar (atau cukup hapus). Kemudian simpan dan keluar dari editor, visudo akan segera memuat kembali aturan privilege. Sekarang pengguna "pi" tidak lagi diizinkan untuk menggunakan sudo.
Setelah itu, Anda dapat masuk kembali sebagai "pi" pengguna. Jika Anda ingin beralih ke admin untuk beberapa perintah, gunakan su
("alihkan pengguna"):
$ su - admin
Jika Anda ingin menambahkan lebih banyak pengguna: gunakan sudo adduser <name>
seperti di atas, lalu periksa daftar grup pengguna yang telah diperoleh "pi":
$ groups pi
pi : pi dialout cdrom audio video plugdev games users netdev input
Gunakan sudo adduser <username> <groupname>
untuk menambahkan pengguna baru Anda ke beberapa grup pengguna ini, memungkinkan dia untuk menggunakan audio, video dipercepat, menggunakan perangkat yang dapat dicolokkan, dll. Jika tidak yakin, tambahkan dia ke semua grup pengguna ini (tetapi tidak untuk "sudo"!).