Linux 用户&用户组管理

1. 用户&用户组

Linux 是多用户多任务操作系统,Linux 系统支持多个用户在同一时间内登录,不同用户可以在权限允许范围内执行不同的任务,并且互不影响。

用户和用户组的对应关系:

  • 一对一:一个用户可以存在一个用户组中,是组中唯一的成员
  • 一对多:一个用户可以存在多个用户组中,此用户具有这个组的共同权限
  • 多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限
  • 多对多:多个用户可以存在多个组中

2. 用户管理

Linux 常用的用户管理命令:useraddusermoduserdelpasswd

命令描述
useradd创建用户
usermod修改用户
userdel删除用户
passwd修改用户密码

2.1 useradd

语法格式:useradd [选项] 用户名

功能描述:新建用户,自建的用户UID自1000开始自增

选项参数:

选项描述
-u UID指定用户的 UID
-d 主目录指定用户的主目录(绝对路径)
-c 用户说明指定/etc/passwd文件中各用户信息中第 5 个字段的描述性内容,可随意配置
-g 组名指定用户的初始组
-G 组名指定用户的附加组
-s shell指定用户的登录 Shell,默认是 /bin/bash
-e 曰期指定用户的失效曰期,格式为 “YYYY-MM-DD”(同等与 /etc/shadow 文件的第八个字段)
-o允许创建的用户的 UID 相同
-m建立用户时强制建立用户的家目录(默认选项)
-r创建系统用户,也就是 UID 在 1~499 之间,供系统程序使用的用户

🌟 默认配置:使用 useradd -D 可以查看新建用户的默认值

[root@joel ~]# useradd -D

# 新建用户的默认组
GROUP=100
# 用户主目录的默认位置
HOME=/home
# 设置密码过期后的宽限天数,-1为永久有效
INACTIVE=-1
# 设置密码的失效时间,空表示永久有效
EXPIRE=
# 设置新建用户默认Shell都是/bin/bash
SHELL=/bin/bash
# 设置新建用户后,在用户主目录需要拷入的配置文件
SKEL=/etc/skel
# 设置给新用户建立邮箱文件,邮箱位于/var/spool/mail/
CREATE_MAIL_SPOOL=yes

🌟 扩展命令:useradd -D [选项] 参数 (修改配置文件)

  1. -b HOME:设置创建用户的主目录位置(绝对路径),例如useradd -D -b /home
  2. -e EXPIRE:设置密码失效时间,格式为 yyyy-MM-dd,例如 useradd -D -e 2021-11-12
  3. -f INACTIVE:设置密码过期的宽限天数,例如 useradd -D -f 7
  4. -g GROUP:设置新用户所在初始组
  5. -s SHELL:设置新用户的默认shell

案例演示:

新建一个用户JOEL时:

  1. 会在 /etc/passwd 文件中创建一行与 JOEL 用户相关的数据
  2. 会在 /etc/shadow 文件中创建一条与 JOEL 用户相关的密码信息
  3. 会在 /etc/group 文件中创建一条与 JOEL 同名的用户组
  4. 会在 /etc/gshadow 文件中创建一条与 新用户组相关的密码信息
  5. 会在 /var/spod/mail/ 路径下与 JOEL 同名的邮箱
  6. 会将 /etc/skel 目录中的配置文件复制到 JOEL 用户的主目录中 /home/JOEL
[root@joel ~]# useradd JOEL
[root@joel ~]# grep "JOEL" /etc/passwd /etc/shadow /etc/group /etc/gshadow 
# 1001代表UID,1002代表GID,/home/JOEL代表用户主目录,/bin/bash代表用户的登录Shell
/etc/passwd:JOEL:x:1001:1002::/home/JOEL:/bin/bash
# 没设密码,所以是!!,99999代表密码有效天数,7代表密码过期后的宽限天数
/etc/shadow:JOEL:!!:18943:0:99999:7:::
/etc/group:JOEL:x:1002:
/etc/gshadow:JOEL:!::

2.2 usermod

语法格式:usermod [选项] 用户名

功能描述:新建用户,自建的用户UID自1000开始自增

选项参数:

选项描述
-c修改用户的说明信息
-d修改用户的主目录
-e修改用户的失效日期
-g修改用户的初始组
-u修改用户的UID
-G修改用户的附加组
-I修改用户的名称
-L临时锁定(Lock)用户
-U解锁(Unlock)用户
-s修改用户的登录 Shell

案例演示:

