Skip to content

用户账户

本章将介绍 macOS 用户账户管理,包括账户类型、权限设置、登录选项等内容。

用户账户概述

账户类型

text
macOS 用户账户类型:

管理员账户
├── 可以安装软件
├── 可以更改系统设置
├── 可以管理其他用户
└── 建议日常使用

标准用户账户
├── 可以使用应用程序
├── 可以更改个人设置
├── 无法更改系统设置
└── 适合普通用户

仅限共享账户
├── 只能访问共享文件
├── 无法登录桌面
└── 适合文件共享

群组账户
├── 管理多个用户权限
└── 设置共享文件夹权限

访客用户
├── 临时访问
├── 数据不保留
└── 适合临时使用

查看用户信息

bash
# 查看当前用户
whoami

# 查看用户 ID
id

# 查看用户详细信息
id 用户名

# 列出所有用户
dscl . list /Users | grep -v '^_'

# 查看用户属性
dscl . read /Users/用户名

# 查看管理员用户
dscl . read /Groups/admin GroupMembership

# 查看用户主目录
dscl . read /Users/用户名 NFSHomeDirectory

用户管理

创建用户

bash
# 使用 sysadminctl 创建用户
sudo sysadminctl -addUser 新用户名 -password 密码 -fullName "用户全名"

# 创建管理员用户
sudo sysadminctl -addUser 新管理员 -password 密码 -admin

# 创建标准用户
sudo sysadminctl -addUser 新用户 -password 密码

# 创建隐藏用户
sudo sysadminctl -addUser 隐藏用户 -password 密码 -home /var/隐藏用户

# 设置用户属性
sudo dscl . create /Users/用户名 UserShell /bin/zsh
sudo dscl . create /Users/用户名 RealName "用户全名"

删除用户

bash
# 删除用户(保留主目录)
sudo sysadminctl -deleteUser 用户名

# 删除用户并删除主目录
sudo sysadminctl -deleteUser 用户名 -secure

# 手动删除用户
sudo dscl . delete /Users/用户名
sudo rm -rf /Users/用户名

修改用户属性

bash
# 修改密码
sudo sysadminctl -resetPasswordFor 用户名 -newPassword 新密码

# 修改用户全名
sudo dscl . change /Users/用户名 RealName "旧名称" "新名称"

# 修改用户 Shell
sudo dscl . create /Users/用户名 UserShell /bin/zsh

# 修改主目录
sudo dscl . create /Users/用户名 NFSHomeDirectory /Users/新目录

# 禁用用户登录
sudo dscl . create /Users/用户名 AuthenticationAuthority none

用户组管理

查看用户组

bash
# 列出所有用户组
dscl . list /Groups

# 查看用户所属的组
id 用户名

# 查看组成员
dscl . read /Groups/admin GroupMembership

# 查看组信息
dscl . read /Groups/staff

管理用户组

bash
# 创建用户组
sudo dscl . create /Groups/新组名
sudo dscl . create /Groups/新组名 RealName "组描述"

# 添加用户到组
sudo dscl . append /Groups/admin GroupMembership 用户名

# 从组中移除用户
sudo dscl . delete /Groups/admin GroupMembership 用户名

# 删除用户组
sudo dscl . delete /Groups/组名

常用用户组

text
macOS 常用用户组:

admin      - 管理员组
staff      - 普通用户组
wheel      - 可以使用 sudo 的用户
daemon     - 系统服务账户
everyone   - 所有用户
_local_    - 本地账户

登录管理

登录选项

bash
# 设置自动登录
# 系统设置 → 用户与群组 → 登录选项

# 启用自动登录
sudo defaults write /Library/Preferences/com.apple.loginwindow autoLoginUser 用户名

# 禁用自动登录
sudo defaults delete /Library/Preferences/com.apple.loginwindow autoLoginUser

# 显示登录窗口为用户名和密码
sudo defaults write /Library/Preferences/com.apple.loginwindow SHOWFULLNAME -bool true

# 显示用户列表
sudo defaults write /Library/Preferences/com.apple.loginwindow SHOWFULLNAME -bool false

# 隐藏特定用户
sudo defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array-add 用户名

# 隐藏所有用户(只显示用户名输入框)
sudo defaults write /Library/Preferences/com.apple.loginwindow SHOWOTHERUSERS_MANAGED -bool false

登录窗口设置

bash
# 设置登录窗口文本
sudo defaults write /Library/Preferences/com.apple.loginwindow LoginwindowText "欢迎信息"

# 禁用重启按钮
sudo defaults write /Library/Preferences/com.apple.loginwindow RestartDisabled -bool true

# 禁用关机按钮
sudo defaults write /Library/Preferences/com.apple.loginwindow ShutDownDisabled -bool true

# 禁用睡眠按钮
sudo defaults write /Library/Preferences/com.apple.loginwindow SleepDisabled -bool true

# 显示输入法菜单
sudo defaults write /Library/Preferences/com.apple.loginwindow showInputMenu -bool true

登录项管理

bash
# 查看登录项
osascript -e 'tell application "System Events" to get the name of every login item'

# 添加登录项
osascript -e 'tell application "System Events" to make login item at end with properties {path:"/Applications/App.app", hidden:false}'

# 删除登录项
osascript -e 'tell application "System Events" to delete login item "App"'

