Sangat umum bagi administrator untuk mengedit sudoers file dan memungkinkan pengguna untuk menjalankan perintah administratif. Tapi bagaimana jika Anda membuat kesalahan? sudo perintah akan gagal bukan? Itulah tepatnya yang saya lakukan saat menginstal OpenStack di mesin Ubuntu. Nah, inilah yang saya lihat setelah melakukan kesalahan di sudoers berkas.
#openstack@devstack:~$ sudo -s >>> /etc/sudoers.d/50_stack_sh: syntax error near line 1 <<< >>> /etc/sudoers.d/50_stack_sh: syntax error near line 2 <<< >>> /etc/sudoers.d/50_stack_sh: syntax error near line 3 <<< sudo: parse error in /etc/sudoers.d/50_stack_sh near line 2 sudo: no valid sudoers sources found, quitting sudo: unable to initialize policy plugin
Kesalahan di atas memberitahu kita dengan jelas bahwa ada kesalahan sintaks pada baris 1, 2 dan 3! Untuk menambah kekacauan ini, saya tidak ingat sandi root. Seberapa menakutkan itu? Tentu saja, tapi inilah solusinya.
Perbaiki kesalahan dalam file sudoers menggunakan perintah pkexec
Solusi :Sistem Ubuntu modern dan banyak distribusi Linux lainnya telah memudahkan untuk memperbaiki kesalahan di sudoers mengajukan. Dengan asumsi Anda berwenang untuk menjalankan program sebagai root, jalankan perintah di bawah ini dan masukkan kata sandi Anda. Perintah pkexec bersama dengan visudo akan dieksekusi sebagai root dan memungkinkan Anda untuk mengedit sudoers berkas.
openstack@openstack-devstack:~$ pkexec visudo -f /etc/sudoers
Dalam kasus saya, /etc/sudoers.d/50_stack_sh file memiliki kesalahan sintaks pada baris 1, 2 &3. Berikut adalah perintah untuk memperbaiki kesalahan tersebut.
openstack@openstack-devstack:~$ pkexec visudo -f /etc/sudoers.d/50_stack_sh ==== AUTHENTICATING FOR org.freedesktop.policykit.exec === Authentication is needed to run `/usr/sbin/visudo' as the super user Authenticating as: openstack,,, (openstack) Password: