Câu trả lời:
Nếu tôi hiểu chính xác vấn đề của bạn, thì hiện tại bạn không có sudoers và bạn đang cố gắng làm sudo và nó không hoạt động. Trong trường hợp này, để sudo hoạt động, bạn có thể làm như sau:
Để kiểm tra sudo đang chạy tốt cd /etc
và sudo vim sudoers
. Bạn có thể xem tập tin sudoers thông qua trình soạn thảo vim. Bất kỳ hoạt động đọc / ghi trong / etc sẽ yêu cầu lệnh sudo.
Tôi biết điều này hơi ngạc nhiên khi ngay cả khi không có sudoers, thông qua UI chúng ta có thể thực hiện các thao tác trong / etc. Nhưng nó làm việc cho tôi :)
Tôi giả sử bạn đang cố chạy một sudo
lệnh và nó sẽ báo cho bạn một lỗi /etc/sudoers
không có quyền chính xác?
Nếu trước đây bạn đã cấp Admin
trạng thái tài khoản của mình , bạn sẽ có thể sửa các quyền thông qua GUI. Mở thư mục của Cameron / etcvv trong Finder (trong đó Đi vào -> Chuyển đến Thư mục Khác, sau đó mở các sudoers
thuộc tính tệp. Nhấp vào khóa. Cấp cho admin
nhóm read/write
, system
người dùng read-only
, wheel
nhóm read-only
và everyone
nhóm no access
. Các quyền bây giờ phải chính xác.
Nếu bạn không đặt mình vào admin
nhóm, bạn sẽ cần khởi động lại OSX vào chế độ người dùng và thực hiện lệnh chmod 0440 /etc/sudoers
.
Cho phép người dùng root sử dụng tùy chọn hệ thống, sau đó tạo / etc / sudoers trong khi đăng nhập với tư cách người dùng root bằng
touch /etc/sudoers; chmod 440 /etc/sudoers
Lưu ý: Vì lệnh này được chạy dưới quyền root trong trường hợp này và id nhóm /etc
là 0, nên theo mặc định, nó sẽ được sở hữu bởi người dùng và nhóm chính xác sau khi tạo lại, nhưng nếu vì lý do nào đó, nó không chạy,
chown root:wheel /etc/sudoers
Sau khi bạn đã tạo, /etc/sudoers
sử dụng visudo để chèn mã này vào nó:
# 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
Nếu bạn không phải là quản trị viên, bạn có thể khởi động hệ thống sang chế độ một người dùng thay thế (điều này có thể được thực hiện bằng cách tắt nguồn thiết bị và giữ lệnh + s khi khởi động) và chạy:
mount -uw /
và bạn sẽ ở trong thiết bị đầu cuối với các đặc quyền gốc và bạn sẽ có thể chạy các lệnh trên để thiết lập /etc/sudoers
Tôi đã tạo một tệp / tmp / sudoers với nội dung trong câu trả lời của John Militer và chạy một biến thể của lệnh tmm1.
osascript -e 'do shell script "cat /tmp/sudoers > /etc/sudoers; chown root:wheel /etc/sudoers" with administrator privileges'
Đẹp!!!
Các câu trả lời ở trên bao gồm các nội dung mặc định của tệp, cách di chuyển nó vào vị trí với Finder và thay đổi quyền của nó. Tuy nhiên, sudo sẽ khiếu nại trừ khi chủ sở hữu tệp sudoers là root. Cách duy nhất để thay đổi chủ sở hữu mà không có sudo là thông qua lệnh này:
osascript -e 'do shell script "chown root:wheel /etc/sudoers" with administrator privileges'