Jawaban:
Jika saya memahami masalah Anda dengan benar, maka saat ini Anda tidak memiliki sudoer dan Anda mencoba melakukan sudo dan itu tidak berfungsi. Dalam hal ini, agar sudo berfungsi, Anda dapat melakukan hal berikut:
Untuk memeriksa sudo berjalan baik cd /etcdan sudo vim sudoers. Anda harus dapat melihat file sudoers melalui editor vim. Operasi baca / tulis di / etc akan membutuhkan perintah sudo.
Saya tahu ini sedikit mengejutkan bahwa bahkan setelah tidak memiliki sudoers, melalui UI kita dapat melakukan operasi di / etc. Tapi itu berhasil untuk saya :)
Saya berasumsi Anda mencoba menjalankan sudoperintah dan itu memberi Anda kesalahan yang /etc/sudoerstidak memiliki izin yang benar?
Jika sebelumnya Anda telah memberikan Adminstatus akun Anda, Anda harus dapat memperbaiki izin melalui GUI. Buka folder "/ etc" di Finder ("Go" -> "Go to Folder ..."), lalu buka sudoersproperti file. Klik kunci. Berikan admingrup read/write, systempengguna read-only, wheelgrup read-only, dan everyonegrup no access. Izin sekarang harus benar.
Jika Anda tidak menempatkan diri dalam admingrup, Anda harus me-reboot OSX ke mode pengguna tunggal dan melakukan perintah chmod 0440 /etc/sudoers.
Aktifkan pengguna root menggunakan preferensi sistem, dan kemudian buat / etc / sudoers saat login sebagai pengguna root menggunakan
touch /etc/sudoers; chmod 440 /etc/sudoers
Catatan: Karena perintah dijalankan sebagai root dalam kasus ini, dan id grup /etcadalah 0, maka seharusnya secara default dimiliki oleh pengguna dan grup yang benar setelah dibuat ulang, tetapi jika karena alasan tertentu tidak, jalankan
chown root:wheel /etc/sudoers
Setelah Anda membuat /etc/sudoersgunakan visudo untuk memasukkan kode ini ke dalamnya:
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
# Failure to use 'visudo' may result in syntax or file permission errors
# that prevent sudo from running.
#
# See the sudoers man page for the details on how to write a sudoers file.
#
# Host alias specification
# User alias specification
# Cmnd alias specification
# Defaults specification
Defaults env_reset
Defaults env_keep += "BLOCKSIZE"
Defaults env_keep += "COLORFGBG COLORTERM"
Defaults env_keep += "__CF_USER_TEXT_ENCODING"
Defaults env_keep += "CHARSET LANG LANGUAGE LC_ALL LC_COLLATE LC_CTYPE"
Defaults env_keep += "LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME"
Defaults env_keep += "LINES COLUMNS"
Defaults env_keep += "LSCOLORS"
Defaults env_keep += "SSH_AUTH_SOCK"
Defaults env_keep += "TZ"
Defaults env_keep += "DISPLAY XAUTHORIZATION XAUTHORITY"
Defaults env_keep += "EDITOR VISUAL"
# Runas alias specification
# User privilege specification
root ALL=(ALL) ALL
%admin ALL=(ALL) ALL
# Uncomment to allow people in group wheel to run all commands
# %wheel ALL=(ALL) ALL
# Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
# Samples
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users localhost=/sbin/shutdown -h now
ALL ALL=(ALL) NOPASSWD:/opt/dplat/bin/Revision/CMUpdatePackage/Installer.app/Contents/MacOS/I nstaller
ALL ALL=(ALL) NOPASSWD:/opt/dplat/bin/UpdatePackageInstaller.app/Contents/MacOS/UpdatePackage Installer
Jika Anda bukan seorang admin, Anda dapat mem-boot sistem ke mode single-user (ini dapat dilakukan dengan mematikan perangkat dan menahan perintah pada saat startup) dan menjalankan:
mount -uw /
dan Anda akan berada di terminal dengan hak akses root, dan Anda akan dapat menjalankan perintah di atas untuk mengatur /etc/sudoers
Saya membuat file / tmp / sudoers dengan konten dalam jawaban John Militer dan menjalankan variasi perintah tmm1.
osascript -e 'do shell script "cat /tmp/sudoers > /etc/sudoers; chown root:wheel /etc/sudoers" with administrator privileges'
Bagus!!!
Jawaban di atas mencakup konten default file, cara memindahkannya ke tempatnya dengan Finder dan mengubah izinnya. Namun, sudo akan mengeluh kecuali pemilik file sudoers adalah root. Satu-satunya cara untuk mengubah pemilik tanpa sudo adalah melalui perintah ini:
osascript -e 'do shell script "chown root:wheel /etc/sudoers" with administrator privileges'