009 用户管理--增加、删除用户

用户管理

linux中用户介绍

什么是用户?

用户其实就是相当于权限的化身,
处于安全考虑
所以,我们在进入系统之前都需要登录,根据用户给相应权限

Linux系统中用户角色

uid : Linux系统当中用户ID(相当于身份证号)
gid : ANTA20163307

用户组其实是统一某一类用户权限

需求:
	大项目 : 
		开发者:a b c d
		运维 : e f
		测试:g
	共同的权限:

超级用户

linux当中的老大(皇帝): root
Windows当中的老大:administrator

用户与组相关的文件

  • /etc/passwd
  • /etc/shadow(影子文件,将/etc/passwd加密写入到这里)
  • /etc/group
  • /etc/gshadow

1、/etc/passwd

#以:为分隔符,7列
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
root x 0 0 root /root /bin/bash
用户名称 密码占位符 用户UID 用户GID 注释信息 用户家目录 登录shell
第一列 第二列 第三列 第四列 第五列 第六列 第七列

2、/etc/shadow

#以:为分隔符,9列
dbus:!!:18689::::::
polkitd:!!:18689::::::
tss:!!:18689::::::
abrt:!!:18689::::::
sshd:!!:18689::::::
postfix:!!:18689::::::
dbus !! 18689 0 99999 7 10 202991231
用户名 密码 最近一次变更密码 密码最少使用天数 密码最长使用天数 密码过期预警天数 密码过期的宽恕时间 账号失效日期 保留
第一列 第二列 第三列 第四列 第五列 第六列 第七列 第八列 第九列

3、/etc/group

#以:为分隔符,4列
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:
cdrom:x:11:
root x 0
用户组名称 用户组密码占位符 用户组的,ID,GID 附加组
第一列 第二列 第三列 第四列

4、/etc/gshadow

#以:为分隔符。4列
stapusr:!::
stapsys:!::
stapdev:!::
utmp:!::
utempter:!::
root
用户组的名称 用户组的密码 用户组的管理者 用户组的附加组
第一列 第二列 第三列 第四列

用户管理命令

创建用户

[root@localhost ~]# useradd user1

查看用户

[root@localhost ~]# id user1
uid=1002(user1) gid=1003(user1) 组=1003(user1)
[root@localhost ~]# who # 查看所有登录的⽤户信息
[root@localhost ~]# whoami # 查看当前登录的⽤户名

删除用户

[root@localhost ~]# userdel user1 # 删除⽤户user1,但不删除⽤户家⽬录和mail
[root@localhost ~]# userdel -r user1 # 要想删彻底,加-r选项

参数详解

#怎样在Linux系统中添加⼀个新的⽤户账户
1) 掌握useradd命令的功能:新增⼀个⽤户。
2) 了解useradd命令的常⽤选项:
3) –u:指定⽤户的UID
4) –g:指定⽤户所属的主群
–G:指定⽤户所属的附加群
5) –d:指定⽤户的家⽬录
6) –c:指定⽤户的备注信息
7) –s:指定⽤户所⽤的shell
8) -e:修改过期时间
9) -M: 不创建家⽬录
10) -r: 创建系统账户,uid处于系统⽤户范围内,默认就没有家⽬录

#灵活应⽤useradd命令的举例:
例如:在系统中新增⼀个fox(狐狸)⽤户的命令:useradd fox
b) 例如:在系统中新增⼀个⽤户user01,属组为police以及uid为600的命令:
useradd –u 600 –g police user01

手动创建用户

  1. /etc/passwd
  2. /etc/shadow
  3. /etc/group
  4. /etc/gshadow
  5. 创建⽤户家⽬录,并⽤⽤户⽼家的模板/etc/skel/ 装修⼀下,注意权限
  6. 6、/var/spool/mail/xxx ⽤户邮箱⽂件

修改用户信息(usermod)

修改用户信息最主要的命令是usermod命令,其参数跟useradd基本一致。

参数

