linux-3. 用户和用户组管理

man useradd 可以查看到以下相关的有用信息

一、用户配置文件

1.1 用户信息文件:/etc/passwd

root: x:0:0:root:/root:/bin/bash

字段 作用
第1个字段 用户名称
第2个字段 密码标志 x:代表此用户有密码,最后会去/etc/shadow中去找密码,如果不写,代表没有密码
第3个字段 UID(用户ID) 0:超级用户, 1-499:系统用户(伪用户)500-65535:普通用户
第4个字段 GID(用户初始组ID)
第5个字段 用户说明
第6个字段 家目录 普通用户:/home/用户名/, 超级用户:/root/
第7个字段 登录之后的Shell

如果想把一个普通用户变成超级用户,只需要将其UID改写成0
初始组:就是指用户一登录就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是和这个用户的用户相同的组名作为这个用户的初始组
附加组:指用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个

1.2 影子文件:/etc/shadow

root:$6 1 p g b 5 f L a 1pgb5fLa 1pgb5fLajtjmHA2rocUmD1qwrbe6EuSPC11wW8wDuK2qAudUnBZ3iKg.MaYNRLKUf1Mp0OilcXwA74msPaeUp/3OIL4sf/:18267:0:99999:7:::

字段 作用
第1个字段 用户名称
第2个字段 加密密码 , 如果密码位是"!!"或“*”代表没有密码,不能登录
第3个字段 密码最后一次修改日期,使用1970年1月1日作为标准时间,每过一天时间戳加1
第4个字段 再次修改密码时,两次密码的修改间隔时间(和第3个字段相比)0: 代表再次修改密码时,不需要时间间隔
第5个字段 密码有效期(和第3个字段相比)
第6个字段 密码修改到期前的警告天数(和第5字段相比)
第7个字段 密码过期后的宽限天数(和第5字段相比)0:代表密码过期后立即生效,-1:代表密码永远不会失效
第8个字段 账号失效时间,要用时间戳表示
第9个字段 保留

linux-3. 用户和用户组管理_第1张图片

1.3 组信息文件/etc/group和组密码文件/etc/gshadow

/etc/group
root: x:0:

字段 作用
第1个字段 组名
第2个字段 组密码标志
第3个字段 GID
第4个字段 组中附加用户

/etc/gshadow
cdrom:*::panxiong

字段 作用
第1个字段 组名
第2个字段 组密码
第3个字段 组管理员用户名
第4个字段 组中附加用户

二、用户管理相关件

用户添加的相关文件

  1. 用户的家目录
    • 普通用户:/home/用户名/,所有者和所属组都是此用户,权限是700
    • 超级用户:/root/,所有者和所属组都量root用户,权限是550
  2. 用户的邮箱
    • /var/spool/mail/用户名/
  3. 用户模板目录
    • /etc/skel/
      创建家目录时,里面初始的文件就是从/etc/skel/目录中拷贝过去的
      linux-3. 用户和用户组管理_第2张图片

三、用户管理命令

  1. 常用命令
    # 1. 用户添加命令:useradd
    # useradd [option] 用户名
    # -u UID:手工指定用户的UID号
    # -d 家目录:手工指定用户的家目录
    # -c 用户说明:手工指定用户的说明 
    # -g 组名:手工指定用户的初始组
    # -G 组名:指定用户的附加组,多个附加组可以用逗号分隔
    # -s shell:手工指定用户的登录shell。默认是/bin/bash
    useradd px
    # 创建一个用户后,系统会自动修改或添加以下的文件:
    # grep px /etc/passwd
    # grep px /etc/shadow
    # grep px /etc/group
    # grep px /etc/gshadow
    # ll -d /home/px
    # ll /var/spool/mail/px
    useradd -u 550 -G root,bin -d /px -c "test user" -s /bin/bash px
    
    #
    
    # 2. 修改用户密码:passwd
    # passwd [option] 用户名
    # -S:查询用户密码的密码状态。仅root用户可用
    # -l:暂时锁定用户,远程就没有办法登录,原理是在/etc/shadow下相关用户的密码前加上了!!。仅root用户可用
    # -u:解锁用户。仅root用户可用
    # --stdin:可以通过管道符输出的数据作为用户的密码
    # 修改当前用户的密码
    passwd 
    passwd -S px
    # 输出 px 01/06/2020 0 99999 7 -1
    # 用户名密码设定时间(01/06/2020)密码修改间隔时间(0) 密码有效期(99999)
    # 警告时间(7) 密码不失效(-1)
    
    echo "123" | passwd --stdin px
    
    # 3. 修改用户信息:usermod
    # usermod [option] 用户名
    # -u UID:修改用户的UID号
    # -c 用户说明:修改用户的说明信息
    # -G 组名:修改用户的附加组
    # -L:临时锁定用户
    # -U:解锁用户锁定
    # 修改用户说明 
    usermod -c "test user" px
    # 把px用户加入root组
    usermod -G root px 
    # 锁定用户
    usermod -L px
    # 解锁用户
    usermod -U px
    
    # 4. 修改用户密码状态:chage
    # chage [option] 用户名
    # -l:列出用户的详细密码状态
    # -d 日期:修改密码最后一次更改日期(shadow 3字段)
    # -m 天数:再次密码修改间隔(4字段)
    # -M 天数:密码有效期(5字段)
    # -W 天数:密码过期前警告天数(6字段)
    # -I 天数:密码过后宽限天数(7字段)
    # -E 天数:账号失效时间(8字段)
    # 这个命令其实是把密码修改日期归0了(shadow 3字段),这样用户一登陆就要修改密码
    chage -d 0 px
    
    # 5. 删除用户:userdel
    # userdel [-r] 用户名
    # -r:删除用户的同时删除用户家目录
    
    
    # 6. 用户切换命令:su
    # su [option] 用户名 
    # - :选项只使用“-” 代表连带用户的环境变量一起切换
    # -c 命令:仅执行一次命令,而不切换用户身份
    su - root
    # 不切换成root, 但是执行useradd命令添加px用户
    su - root -c "useradd px"
    
    # 7. 查看用户ID
    # id 用户名
    id px
    # 输出:uid=0(root) gid=0(root) groups=0(root)
    
    

