在OS X上 为什么su命令的password输入之后 总是提示Sorry?

本文介绍了在OSX系统中默认不支持su命令的情况,并提供了如何通过sudo命令来替代执行超级用户权限操作的方法。若需要使用su命令,文章还给出了具体的启用步骤。

默认情况下,OS X是不支持su命令的。相反,你应该使用sudo。

sudo是允许用户以超级用户的权限执行操作的一个命令。

如果要启用su命令,操作如下:
sudo passwd root

在 macOS 系统中,当用户尝试执行 `su` 命令切换到 root 用户时,如果输入正确的密码后仍然提示 `sorry`,通常是因为目标用户(通常是 root)的密码并未被设置或未被正确验证。macOS 默认情况下禁用了 root 用户,并且不鼓励直接使用 root 账户进行操作[^5]。 ### 原因分析 1. **root 用户未启用或密码未设置** macOS 默认没有为 root 用户设置密码,因此即使知道管理员账户的密码,也无法通过 `su` 成功切换至 root。 2. **权限管理机制限制** macOS 使用了基于 PAM(Pluggable Authentication Modules)的身份验证机制,某些系统版本对 `su` 的行为进行了限制,仅允许特定用户组(如 admin 组)的成员尝试切换用户,但仍受限于目标用户的密码状态[^6]。 3. **安全策略设计** Apple 推荐使用 `sudo` 而非 `su` 来执行需要特权的操作。`sudo` 提供更细粒度的权限控制和日志记录功能,增强了系统的安全性[^7]。 --- ### 解决方法 #### 方法一:使用 `sudo` 替代 `su` 推荐使用 `sudo` 来执行需要 root 权限的命令: ```bash sudo <command> ``` 例如: ```bash sudo ls /private/var/root/ ``` 系统会提示输入当前用户的密码(而非 root 密码),验证通过后即可执行命令。 #### 方法二:启用 root 用户并设置密码 如果确实需要使用 root 用户,可以按照以下步骤启用并设置密码: 1. 打开“目录实用工具”(Directory Utility): - 在 Spotlight 中搜索 “Directory Utility” 或前往 `/System/Library/CoreServices/Applications/Directory Utility.app` 2. 点击左上角的锁形图标进行解锁; 3. 选择 "Edit" > "Enable Root User"; 4. 输入并确认 root 用户的密码。 完成上述步骤后,即可使用 `su` 切换至 root 用户: ```bash su - ``` 然后输入 root 密码即可登录。 --- #### 方法三:检查用户是否在 wheel 组中 macOS 中只有属于 `wheel` 组的用户才被允许使用 `su` 切换到 root。可通过以下命令查看当前用户所属组: ```bash groups $(whoami) ``` 若未包含 `wheel`,可使用 `dseditgroup` 添加: ```bash sudo dseditgroup -o edit -a $(whoami) -t user wheel ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值