首页/系统/Linux 运维命令速查/服务账号与 nologin shell

服务账号与 nologin shell

系统/服务账号不给人登录:shell 设 /sbin/nologin(或 /usr/sbin/nologin),配合锁定密码;检查与创建一条龙。

Linux 运维命令速查系统更新于 2026-10-12
用途限制账号交互登录
shell/sbin/nologin 或 /usr/sbin/nologin
检查/etc/passwd 第 7 列)

创建与限制

创建与限制
sudo useradd -r -s /usr/sbin/nologin -M svc-app
sudo usermod -s /usr/sbin/nologin olduser
sudo passwd -l olduser          # 锁定密码

# 检查全部可登录账号
awk -F: '$7 !~ /(nologin|false|sync|shutdown|halt)$/ {print $1, $7}' /etc/passwd

验证

验证
su - svc-app -c whoami     # 应报 This account is currently not available
sudo -u svc-app id
cron 与 systemd 服务不受 nologin 影响(不经过登录 shell);跑任务仍可正常。

易错点

  • 只锁密码不设 nologin 时,SSH 公钥仍可登录(部分配置下),两件事都要做
  • usermod -s 对正在登录的会话不生效,改完让其重新登录或踢会话

数据来源与参考

  • man 8 nologin
  • RHEL 文档:服务账号管理
  • CIS Benchmark:仅允许必要账号登录

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