# 查看启动代理
launchctl list | grep -v com.apple

# 查看登录项文件
ls ~/Library/LaunchAgents/
ls /Library/LaunchAgents/

密码管理

密码策略

bash
# 查看密码策略
pwpolicy -getglobalpolicy

# 设置密码最小长度
sudo pwpolicy -setglobalpolicy "minChars=8"

# 设置密码最大有效期(天)
sudo pwpolicy -setglobalpolicy "maxMinutesUntilChangePassword=90"

# 设置密码历史记录
sudo pwpolicy -setglobalpolicy "passwordHistory=5"

# 设置密码复杂度要求
sudo pwpolicy -setglobalpolicy "requiresAlpha=1 requiresNumeric=1"

# 查看用户密码策略
pwpolicy -u 用户名 -getpolicy

# 设置用户密码策略
sudo pwpolicy -u 用户名 -setpolicy "minChars=12"

密码重置

bash
# 重置用户密码
sudo sysadminctl -resetPasswordFor 用户名 -newPassword 新密码

# 使用 passwd 命令
passwd 用户名

# 重置管理员密码(恢复模式)
# 1. 进入恢复模式
# 2. 打开终端
# 3. 执行: resetpassword
# 4. 选择用户并设置新密码

# 解锁用户账户
sudo pwpolicy -u 用户名 -enableuser

钥匙串管理

bash
# 打开钥匙串访问
open -a "Keychain Access"

# 查看钥匙串列表
security list-keychains

# 查看默认钥匙串
security default-keychain

# 创建新钥匙串
security create-keychain -p 密码 新钥匙串.keychain

# 删除钥匙串
security delete-keychain 钥匙串.keychain

# 锁定钥匙串
security lock-keychain

# 解锁钥匙串
security unlock-keychain -p 密码 钥匙串.keychain

# 查看钥匙串中的项目
security dump-keychain

# 查找密码
security find-generic-password -s "服务名" -w

权限管理

文件权限

bash
# 查看文件权限
ls -la 文件名

# 修改权限
chmod 755 文件名
chmod +x 脚本.sh

# 修改所有者
sudo chown 用户名 文件名
sudo chown 用户名:组名 文件名

# 递归修改
chmod -R 755 目录/
sudo chown -R 用户名 目录/

# 使用 ACL 设置精细权限
chmod +a "用户名 allow read" 文件名
chmod +a "用户名 deny write" 文件名

# 查看 ACL
ls -le 文件名

主目录权限

bash
# 查看主目录权限
ls -la /Users/

# 修复主目录权限
# 在恢复模式下运行
diskutil resetUserPermissions / `id -u`

# 查看用户主目录 ACL
ls -le /Users/用户名

# 修复 ACL
chmod -R -N /Users/用户名
chmod -R +a "用户名 allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown,file_inherit,directory_inherit" /Users/用户名

Apple ID 集成

Apple ID 设置

text
Apple ID 功能:
├── iCloud 同步
├── App Store 购买
├── iMessage 和 FaceTime
├── 查找我的 Mac
├── iCloud 钥匙串
└── 连续互通功能

设置方法:
系统设置 → Apple ID

iCloud 管理

bash
# 查看 iCloud 状态
defaults read com.apple.bird optimize-storage

# 查看 iCloud Drive 同步状态
brctl status

# 强制同步 iCloud Drive
brctl download ~/Library/Mobile\ Documents/com~apple~CloudDocs/

# 查看 iCloud 存储使用
# 系统设置 → Apple ID → iCloud

# 禁用 iCloud 同步特定应用
defaults write com.apple.CloudDocs MobileDocumentsFileProviderDebugSkipEnumeratingContainers 1

安全设置

屏幕锁定

bash
# 设置屏幕锁定
# 系统设置 → 锁定屏幕

# 设置自动锁定时间
defaults write com.apple.screensaver askForPassword -int 1
defaults write com.apple.screensaver askForPasswordDelay -int 0

# 立即锁定屏幕
# Control + Command + Q

# 命令行锁定
pmset displaysleepnow

# 使用快捷键锁定
# 在"系统设置" → "键盘" → "键盘快捷键" → "服务"中设置

FileVault

bash
# 查看 FileVault 状态
fdesetup status

# 启用 FileVault
sudo fdesetup enable

# 查看恢复密钥
sudo fdesetup displayrecoverykey

# 添加恢复密钥
sudo fdesetup changerecovery -personal

# 查看授权用户
fdesetup list

# 添加用户到 FileVault
sudo fdesetup add -usertoadd 用户名

防火墙

bash
# 查看防火墙状态
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate

# 启用防火墙
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on

# 禁用防火墙
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off

# 查看防火墙规则
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --listapps

# 添加应用到防火墙
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /Applications/App.app

小结

本章介绍了 macOS 用户账户管理的主要内容:

  1. 账户类型:了解不同类型的用户账户
  2. 用户管理:创建、删除和修改用户
  3. 用户组:管理用户组和权限
  4. 登录管理:设置登录选项和登录项
  5. 密码管理:设置密码策略和重置密码
  6. 权限管理:文件权限和 ACL 设置
  7. Apple ID:集成 iCloud 功能
  8. 安全设置:屏幕锁定、FileVault、防火墙

下一步

下一章我们将学习 安全防护,了解 macOS 安全配置方法。