-c<备注> 修改用户账号的备注文字
-d<登入目录> 修改用户登入时的目录
-e<有效期限> 修改账号的有效期限
-f<缓冲天数> 修改在密码过期后多少天即关闭该账号
-g<群组> 修改用户所属的群组
-G<群组> 修改用户所属的附加群组
-l<账号名称> 修改用户账号名称
-L 锁定用户密码,使密码无效
-s 修改用户登入后所使用的shell
-u 修改用户ID
-U 解除密码锁定
  • 修改UID usermod -u

    [root@localhost ~]# tail -1 /etc/passwd
    xiaoyu:x:2002:2002::/home/xiaoyu:/bin/bash
    [root@localhost ~]# usermod -u 2302 xiaoyu
    [root@localhost ~]# tail -1 /etc/passwd
    xiaoyu:x:2302:2002::/home/xiaoyu:/bin/bash
    
  • 修改基本组及附加组 usermod -g(-G)

    # 基本组 : 一个用户必须拥有的哪个组
    [root@localhost ~]# tail -1 /etc/passwd
    xiaoyu:x:2302:2002::/home/xiaoyu:/bin/bash
    [root@localhost ~]# id xiaoyu
    uid=2302(xiaoyu) gid=2002(xiaoyu) groups=2002(xiaoyu)
    [root@localhost ~]# usermod -g group1 xiaoyu
    [root@localhost ~]# id xiaoyu
    uid=2302(xiaoyu) gid=2003(group1) groups=2003(group1)
    [root@localhost ~]# tail -1 /etc/passwd
    xiaoyu:x:2302:2003::/home/xiaoyu:/bin/bash
    [root@localhost ~]# 
    
    # 附加组 : 用户加入的其他用户组
    [root@localhost ~]# groupadd group1
    [root@localhost ~]# id
    uid=0(root) gid=0(root) groups=0(root),1000(oldboy),1001(sssssssssssssssssssssss),1002(test)
    [root@localhost ~]# usermod -G group1 root
    [root@localhost ~]# vim /etc/group
    [root@localhost ~]# tail -1 /etc/group
    group1:x:2003:root
    
  • 修改家目录 usermod -d

    [root@localhost ~]# usermod  -d /home/xiaoyu123 xiaoyu
    
    # 注:修改家目录仅仅修改了配置,而原来的家目录文件没有迁移
    
  • 修改用户描述信息 usermod -c

    [root@localhost ~]# tail -1 /etc/passwd
    xiaoyu:x:2302:2003::/home/xiaoyu123:/bin/bash
    [root@localhost ~]# usermod -c "这是一个甩锅" xiaoyu
    [root@localhost ~]# tail -1 /etc/passwd
    xiaoyu:x:2302:2003:这是一个甩锅:/home/xiaoyu123:/bin/bash
    
  • 修改用户默认解析器 usermod -s

    [root@localhost ~]# usermod -s /bin/sh xiaoyu
    [root@localhost ~]# tail -1 /etc/passwd
    xiaoyu:x:2302:2003:这是一个甩锅:/home/xiaoyu123:/bin/sh
    
  • 锁定与解锁

    [root@localhost home]# usermod -L xiaoyu
    [root@localhost home]# usermod -U xiaoyu
    
  • 修改登录名称 usermod -l

    [root@localhost home]# usermod -l dayu xiaoyu
    [root@localhost home]# tail -1 /etc/passwd
    dayu:x:2302:2003:这是一个甩锅:/home/xiaoyu123:/bin/bash
    
  • 追加组 usermod -a -G

    [root@localhost home]# id dayu
    uid=2302(dayu) gid=2003(group1) groups=2003(group1),1000(oldboy)
    [root@localhost home]# usermod -G root dayu
    [root@localhost home]# id dayu
    uid=2302(dayu) gid=2003(group1) groups=2003(group1),0(root)
    [root@localhost home]# usermod -G oldboy dayu
    [root@localhost home]# id dayu
    uid=2302(dayu) gid=2003(group1) groups=2003(group1),1000(oldboy)
    [root@localhost home]# usermod -a -G root dayu
    [root@localhost home]# id dayu
    uid=2302(dayu) gid=2003(group1) groups=2003(group1),0(root),1000(oldboy)
    

密码(passwd)

修改或添加Linux普通用户的密码。直接影响的文件是/etc/shadow

参数

-d 删除密码
-l 锁定用户密码,无法被用户自行修改
-u 解开已锁定用户密码,允许用户自行修改
-e 密码立即过期,下次登陆强制修改密码
-k 保留即将过期的用户在期满后能仍能使用
-S 查询密码状态
  • 增加或修改密码

    当用户密码不存在的时候即为增加密码,当用户密码存在时即为修改密码。

    [root@localhost home]# useradd password
    [root@localhost home]# tail -1 /etc/passwd
    password:x:2303:2303::/home/password:/bin/bash
    [root@localhost home]# tail -1 /etc/shadow
    password:!!:18701:0:99999:7:::
    [root@localhost home]# passwd password
    Changing password for user password.
    New password: 
    BAD PASSWORD: The password is a palindrome
    Retype new password: 
    passwd: all authentication tokens updated successfully.
    [root@localhost home]# tail -1 /etc/passwd
    password:x:2303:2303::/home/password:/bin/bash
    [root@localhost home]# tail -1 /etc/shadow
    password:$6$.EmM.4Bl$f.LimfvMsxxFZq6yFklfyk08JKQORdQovlk2a2dtrpkP31lAMLQpezFqLheBYOTm4Sur9aAqZlC/6MN6wHFBM1:18701:0:99999:7:::
    [root@localhost home]# 
    
  • 免交互修改密码

    [root@localhost home]# echo "123" | passwd --stdin dayu
    Changing password for user dayu.
    passwd: all authentication tokens updated successfully.
    

