基础:Ubuntu Server 24.04 Minimal 基础环境
查看所有用户:cat /etc/passwd
查看所有可交互登录的用户:grep -Ev '/sbin/nologin$|/bin/false$' /etc/passwd
sudo passwd -S nginx 命令返回的信息是 nginx L 2025-11-14 -1 -1 -1 -1 ,如何解读?
passwd -S命令的输出通常包含以下字段(以空格分隔):
- 用户名
- 密码状态(Password status)
- L:表示账户被锁定(locked)
- P:表示有可用密码(usable password)
- NP:表示无密码(no password)
- 最近一次密码修改时间(Last password change):如果账户被锁定,这个日期可能表示锁定生效的日期或其他
- 密码最小年龄(Minimum password age):表示在多少次天内不允许修改密码。如果为-1,表示没有设置。
- 密码最大年龄(Maximum password age):表示多少天后密码过期。如果为-1,表示密码永不过期。
- 密码警告期(Password warning period):表示在密码过期前多少天开始警告用户。如果为-1,表示没有警告。
- 密码禁用期(Password inactivity period):表示密码过期后多少天账户被禁用。如果为-1,表示不会禁用。
注意:服务账户通常应该保持锁定状态,因为它们不需要交互式登录权限。如 nginx、apache、mysql 等,且配置的shell是不可登录的。
- 解锁账户:
sudo passwd -u xxx - 锁定账户:
sudo passwd -l xxx
grep -E 'nginx|mysql' /etc/passwd
mysql:x:107:107:MariaDB Server,,,:/nonexistent:/bin/false
nginx:x:999:988:nginx user:/nonexistent:/usr/sbin/nologin
/bin/false 是 Linux 系统中用于阻止用户登录的一种方法。它是一个简单的命令,什么也不做,只是返回一个非零的退出状态,然后立即退出。
/bin/false 和 /sbin/nologin 都可以阻止用户登录,但它们有以下区别:
- 反馈信息:/bin/false 不会向用户提供任何提示或错误信息,而 /sbin/nologin 会显示一条消息(例如 “This account is currently not available.”)。
- 适用场景:/bin/false 更适合永久禁止登录的账户,尤其是服务账户;/sbin/nologin 更适合临时禁用用户登录,同时向用户提供原因说明。
修改用户的shell
-L是锁定,-s是修改用户shell
Bash
sudo usermod -L -s /usr/sbin/nologin pubFiles
sudo usermod -s /usr/sbin/nologin std一个只使用ssh端口转发隧道的用户,就需要配置为 usermod -s /usr/sbin/nologin,另外,在客户端连接时,也需要配置不启动shell,否则连接会被自动退出。
- 使用ssh.exe,需要添加参数
-n。 - 使用putty.exe,需要选中下图的参数。


发表回复