SOLUSI 1: newgrp
Cara sederhana untuk mengatasi kasus penggunaan Anda adalah menggunakan :NOPASSWDdalam kombinasi dengan grup dan sandi grup:
Tambahkan baris ke sudoers:
%rudo ALL=(ALL:ALL) NOPASSWD:ALL
Buat grup yang dilindungi sandi:
groupadd rudo
gpasswd rudo # Enter passwd
Sekarang ketika Anda login sebagai pengguna yang tidak berhak (dengan asumsi Anda belum masuk dalam rudogrup), login ke rudogrup, di mana Anda akan diminta kata sandi.
login user
newgrp rudo
Sekarang Anda dapat menjalankan tanpa sudokata sandi, selama Anda tetap masuk ke grup.
SOLUSI 2: runaspw
Cara yang lebih baik, mungkin lebih aman untuk melakukan ini menggunakan runaspw. runaspwdikaitkan dengan runas_defaultopsi sehingga Anda harus menambahkan opsi itu juga.
Dengan asumsi Anda sudah memiliki %sudoentri grup default :
%sudo ALL=(ALL:ALL) ALL
tambahkan baris ini ke file sudoers:
Defaults:%sudo runas_default=sudo
Defaults:%sudo runaspw
Sekarang tambahkan sudopengguna baru dengan kata sandi:
useradd sudo -d /nonexistent -s /usr/sbin/nologin -MNr
passwd sudo
Sekarang pengguna grup sudo akan diminta untuk passwd pengguna sudo tetapi hanya pengguna dalam grup sudo yang dapat sudo (tidak seperti dengan solusi grup di atas, di mana siapa pun dalam grup atau dengan passwd grup dapat sudo).
Masalah kecil adalah runas default pengguna sekarang sudojadi untuk sudo sebagai root Anda harus secara eksplisit menentukan root:
sudo -u root <cmd>
Tapi cukup mudah untuk mendefinisikan alias ( alias sudo='sudo -u root') atau perintah sudo tidak langsung.