目录

Linux 用户与用户组管理

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

每个用户账号都拥有一个唯一的用户名和各自的口令。

用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

实现用户账号的管理,要完成的工作主要有如下几个方面:

  • 用户账号的添加、删除与修改。
  • 用户口令的管理。
  • 用户组的管理。

用户管理

1
2
3
4
5
6
7
useradd dev -m
passwd dev

# -r 把用户的主目录一起删除
userdel -r ethan
# 与 useradd 选项一样
usermod 选项 用户名
  • c<备注> 加上备注文字,保存在 passwd 的备注栏
  • d<登录目录> 指定用户登录时的起始目录
  • g <group-name> 指定所属群组
  • -m 自动建立用户的登入目录
  • -M 不要建立用户的登入目录
  • -n 取消建立以用户名为名的群组
  • -s 指定用户登入后使用的shell
  • -u 指定用户id

用户口令管理

1
passwd 选项 用户名
  • -l 锁定口令,即禁用账号。
  • -u 口令解锁。
  • -d 使账号无口令。
  • -f 强迫用户下次登录时修改口令。

群组 group

1
2
3
4
5
6
7
8
9
man groupadd
groupadd admin
# 将 admin 修改为 newadmin
groupmod -n newadmin admin
groupdel newadmin
# 查看用户的用户组信息
groups web
# 查看用户的 UID GID
id dev
  • 用户列表文件:/etc/passwd
  • 用户组列表文件:/etc/group

批量添加

每一列按照/etc/passwd密码文件的格式书写,要注意每个用户的用户名、UID、宿主目录都不可以相同,其中密码栏可以留做空白或输入x号。

user.txt

user001::600:100:user:/home/user001:/bin/bash
user002::601:100:user:/home/user002:/bin/bash
user003::602:100:user:/home/user003:/bin/bash
user004::603:100:user:/home/user004:/bin/bash
user005::604:100:user:/home/user005:/bin/bash
user006::605:100:user:/home/user006:/bin/bash
1
2
3
4
# 以root身份执行命令
newusers < user.txt
# 将 /etc/shadow 产生的 shadow 密码解码,然后回写到 /etc/passwd 中,并将/etc/shadow的shadow密码栏删掉。
pwunconv

passwd.txt

user001:123456
user002:123456
user003:123456
user004:123456
user005:123456
user006:123456
1
2
3
4
# 编码过的密码写入 /etc/passwd 的密码栏
chpasswd < passwd.txt
# 将密码编码为 shadow password,并将结果写入 /etc/shadow
pwconv