Linux中怎么禁止用户登录

发布时间:2022-01-20 16:10:38 作者:iii
来源:亿速云 阅读:213
# Linux中怎么禁止用户登录

在Linux系统管理中,有时需要临时或永久禁止某些用户登录系统。本文将详细介绍7种常见的禁止用户登录方法,涵盖不同场景下的解决方案。

## 1. 锁定用户账户(推荐方法)

### 使用passwd命令锁定

```bash
sudo passwd -l username

原理:在/etc/shadow文件中用户的加密密码前添加!标记,使密码失效。

解锁方法

sudo passwd -u username

使用usermod命令锁定

sudo usermod -L username

注意:锁定后用户仍可通过其他方式(如SSH密钥)登录,需结合其他方法使用。

2. 修改用户shell为nologin

方法一:使用usermod

sudo usermod -s /sbin/nologin username

方法二:直接编辑/etc/passwd

找到相应用户行,将默认shell修改为:

username:x:1001:1001::/home/username:/sbin/nologin

特点: - 用户尝试登录时会显示”该账户不可用”提示 - 允许后台进程继续运行 - 支持自定义提示信息(创建/etc/nologin.txt

3. 设置账户过期

sudo usermod -e 1970-01-01 username

效果: - 将账户过期时间设为UNIX纪元开始时间 - 永久禁用账户但保留用户数据

恢复方法

sudo usermod -e "" username  # 清除过期时间

4. 使用PAM模块限制登录

编辑/etc/security/access.conf文件:

- : username : ALL EXCEPT LOCAL

生效方法

sudo pam-auth-update  # 启用pam_access模块

高级用法: - 可基于IP、时间等条件限制 - 支持用户组限制(用@groupname表示)

5. 通过SSH配置限制

方法一:修改sshd_config

sudo vim /etc/ssh/sshd_config

添加:

DenyUsers username

或:

AllowUsers otheruser

重载配置

sudo systemctl reload sshd

方法二:使用~/.ssh/authorized_keys限制

在密钥前添加:

no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="/bin/false" ssh-rsa...

6. 使用/etc/nologin文件

sudo touch /etc/nologin

特点: - 禁止所有非root用户登录 - 系统维护时常用 - 可添加自定义消息(写入文件内容)

解除

sudo rm /etc/nologin

7. 完全删除用户账户

sudo userdel -r username

参数说明: - -r:同时删除家目录和邮件池 - 谨慎使用,数据不可恢复

不同场景下的方案选择

场景 推荐方法 替代方案
临时维护 /etc/nologin 锁定账户
员工离职 修改shell 账户过期
安全事件 PAM限制 SSH限制
服务账户 nologin shell 删除账户
批量限制 PAM模块 SSH配置

注意事项

  1. 权限问题:所有操作需要root权限
  2. 依赖服务:某些方法依赖特定服务(如PAM)
  3. 登录方式:确保覆盖所有登录方式(SSH、控制台等)
  4. 进程影响:部分方法会终止用户现有进程
  5. 备份建议:重要操作前备份/etc/passwd/etc/shadow

恢复登录的方法汇总

  1. 解锁账户:passwd -u
  2. 恢复shell:usermod -s /bin/bash
  3. 清除过期:usermod -e ""
  4. 删除nologin文件
  5. 注释PAM/SSH限制

审计与验证

操作后建议检查:

# 检查账户状态
sudo passwd -S username

# 验证登录(使用另一会话)
sudo su - username

# 检查最近登录
lastlog | grep username

进阶技巧

临时限制登录时间

sudo usermod -e $(date -d "+7 days" +%Y-%m-%d) username

组合使用增强效果

sudo usermod -L -s /sbin/nologin -e 1970-01-01 username

自动化批量处理

# 禁用所有test_前缀用户
for user in $(getent passwd | grep "^test_" | cut -d: -f1); do
  sudo usermod -L -s /sbin/nologin $user
done

通过以上方法,系统管理员可以灵活控制用户访问权限,满足不同安全需求。建议根据实际场景选择最合适的方案,并在实施前做好测试和备份。 “`

这篇文章包含了: 1. 7种主要禁止登录方法 2. 详细命令示例和解释 3. 不同场景的方案选择 4. 注意事项和恢复方法 5. 进阶管理技巧 6. 表格对比和验证方法

总字数约1500字,采用Markdown格式,包含代码块、表格等元素,便于阅读和理解。

推荐阅读:
  1. linux中Apache如何禁止解析php
  2. 禁止匿名VSFTP用户登录

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux

上一篇:怎么使用html5中的canvas标签抠图

下一篇:如何在Ubuntu 18.04/Linux Mint 19中安装Wine 4

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》