# 将JOEL添加到admin用户组中
[root@joel ~]# usermode -G amdin JOEL
[root@joel ~]# grep "JOEL" /etc/passwd
JOEL:x:1001:1002::/home/JOEL:/bin/bash
[root@joel ~]# grep "admin" /etc/group
admin:x:1000:JOEL

2.3 userdel

语法格式:userdel [选项] 用户名

功能描述:删除用户

选项参数:

选项描述
-r在删除用户时删除用户的主目录

案例演示:

[root@joel ~]# userdel -r JOEL

2.4 passwd

语法格式:passwd [选项] 用户名

功能描述:设置用户密码

选项参数:

选项描述
-S查询用户密码状态, /etc/shadow 文件中此用户密码的内容
-l暂时锁定用户,在 /etc/shadow 文件中指定用户的加密密码串前添加 “!”
-u解锁用户
–stdin将通过管道符输出的数据作为用户的密码
-n设置该用户修改密码后,多长时间不能再次修改密码,也就是修改 /etc/shadow 文件中各行密码的第 4 个字段
-x设置该用户的密码有效期,对应 /etc/shadow 文件中各行密码的第 5 个字段
-w设置用户密码过期前的警告天数,对于 /etc/shadow 文件中各行密码的第 6 个字段
-i设置用户密码失效日期,对应 /etc/shadow 文件中各行密码的第 7 个字段

案例演示:

[root@joel ~]# passwd admin
Changing password for user admin.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
Sorry, passwords do not match.
[root@joel ~]# passwd -S admin
# 用户名、密码、设定时间、警告时间、密码有效期、密码宽限时间、密码不失效
admin LK 2021-11-06 0 99999 7 -1 (Password locked.)

3. 用户组管理

Linux 常用的用户组管理命令:groupaddgroupmodgroupdelgpasswd

3.1 groupadd

语法格式:groupadd [选项] 用户组名

功能描述:添加用户组

选项参数:

选项描述
-g指定GID
-r创建系统群组

案例演示:

[root@joel ~]# groupadd -g 1003  groupdemo
[root@joel ~]# grep "groupdemo" /etc/group
groupdemo:x:1003:

3.2 groupmod

语法格式:groupmod [选项] 用户组名

功能描述:修改用户组

选项参数:

选项描述
-g修改GID
-n修改用户组名

案例演示:

[root@joel ~]# groupmod -n grouptest groupdemo
[root@joel ~]# grep "grouptest" /etc/group
grouptest:x:1003:

3.3 groupdel

语法格式:groupdel 用户组名

功能描述:删除用户组

案例演示:

[root@joel ~]# groupdel grouptest
[root@joel ~]# grep "grouptest" /etc/group

3.4 gpasswd

语法格式:gpasswd [选项] 用户组名

功能描述:用户组配置,配置一个组管理员,代替root完成组内用户管理

选项参数:

选项描述
选项为空时,表示给群组设置密码,仅 root 用户可用
-A user1,…将群组的控制权交给 user1,… 等用户管理,也就是说,设置 user1,… 等用户为群组的管理员,仅 root 用户可用
-M user1,…将 user1,… 加入到此群组中,仅 root 用户可用
-r移除群组的密码,仅 root 用户可用
-R让群组的密码失效,仅 root 用户可用
-a user将 user 用户加入到群组中
-d user将 user 用户从群组中移除

案例演示:

[root@joel ~]# groupadd groupdemo

#  设置密码
[root@joel ~]# gpasswd groupdemo
Changing the password for group groupdemo
New Password: 
Re-enter new password: 
[root@joel ~]# useradd groupdemouser1

# 将groupdemouser1设为groupdemo的管理员
[root@joel ~]# gpasswd -A  groupdemouser1 groupdemo
[root@joel ~]# grep "groupdemouser1" /etc/group /etc/gshadow
/etc/group:groupdemouser1:x:1003:
/etc/gshadow:groupdemo:$6$aiKcsEFQv$WA28tABqOdTnjz67I91CyZiME0okjes2V/mzyZj/e7FtbbLLvJrD4gPinJu8C.sa8.mmX9xUnPbdJC7XVQe7t/:groupdemouser1:
/etc/gshadow:groupdemouser1:!::
[root@joel ~]# useradd groupdemouser2
[root@joel ~]# su groupdemouser1
[groupdemouser1@joel root]$ gpasswd -a groupdemouser2 groupdemo
Adding user groupdemouser2 to group groupdemo
[groupdemouser1@joel root]$ grep "groupdemouser2" /etc/group
groupdemo:x:1002:groupdemouser2
groupdemouser2:x:1004:

 


❤️ END ❤️
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JOEL-T99

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值