Saya memiliki baris NOPASSWD di / etc / sudoers (diedit dengan visudo
)
gatoatigrado ALL=(ALL) NOPASSWD: /bin/set-slow-cpufreq
Namun, outputnya adalah,
gatoatigrado@coral:~> sudo -n /bin/set-slow-cpufreq
sudo: sorry, a password is required to run sudo
Perintah semacam ini bekerja pada mesin OpenSuSE, tetapi tidak pada Ubuntu 11.10. Apa yang saya lakukan salah?
Catatan : Saya tidak dapat menemukan pesan log sistem yang relevan, misalnya via tail -f /var/log/syslog
.
sunting
Inilah / etc / sudoers.
Defaults env_reset
# things I've tried copying from an opensuse machine
Defaults always_set_home
Defaults env_keep = "LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS XDG_SESSION_COOKIE"
root ALL=(ALL:ALL) ALL
gatoatigrado ALL=NOPASSWD: /bin/set-slow-cpufreq
%admin ALL=(ALL) ALL
%sudo ALL=(ALL:ALL) ALL
sudoers
, urutan aturannya tidak relevan.Jawaban:
Anda harus meletakkan baris itu setelah baris dengan aturan untuk
sudo
grup, karena, seperti yangsudoers
dinyatakan halaman manual:sumber
/etc/sudoers
dan sekarang berfungsi. Penjelasan lengkap di sini untuk orang-orang yang tertarik: techglimpse.com/ubuntu-sudoers-nopasswd-option-not-workingIdealnya jika Anda mengkustomisasi perintah apa yang dapat dijalankan melalui
sudo
Anda harus membuat perubahan ini dalam file terpisah di bawah/etc/sudoers.d/
alih-alih mengeditsudoers
file secara langsung. Anda juga harus selalu menggunakanvisudo
untuk mengedit file.Contoh:
sudo visudo -f /etc/sudoers.d/slowcpu
Masukkan izin pemberian baris Anda:
gatoatigrado ALL=NOPASSWD: /bin/set-slow-cpufreq
Kemudian simpan dan keluar dan
visudo
akan memperingatkan Anda jika Anda memiliki kesalahan sintaksis.Anda dapat berlari
sudo -l
untuk melihat izin yang telah diberikan oleh pengguna Anda, jika adaNOPASSWD
perintah khusus pengguna yang muncul SEBELUM%groupyouarein ALL=(ALL) ALL
perintah apa pun dalam output, Anda akan dimintai kata sandi.Jika Anda menemukan diri Anda membuat banyak file sudoers.d ini, maka mungkin Anda ingin membuatnya bernama per pengguna sehingga lebih mudah untuk divisualisasikan. Perlu diingat bahwa urutan NAMA FILE dan ATURAN dalam file sangat penting, yang TERAKHIR yang dimuat menang, baik LEBIH atau KURANG permisif daripada entri sebelumnya.
Anda dapat mengontrol urutan nama file dengan menggunakan awalan 00-99 atau aa / bb / cc, meskipun perlu diingat bahwa jika Anda memiliki file APA PUN yang tidak memiliki awalan numerik, mereka akan memuat setelah file bernomor, menimpa pengaturan. Ini karena tergantung pada pengaturan bahasa Anda, "pengurutan leksikal" shell menggunakan nomor urut pertama dan kemudian dapat interleave huruf besar dan kecil ketika mengurutkan dalam urutan "naik".
Coba jalankan
printf '%s\n' {{0..99},{A-Z},{a-z}} | sort
danprintf '%s\n' {{0..99},{A-Z},{a-z}} | LANG=C sort
untuk melihat apakah bahasa Anda saat ini mencetakAaBbCc
dll atauABC
kemudianabc
untuk menentukan apa awalan huruf "terakhir" terbaik yang akan digunakan.sumber
id
dan melihat grup mana yang Anda ikuti.Hanya berlari ke ini juga.
Situasi saya adalah saya menyiapkan sistem jarak jauh yang akan berjalan tanpa kepala. Saya telah mengaktifkan enkripsi disk lengkap (jika tidak, seorang penyerang dengan akses fisik dapat melakukan apa saja yang dia inginkan) Saya ingin mengotorisasi hanya dengan kunci pub (saya akan menghapus kata sandi sehingga skema "memiliki sesuatu, tahu sesuatu" akan menjadi kata sandi keypair yang dilindungi - login root tentu saja dinonaktifkan sepenuhnya)
Pemasang Ubuntu meminta pengguna admin non-root yang ditambahkan ke grup
sudo
. Saya kemudian secara manual menambahkan diri kesudoers
file menggunakansudo visudo
:CATATAN: jika Anda menggunakan nopasswd di laptop Anda, Anda harus selalu mengunci komputer Anda saat Anda berjalan pergi atau penyerang biasa dapat banyak kompromi saat Anda bangun untuk meletakkan krim dalam kopi Anda
Saya masih harus mengautentikasi kata sandi.
Jawaban enzotib adalah kunci untuk apa yang terjadi. Grup sudo muncul di sudoers setelah entri untuk nama pengguna saya.
Daripada memindahkan entri saya di bawah garis sudo saya hanya menghapus baris yang saya tambahkan sebelumnya dan kemudian ditambahkan
NOPASSWD
ke entri untuk%sudo
Itu sepertinya berhasil. Sekali lagi hanya menggunakan nopasswd jika Anda benar-benar membutuhkannya (Dalam kasus saya justru itulah yang saya butuhkan, untuk sebagian besar pengguna yang membutuhkan kata sandi untuk aktivitas sudo adalah yang terbaik)
PERINGATAN Tambahan: Selalu edit sudoers dengan visudo. (sudo visudo) Selain itu, memiliki jendela lain terbuka beralih ke pengguna root memungkinkan Anda untuk memulihkan kesalahan yang mungkin Anda buat saat mengubah file sudoers.
sumber
sudo
yang menggunakan izin Anda sendiri untuk menambahkan pengguna lain ke grup sudo selain menjalankan perintah yang Anda minta.Pada sistem jarak jauh, lepaskan enkripsi, tetapi biarkan semuanya dimiliki oleh root seperti dalam grup "Administrator" - itu bukan 0!
Anda dapat mengubah
#sudo -g Administrators
mereka yang membutuhkan akses penuh - bukan disudo
file, tetapi.login
profil. Setiap skrip standar sekarang dapat memiliki akses ke remote sebagai "root" dan Anda dapat melindungi file yang harus dilindungi."Grup" praktis lainnya adalah "Sandbox" dengan direktori login di cache browser dan dapat membaca ini dengan bebas dan tidak ada yang lain. Gunakan karakter pertama huruf besar.
sumber