我sudoers在 Mac OS X 上不小心删除了该文件;有什么办法可以恢复吗?
一旦你恢复了它,你如何将它设置为模式 0440?
小智 8
如果我正确理解您的问题,那么目前您没有 sudoer,并且您正在尝试执行 sudo 但它不起作用。在这种情况下,要使 sudo 工作,您可以执行以下操作:
要检查 sudo 是否运行良好,cd /etc并且sudo vim sudoers. 您应该能够通过 vim 编辑器查看 sudoers 文件。/etc 中的任何读/写操作都需要 sudo 命令。
我知道这有点令人惊讶,即使没有 sudoers,我们也可以通过 UI 在 /etc 中进行操作。但它对我有用:)
我假设您正在尝试运行一个sudo命令并且它给了您一个/etc/sudoers没有正确权限的错误?
如果您之前已授予您的帐户Admin状态,您应该能够通过 GUI 修复权限。在 Finder 中打开“/etc”文件夹(“Go”->“Go to Folder...”),然后打开sudoers文件属性。点击锁。授予admin组read/write、system用户read-only、wheel组read-only和everyone组no access。权限现在应该是正确的。
如果您没有将自己加入admin组,则需要将 OSX 重新启动到单用户模式并执行命令chmod 0440 /etc/sudoers。
使用系统首选项启用 root 用户,然后在以 root 用户身份登录时创建 /etc/sudoers 使用
touch /etc/sudoers; chmod 440 /etc/sudoers
Run Code Online (Sandbox Code Playgroud)
注意:由于在这种情况下命令以 root 身份运行,并且组 id/etc为 0,因此在重新创建后,默认情况下它应该由正确的用户和组拥有,但如果由于某种原因不是,请运行
chown root:wheel /etc/sudoers
Run Code Online (Sandbox Code Playgroud)
创建后,/etc/sudoers使用 visudo 将此代码插入其中:
# 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
Run Code Online (Sandbox Code Playgroud)
如果您不是管理员,则可以将系统引导至单用户模式(这可以通过关闭设备电源并在启动时按住 command+s 来完成)并运行:
mount -uw /
Run Code Online (Sandbox Code Playgroud)
您将在具有 root 权限的终端中,您将能够运行上述命令进行设置 /etc/sudoers
| 归档时间: |
|
| 查看次数: |
16405 次 |
| 最近记录: |