在 macOS 系统中,虽然图形界面切换用户非常直观(通过菜单栏或登录窗口),但有时你可能需要通过命令行(终端)来执行用户切换操作,例如进行自动化脚本、远程管理或特定故障排查,以下是几种在 Mac 终端中切换用户的主要命令和方法,以及重要的安全注意事项:
-
su - [用户名]
- 作用: 这是最直接的“切换用户”命令。
su
代表 “Substitute User” 或 “Switch User”。 - 用法:
- 打开
终端
(位于/应用程序/实用工具/
或通过 Spotlight 搜索)。 - 输入
su -
后跟一个空格和你想切换到的目标用户名,要切换到用户john
,输入:su - john
- 按回车。
- 打开
- 会发生什么:
- 系统会提示你输入目标用户(john)的登录密码。
- 输入正确的密码后(输入时密码不会显示,这是正常的),你将完全切换到该用户的环境。
- 终端的提示符通常会从 (普通用户)变成 (root用户)或显示目标用户名,表示你现在以该用户的身份和权限在操作。
- 你的工作目录 (
pwd
) 会切换到目标用户的家目录(如/Users/john
)。 - 环境变量(如
PATH
)也会加载为目标用户的配置。
- 关键点:
- 需要知道目标用户的密码。 这是安全机制的要求。
- 从普通用户切换到另一个普通用户(非 root)通常需要目标用户密码。
- 从普通用户切换到
root
用户(系统管理员)默认情况下需要 root 密码,在 macOS 中,root 用户默认是禁用的,更常见的做法是使用sudo
(见下一条)。
- 作用: 这是最直接的“切换用户”命令。
-
sudo su - [用户名]
- 作用: 这是更常用且更安全(相对直接启用 root)的切换到其他用户(包括 root)的方法。
sudo
代表 “Super User DO“,它允许授权用户以其他用户(默认是 root)的身份执行命令。 - 用法:
- 在终端中输入:
sudo su - john
- 按回车。
- 在终端中输入:
- 会发生什么:
- 系统会提示你输入当前登录的管理员用户自己的密码(不是目标用户
john
的密码)。 - 输入正确的密码后,你将切换到目标用户
john
的环境,效果与su - john
相同(提示符变化、家目录切换、环境加载)。
- 系统会提示你输入当前登录的管理员用户自己的密码(不是目标用户
- 关键点:
- 需要当前用户具有
sudo
权限。 首次创建的管理员账户默认拥有此权限。 - 输入的是当前管理员用户的密码,而非目标用户密码。 这是与
su
的主要区别和优势(你不需要知道目标用户的密码)。 - 要切换到
root
用户,可以省略用户名:sudo su -
或更简洁的:
sudo -i
输入当前管理员密码后,你将获得一个 root shell。
- 需要当前用户具有
- 作用: 这是更常用且更安全(相对直接启用 root)的切换到其他用户(包括 root)的方法。
切换到“访客用户”
- macOS 有一个特殊的“访客用户”账户,旨在提供临时的、无痕的访问。
- 没有直接的终端命令可以“登录”访客用户,因为它的设计是通过图形登录界面激活的。
- 你可以模拟访客用户的受限环境或管理访客账户:
- 创建临时受限环境 (不常用): 技术上可以创建一个具有严格限制的新用户来模拟,但这不如直接使用系统内置的访客功能方便和安全。
- 管理访客账户 (需要管理员权限):
- 启用/禁用访客登录:
# 启用访客登录 sudo defaults write /Library/Preferences/com.apple.loginwindow GuestEnabled -bool YES # 禁用访客登录 sudo defaults write /Library/Preferences/com.apple.loginwindow GuestEnabled -bool NO
- 检查访客账户状态:
sudo defaults read /Library/Preferences/com.apple.loginwindow GuestEnabled
- 重要: 访客用户会话结束后,其主目录会被自动删除,所有数据丢失,命令行无法“保留”访客会话。
- 启用/禁用访客登录:
切换回原用户或退出
- 退出当前切换的用户会话:
- 在切换后的用户终端中,输入:
exit
或者按
Control + D
。 - 这将结束当前用户的 shell 会话,并返回到之前切换你的那个用户(或者直接退出终端,如果只切换了一次)。
- 在切换后的用户终端中,输入:
- 多次切换: 你可以连续使用
su -
或sudo su -
切换到不同用户,然后通过多次exit
命令逐层返回。
重要安全提示与最佳实践 (E-A-T 核心体现)
- 最小权限原则: 只在必要时才切换到其他用户,尤其是
root
用户。root
拥有对系统的完全控制权,一个错误的命令可能导致系统损坏或数据丢失,完成需要特权的任务后,立即使用exit
返回普通用户。 sudo
优于直接su root
: macOS 强烈建议使用sudo
来执行需要管理员权限的操作,而不是直接启用和使用 root 密码。sudo
提供了更好的审计追踪(通过sudo
执行的命令会被记录),并且默认配置更安全。- 密码安全: 永远不要在公共场合或不安全的网络环境下输入密码,确保你的管理员账户密码是强密码。
- 理解风险: 在终端中操作具有强大的能力,但也伴随着风险,如果不确定命令的作用,务必先查询清楚再执行,错误的系统级命令后果严重。
- 访客用户的目的: 访客用户是给临时使用者设计的,不应通过命令行进行常规操作,其数据不保留的特性是核心安全设计。
- 图形界面优先: 对于日常的快速用户切换(如家人共用电脑),强烈推荐使用图形界面:
- 点击屏幕左上角的 苹果菜单 () > 切换用户…
- 或者,在登录窗口(已注销状态或锁屏状态),直接点击其他用户名进行登录。
- 这比命令行更直观、更不易出错。
- 切换到已知密码的普通用户:
su - 用户名
(输入目标用户密码)。 - 切换到其他用户(包括 root)作为管理员:
sudo su - 用户名
或sudo su -
/sudo -i
(输入当前管理员密码),这是更推荐且安全的方式。 - 退出切换的用户:
exit
或Control + D
。 - “访客用户” 没有直接的登录命令,需通过图形界面启用和使用,命令行主要用于管理其开关状态。
- 始终牢记安全操作规范,谨慎使用管理员权限 (
sudo
,root
)。
通过理解这些命令及其背后的安全含义,你可以在需要时有效地在 macOS 终端中进行用户切换,同时保障系统的安全稳定,对于绝大多数日常场景,图形化的用户切换界面是最佳选择。
引用说明:
- 本文中关于
su
,sudo
,sudo -i
命令的功能、参数及行为描述,基于标准的 Unix/Linux 命令行工具在 macOS 环境下的实现,其核心功能由操作系统本身提供,具体细节可通过在终端中运行man su
和man sudo
命令查阅官方手册页获取最权威信息。 - macOS 访客用户的管理命令(
defaults write/read ... GuestEnabled
),参考了 Apple 官方对于系统偏好设置底层配置的管理方式,这些设置通常对应图形界面“用户与群组”偏好设置中的选项,Apple 官方支持文档 (如 Apple Support) 是了解访客用户特性的最佳来源(搜索关键词如“macOS 访客用户”)。 (访问日期:2025年10月27日 – 具体命令或界面在未来 macOS 版本中可能略有调整,建议查阅对应版本的最新文档) - “最小权限原则”和
sudo
优于su root
的安全建议是业界广泛认可的系统管理最佳实践,被 Apple 在 macOS 的安全设计中采纳和推荐。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9266.html