Linux下创建用户时会用到useradd和adduser这两个命令,他们的区别如下:
  1.使用useradd时,如果后面不添加任何参数选项,例如:#sudo useradd test创建出来的用户将是默认“三无”用户:一无Home Directory,二无密码,三无系统Shell。
  2.使用adduser时,创建用户的过程更像是一种人机对话,系统会提示你输入各种信息,然后会根据这些信息帮你创建新用户。

adduser会提示设置密码,而useradd不会。
adduser会创建用户目录,比如/home/freebird freebird是用户,useradd不会
dduser会创建用户目录,比如/home/freebird freebird是用户,useradd不会
adduser会询问全名,房间号码,电话号码等用户信息,useradd不会
 
在Linux中,adduser更适合初级使用者,因为不用去记那些繁琐的参数选项,只要跟着系统的提示一步一步进行下去就行,缺点就是整个创建过程比较复杂而漫长;而useradd比较适合有些高阶经验的使用者,往往一行命令加参数就能解决很多问题,所以创建起来十分方便。

  1. 手工删除用户:

    # 1. 删除/etc/passwd中相关内容
    vim /etc/passwd
    # 2. 删除/etc/shadow中相关内容
    vim /etc/shadow
    # 3. 删除/etc/group相关内容
    vim /etc/group
    # 4. 删除/etc/gshadow中相关内容
    vim /etc/gshadow
    # 5. 删除邮箱
    rm -rf /var/spool/mail/用户名/
    # 6. 删除家目录
    rm -rf /home/用户名/
    
  2. 用户默认值文件

    # 1. /etc/default/useradd文件
    vim /etc/default/useradd
    	- GROUP=100		# 用户默认组
    	- HOME=/home 	# 用户家目录
    	- INACTIVE=-1	# 密码过期宽限天数(shadow文件7字段)
    	- EXPIRE=		# 密码失效时间(shadow文件8字段)
    	- SHELL=/bin/bash # 默认shell
    	- SKEL=/etc/skel  # 模板目录
    	- CREATE_MAIL_SPLLO=yes # 是否建立邮箱
    	
    # 2 /etc/login.defs
    PASS_MAX_DAYS	99999	# 密码有效期(5)
    PASS_MIN_DAYS	0		# 密码修改间隔(4)
    PASS_MIN_LEN	5		# 密码最小5位(PAM)
    PASS_WANR_AGE	7		# 密码到期警告(6)
    UID_MIN			500		# 最小和最在UID范围
    UID_MAX			60000
    ENCRYPT_METHOD	SHA512	# 加密模式
    

四、用户组管理命令

# 8. 添加用户组
# groupadd [option] 组名
# -g GID:指定组ID
groupadd group1

# 10. 修改用户组
# groupmod [option] 组名
# -g GID:修改组ID
# -n 新组名:修改组名
# 把组名group1修改为newgrp
groupmod -n newgrp group1

# 11. 删除用户组
# groupdel 组名
groupdel newgrp

# 12.把用户添加入组或组中删除
# gpasswd 选项 组名
# -a 用户名:把用户加入组
# -d 用户名:把用户从组中删除
# 把用户px加入newgrp组中
gpasswd -a px newgrp
# 把用户px从newgrp组中删除 
gpasswd -d px newgrp

你可能感兴趣的:(linux)