
rtkit 账号删除、普通账号的创建 / 删除 / 权限修改超详细大全安全提醒
/etc/passwd 、/etc/shadow 、/etc/group 、/etc/sudoers 以及 Home 目录。rtkit 属于实时调度守护进程 RealtimeKit;若你的桌面环境依赖 PulseAudio / PipeWire,直接删除会导致音频异常。若只是强化安全,推荐 禁用(锁定) 或 删服务 -> 删用户 的顺序。root 或 sudo 权限。
文件 | 作用 | 关键字段 |
|---|---|---|
/etc/passwd | 账号列表 | 用户名:密码占位:x:UID:GID:注释:Home:Shell |
/etc/shadow | 加密密码、过期策略 | 用户名:hash:改密天数:最小天数:最大天数:警告天数:停用:失效 |
/etc/group | 组列表 | 组名:x:GID:成员1,成员2 |
NSS / PAM | 身份解析、认证 | /etc/nsswitch.conf、/etc/pam.d/* |
现代发行版可能用 systemd-sysusers 生成系统账号,或通过 LDAP / sssd 统一认证;但本章只聚焦本地账号命令。
# 创建
useradd [-m -s /bin/bash] <user>
adduser <user> # Debian 系更友好交互式包装
# 删除
userdel [-r] <user> # -r 同时删除 Home
# 修改
usermod -aG sudo <user> # 追加组
groupadd <group>
passwd <user> # 改密码
chage -l <user> # 查看过期策略rtkit 流程# 1. 停止并禁用服务
systemctl --now disable rtkit-daemon.service
# 2. 确认无进程占用
ps -eo user,pid,cmd | grep rtkit
# 3. 如桌面用不到实时音频,可卸包:
# Debian/Ubuntu
apt purge rtkit
# RHEL/Fedora
dnf remove rtkit
# Arch
pacman -Rns rtkit
# 4. 锁定或删除账号
# a) 仅锁定(推荐,易回滚)
passwd -l rtkit # shadow 文件第二字段前加 !
# b) 真正删除
userdel -r rtkit # -r 删除 /var/lib/rtkit
# 5. 清理残留组(若存在)
groupdel rtkit 2>/dev/null || true验证:
getent passwd rtkit应无输出;音频与 Bluetooth 功能正常则流程完成。
场景 | Debian/Ubuntu (apt) | RHEL/CentOS/Fedora (yum/dnf) | Arch (pacman) | openSUSE (zypper) | Alpine (apk) |
|---|---|---|---|---|---|
新增用户 | adduser bob | useradd -m bobpasswd bob | 同 RHEL | useradd -m bob | adduser -D bob |
删除用户 | userdel -r bob | 同 | 同 | 同 | deluser -r bob |
列组 | getent group | 同 | 同 | 同 | 同 |
修改附加组 | usermod -aG docker bob | gpasswd -a bob docker 或 usermod -aG | 同 | 同 | 同 |
软件包删除系统账号 | apt purge <pkg> 自动执行 | dnf remove <pkg> | pacman -Rns <pkg> | zypper rm <pkg> | apk del <pkg> |
systemd-sysusers | systemd-sysusers --dry-run | 同 | 同 | 同 | N/A |
注意:Debian 系推荐
adduser/deluser,它们自动创建/移除同名组并处理目录;其他发行版默认useradd/userdel。
# 把 alice 追加到 wheel、docker 组
usermod -aG wheel,docker alice
# 把 bob 设置为主组 developers
usermod -g developers bob
# 修改 UID/GID(大范围变更需同步 chown)
usermod -u 1050 bob
groupmod -g 1050 developers# 基础
chown bob:developers /srv/project -R
chmod 750 /srv/project # u=rwx,g=rx,o=-
# ACL 细粒度
setfacl -m u:carol:rwX /srv/project
getfacl /srv/project# 打开安全编辑器
visudo
# 示例:仅允许 web 运维组重启 nginx
%webops ALL=(root) NOPASSWD: /bin/systemctl restart nginx
# 分文件管理(推荐)
echo 'alice ALL=(ALL) ALL' >/etc/sudoers.d/alice
chmod 0440 /etc/sudoers.d/alice目标 | 命令示例 |
|---|---|
锁定账号(禁用登录) | passwd -l bob 或 usermod -L bob |
强制密码过期 | chage -d 0 bob(下次登录需改密) |
设置有效期 | chage -E 2025-12-31 tempuser |
限制 shell | usermod -s /usr/sbin/nologin ftpuser |
两步验证 | 安装 libpam-google-authenticator,编辑 /etc/pam.d/sshd |
#!/usr/bin/env bash
# batch-users.sh: 批量创建开发账号并加入 docker,wheel
while read -r USER; do
useradd -m -G docker,wheel -s /bin/bash "$USER"
echo "$USER:$(openssl rand -base64 12)" | chpasswd
chage -d 0 "$USER" # 首登改密
done < devlist.txt症状 | 检查点 | 修复 |
|---|---|---|
无法登录:Permission denied | /etc/shadow 密码字段是否 ! 或 * | passwd -u <user> |
删除用户后服务起不来 | Service Unit User= 不存在 | 改 User= 或新建账号 |
改 UID/GID 后文件属主错 | find / -uid oldUID | chown -R newUID:newGID <paths> |
sudo 报 syntax error | /etc/sudoers 末尾缺 \n | visudo -c 验证 |
# 添加 + 设置密码
adduser bob # Debian
useradd -m bob && passwd bob
# 删除含 Home
userdel -r bob
# 改组 & sudo
usermod -aG wheel bob
# 锁定 / 解锁
passwd -l bob # lock
passwd -u bob # unlock
# 密码策略
chage -l bob # 查看
chage -M 90 bob # 每 90 天强制改
# sudo 权限例
echo 'bob ALL=(ALL) ALL' >/etc/sudoers.d/bob
visudo -c # 语法检查
# 查账号
getent passwd | cut -d: -f1
id bob掌握 useradd/-del/-mod + chown/chmod/setfacl + visudo 等核心指令,就能在各大发行版间游刃有余。系统账号(如 rtkit、nobody、systemd-network)若非必要,优先锁定或移除服务,再考虑删除账号,可避免依赖崩溃。祝你在多平台运维中稳、准、快地搞定账号与权限管理!