Saya telah melihat banyak posting blog yang mengatakan, itu sudah cukup untuk dilakukan
aptitude install sudo
su root
adduser USERNAME sudo
Tapi itu hanya melindungi aptitude
, dengan kata lain:
aptitude install sendmail
akan meminta kata sandi, Anda harussudo
menjalankanaptitude
apt-get install sendmail
tidak akan meminta kata sandi, tidaksudo
diperlukan hak istimewaJika Anda mengedit file yang dilindungi, seperti file di
etc
dalamnya tidak akan meminta kata sandi, tidaksudo
diperlukan hak istimewaAnda dapat menjalankan dan menghentikan layanan seperti
apache
, tidak akan meminta kata sandi, tidaksudo
diperlukan hak istimewa
Bagaimana cara memperbaikinya? Ini adalah file sudoers saya:
This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:$
# Host alias specification
# User alias specification
# Cmnd alias specification
Ini adalah output dari sudo -l
:
Matching Defaults entries for root on this host:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User root may run the following commands on this host:
(ALL : ALL) ALL
(ALL : ALL) ALL
sudo
root
not-root-user
debian
Lynob
sumber
sumber
su root
, Anda masuk sebagairoot
pengguna, sehingga Anda memiliki akses penuh ke semuanya. Untuk kembali menjadi penggunaan biasa yang harus digunakansudo
untuk operasi istimewa, logout dari shell berjalan sebagairoot
.Jawaban:
Anda belum menambahkan aturan sudo, jadi Anda tidak bisa menggunakan sudo untuk apa pun.
Perintah
adduser USERNAME sudo
menambahkan pengguna yang ditentukan ke grup yang dipanggilsudo
. Grup dengan nama itu harus ada; buat denganaddgroup sudo
jika tidak. Setelah menambahkan pengguna ke grup, pengguna harus keluar dan kembali agar keanggotaan grup berlaku.sudo
bukan nama grup khusus. Ini adalah konvensi untuk memungkinkan pengguna dalam grup yang dipanggilsudo
untuk menjalankan perintah sebagai root melaluisudo
utilitas. Ini membutuhkan baris berikut dalamsudoers
file:Jalankan
visudo
untuk mengedit file sudoers, jangan pernah mengeditnya secara langsung.Saya tidak tahu mengapa Anda percaya bahwa "itu hanya melindungi bakat". Tidak ada yang istimewa tentang bakat. Setelah Anda mengizinkan pengguna untuk menjalankan perintah sebagai root, pengguna itu dapat menjalankan
sudo aptitude …
atausudo apt-get …
atausudo service …
, atausudoedit
mengedit file yang memerlukan izin root untuk mengedit. Berada di file sudoers tidak secara langsung mengubah hak pengguna Anda, yang dilakukannya adalah memungkinkan Anda menjalankansudo
untuk menjalankan perintah sebagai root. Perintah dijalankan sebagai root hanya ketika Anda menjalankannyasudo
. Beberapa program dapat melakukannya secara otomatis, terutama program GUI di mana antarmuka pengguna berjalan tanpa hak istimewa dan hanya backend yang berjalan sebagai root, tetapi perintah yang dijalankan sebagai root selalu dijalankan olehsudo
.sumber
sudo -l
sebagai root. Bahkan jika ada definisi yang berguna untuk pengguna, mereka tidak akan ditampilkan. Jadi tebakan Anda "Anda belum menambahkan aturan sudo" mungkin salah.sudoers
file ada dalam pertanyaan.sudo -l
output tetapi untungnya ... Tampaknya konten pertanyaan tidak boleh seluruh file karena tidak konsisten dengan output. Setidaknyasudo
versi saya tidak mengklaim "Root pengguna dapat menjalankan perintah berikut" dengansudoers
tanpa definisi perintah (seperti yang ada di pertanyaan).sudo -l
hanya mengatakan "User root tidak diizinkan menjalankan sudo di darkstar.". Dansudo
grup tersebut ada dalam file sudoers secara default saat mengi. Entri yang diperlukan mungkin telah dipindahkan ke file di bawah/etc/sudoers.d
. Bagaimanapun, apa pun file sudoers berisi, itu tidak akan melakukan apa yang diasumsikan Fischer.Apa yang mungkin terjadi adalah: sudo sedang caching kata sandi Anda. Jadi, setelah Anda menyelesaikan implementasi sudo dengan benar di sistem Anda, Anda harus memasukkan kata sandi untuk perintah pertama , dan setelah itu di-cache untuk beberapa waktu. Jika itu terjadi dan Anda menjalankan urutan
Maka Anda harus memberikan kata sandi pada perintah pertama, tetapi tidak pada perintah kedua (setidaknya saat Anda masih dalam batas waktu). Ini mungkin terasa seperti hanya melindungi perintah pertama, tetapi bukan yang kedua. Tanpa informasi lebih lanjut (transkrip shell lengkap), tidak ada cara untuk memberi tahu ...
sumber
Jika Anda mengikuti jawaban di atas, Anda berada di jalan yang benar. Paling tidak di Debian Jessie saya, saya membuat tautan lunak ke / usr / bin dari perintah di path / sbin. Sebagai contoh: / sbin / ifup, saya meletakkan tautan lunak (ln -s) ke / usr / bin dan saya dapat menggunakannya.
Hal penting lainnya adalah menempatkan NOPASSWD seperti ini:
sumber