用户组

就类似于班级,是某个同权限用户的集合。

创建组

groupadd

-g 指定新建工作组的id
-r 创建系统工作组,系统工作组的组ID小于1000
-K 覆盖配置文件“/ect/login.defs”
-o 允许添加组ID号不唯一的工作组
[root@localhost home]# groupadd group2
[root@localhost home]# tail -1 /etc/group
group2:x:2304:
[root@localhost home]# 
  • 指定gid
[root@localhost home]# groupadd -g 2204 group3
[root@localhost home]# tail -1 /etc/group
group3:x:2204:
  • 创建系统组
[root@localhost home]# groupadd -r group4
[root@localhost home]# tail -1 /etc/group
group4:x:996:

修改组

groupmod

-g 设置欲使用的群组识别码
-o 重复使用群组识别码
-n 设置欲使用的群组名称
  • 修改名称

    [root@localhost home]# tail -8 /etc/group
    girl:x:2001:
    [root@localhost home]# groupmod -n boy girl
    [root@localhost home]# tail -8 /etc/group
    boy:x:2001:
    
  • 修改gid

    [root@localhost home]# groupmod -g 2021 boy
    [root@localhost home]# tail -8 /etc/group
    boy:x:2021:
    

删除组

用户组在系统中删除,如果一个组被用户占用则不能删除。

[root@localhost home]# groupdel group4
[root@localhost home]# tail -8 /etc/group
dajige:x:1003:
abc:x:2000:
xiaoyu:x:2002:
group1:x:2003:root
password:x:2303:
group2:x:2304:
group3:x:2204:
boy:x:2021:
[root@localhost home]# 

# 注:用户被删除,用户基本组也会被删除
[root@localhost home]# useradd test-group-del
[root@localhost home]# tail -1 /etc/passwd
test-group-del:x:2304:2305::/home/test-group-del:/bin/bash
[root@localhost home]# tail -1 /etc/group
test-group-del:x:2305:
[root@localhost home]# userdel -r test-group-del
[root@localhost home]# tail -1 /etc/passwd
password:x:2303:2303::/home/password:/bin/bash
[root@localhost home]# tail -1 /etc/group
boy:x:2021:
[root@localhost home]# 

组成员管理

gpasswd

-a 添加用户到组
-d 从组删除用户
-A 指定管理员
-M 指定组成员和-A的用途差不多
-r 删除密码
-R 限制用户登入组,只有组中的成员才可以用newgrp加入该组
# 添加一个组到用户
[root@localhost home]# useradd gtest
[root@localhost home]# vim /etc/group
[root@localhost home]# id gtest
uid=2304(gtest) gid=2305(gtest) groups=2305(gtest),2204(group3)
[root@localhost home]# gpasswd -a gtest group2
Adding user gtest to group group2
[root@localhost home]# id gtest
uid=2304(gtest) gid=2305(gtest) groups=2305(gtest),2304(group2),2204(group3)

# 添加多个组到用户
[root@localhost home]# gpasswd -M gtest,root,dayu group
gpasswd: group 'group' does not exist in /etc/group
[root@localhost home]# gpasswd -M gtest,root,dayu group3
[root@localhost home]# id root
uid=0(root) gid=0(root) groups=0(root),2000(abc),2003(group1),2204(group3)
[root@localhost home]# id dayu
uid=2302(dayu) gid=2003(group1) groups=2003(group1),0(root),1000(oldboy),2204(group3)
[root@localhost home]# id gtest
uid=2304(gtest) gid=2305(gtest) groups=2305(gtest),2304(group2),2204(group3)

# 为一个组添加组长(组长有权限向组内添加用户,其他用户[除root外]没有权限添加用户到该组)
[root@localhost ~]# gpasswd -A dayu group3
[root@localhost ~]# cat /etc/gshadow
group3:!:dayu:gtest,dayu,oldboy

# 组权限
[root@localhost ~]# id dayu
uid=2302(dayu) gid=2003(group1) groups=2003(group1),1000(oldboy),2204(group3)
[root@localhost ~]# chown .group3 /tmp/12.txt 
[root@localhost ~]# ls -l /tmp/12.txt
-rw-r--r-- 1 root group3 4 Mar 15 11:35 /tmp/12.txt
[root@localhost ~]# chmod g+w /tmp/12.txt
[root@localhost ~]# ls -l /tmp/12.txt
-rw-rw-r-- 1 root group3 4 Mar 15 11:35 /tmp/12.txt
[root@localhost ~]# su - dayu
Last login: Mon Mar 15 11:37:05 CST 2021 on pts/3
[dayu@localhost ~]$ echo "456" > /tmp/12.txt 
[dayu@localhost ~]$ cat /tmp/12.txt
456
[dayu@localhost ~]$ 
原文地址:https://www.cnblogs.com/zhaokunhao/p/14524468.html