Linux 用户管理

目录

1. 添加用户

2. 设置用户密码

3. 切换用户

4. 删除用户


 ​​Linux 中,用户保存在 /etc/passwd 中,用户密码保存在 /etc/shadow 中,用户组保存在 /etc/group 中。

1. 添加用户

useradd <username>

在添加 Linux 用户之前,可以先列出现有用户,来保证不添加有冲突的用户名:

cat /etc/passwd | cut -d : -f 1

示例:

useradd testuser   # 创建新用户 testuser
useradd -d /home/mytest testuser   # -d 参数可以自定义主目录。默认情况下将在/home路径中创建一个与用户名同名的家目录
useradd -u 567 testuser   # -u 参数可以指定新用户的用户ID(UID)。默认情况下用户ID从500开始,并在添加新用户后递增
useradd -g 0 testuser   # -g 参数可以指定新用户的用户组ID。默认情况下,将分配新的用户组ID,该ID从1000开始
useradd -G group1,group2,group3 testuser   # -G 参数可以将新用户添加到多个用户组
useradd -M testuser   # -M 参数将添加没有主目录的新用户
useradd -e 2023-02-28 testuser   # -e 参数可以设置新用户的账户过期日期
chage -l testuser   # 在添加了具有帐户过期日期的用户后,可以使用chage命令检查该日期
useradd -e 023-02-28 -f 60 testuser   # -f 参数可以设置新用户的密码过期时间。如果值设为-1,密码将永不过期
useradd -c "18811372815" testuser   # -c 参数可以设置新用户的注释信息,例如添加全名、电话号码等 

2. 设置用户密码

passwd <username>

3. 切换用户

su <username>

su 是 switch user 的缩写,表示用户切换 。

  • su 命令在不加参数时,默认切换到 root 用户,输入 root 的密码后切换到 root 身份,使用 exit 退出。注意这里虽然切换到 root,但实际上并没有自动切换家目录。

  • su 命令加上一个 - 参数,可以切换成 root 身份,同时应用 root 的环境。

  •  su 命令加上 - <username> 参数,可以切换成 <username> 的身份并应用 <username> 的环境。

4. 删除用户

userdel <username>

1. 检查登录

首先查看用户是否真正登录,以及他正在处理多少个会话。使用 who 命令列出活动会话。

2. 查看用户进程

使用 ps 命令可以列出用户正在运行的进程。

ps -u <username>

使用 top 命令可以看到正在运行的进程的更多信息。top 也具有 -U 选项,可以输出单个用户拥有的进程。注意这里 U 是大写的。

top -U <username>

3. 锁定账户

在终止进程前,先锁定账户。因为在终止进程时将注销用户。

加密的用户密码存储在 /etc/shadow 文件中。使用 awk 命令分析该文件中的字段并有选择地对其进行操作。使用 -F 选项来告诉 awk 该文件使用冒号 ”:“ 分隔字段。搜索其中带有 test 字段的行,并对匹配的行打印第一个和第二个字段,分别为账户名和加密的密码:

sudo awk -F: '/test/ {print $1,$2}' /etc/shadow

使用 passwd -l 命令锁定账户。

再次检查 /etc/shadow 文件:

 加密密码的开头添加了感叹号,这样就可以阻止登录该账户。

4. 杀死进程

使用 pkill 命令查找并杀死进程。

sudo pkill -KILL -u <username>

 这样用户 test 的会话没有了。接下来进行其余的清理工作。

5. 归档用户的主目录

使用 tar 命令归档用户的主目录。使用的选项有:

  • c:创建一个存档目录
  • f:使用指定的文件名作为存档名称
  • j:使用 bzip2 压缩
  • v:在创建归档文件时提供详细的输出
sudo tar cfjv test-20220328.tar.bz /home/test

 使用 ls 命令检查归档文件是否已创建,使用 -l(长格式)和 -h(人类可读)选项。

 已创建 558K 的文件。

 6. 删除 cron 任务

cron 任务是在指定的时间或间隔触发的命令。可以使用 ls 检查是否为此用户帐户安排了任何 cron 作业。

sudo ls -lh /var/spool/cron/crontabs/test

如果有输出,则说明该用户有排队的 cron 任务,可以使用 crontab 命令将其删除。-r (删除)选项将删除任务,-u (用户)选项告诉 crontab 要删除的任务。

sudo crontab -r -u test

7. 删除打印任务

lprm 命令可以从打印队列中删除用户的打印任务。

lprm -U test

8. 删除用户账户

--remove 选项可以同时删除用户的主目录。

sudo userdel --remove test

如果是Debian发行版,则执行:

sudo deluser --remove-home test

用户账户 test 的所有痕迹均已删除。可以检查 /home/test/ 目录是否已删除:

ls /home

test 组也已删除,因为用户账户 test 是其中唯一的条目。 我们可以很容易地通过 grep 将 /etc/group 的内容进行检查:

sudo less /etc/group | grep test

​​​​​​​

  • 4
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值