Appearance
用户账户
本章将介绍 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 IDiCloud 管理
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 用户账户管理的主要内容:
- 账户类型:了解不同类型的用户账户
- 用户管理:创建、删除和修改用户
- 用户组:管理用户组和权限
- 登录管理:设置登录选项和登录项
- 密码管理:设置密码策略和重置密码
- 权限管理:文件权限和 ACL 设置
- Apple ID:集成 iCloud 功能
- 安全设置:屏幕锁定、FileVault、防火墙
下一步
下一章我们将学习 安全防护,了解 macOS 安全配置方法。
