用户和用户组管理

一、用户配置文件

  1. 用户配置文件(/etc/passwd)
    • 越是对安全性要求高的服务器,越需要加你合理的用户权限等级制度。

    • 在Linux中主要是通过用户配置文件(/etc/passwd)来查看和修改用户信息。

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

      字段含义
      字段1用户名称
      字段2密码标识
      字段3UID(用户ID)
      字段4GID(用户初始组ID)
      字段5用户说明
      字段6家目录
      字段7登录之后的shell
    • 初始组:就是指用户一登陆就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是和这个用户的用户名相同的组名作为这个用户的用户组。

    • 附加组:指用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个。

    • Shell:就是Linux的命令解释器。在/etc/passwd当中,除了标准Shell是/bin/bash之外,还可以写如/sbin/nologin

  2. 影子文件

    root:$6$qbhVU8JqjrFXXlBs$YXUpNJOilLmLse45ULimO6IRSsbyJcBqf.FV7rZz.0i2smj6zb4ajIz4UVTtxmSnqhyX2/Ga0JPtP17JB7po/0:18100:0:99999:7:::

    字段含义
    字段1用户名称
    字段2加密字段(如果密码位是"!!“或”*"代表没有密码。不能登陆)
    字段3密码最后一次修改日期(使用1970年1月1日作为标准时间吗,每过一天时间戳加1)
    字段4两次密码的修改时间间隔(和第三字段相比)
    字段5密码有效期(和第三字段相比)
    字段6密码修改到期前的警告天数(和第5字段相比)
    字段7密码到期后的宽限天数(和第5字段相比)【0:代表密码过期后立即失效】【-1:则代表密码永远不会失效】
    字段8账号失效时间(要用时间戳表示)
    字段9保留
  3. 组信息文件(/etc/group)

    root:x:0:

    字段含义
    字段1组名
    字段2组密码标志
    字段3GID
    字段4组中附加用户
  4. 组密码文件

    root:::

    字段含义
    字段1组名
    字段2组密码
    字段3组管理员用户名
    字段4组中附加用户

二、用户管理的相关文件

  1. 用户的家目录
    • 普通用户:/home/用户名,所有者和所属组都是此用户,权限是 700;如果把普通用户变为超级用户,权限为root,但是家目录不变
    • 超级用户:/root/,所有者和所属组都是root用户,权限是550
  2. 用户的邮箱
    • /var/spool/mail/用户名
  3. 用户模板目录
    • /etc/skel

三、用户管理命令

  1. 用户添加命令(useradd
    $ useradd [选项] 用户名
    选项:
        -u	UID		    手工指定用户的UID号
        -d	家目录		  手工指定用户的家目录
        -c	用户说明     手工指定用户的说明
        -g  组名		  手工指定用户的初始组
        -G  组名        手工指定用户的附加组(用逗号分割)
        -s  shell      手工指定用户的登陆sheell。默认是/bin/bash
    范例:
        $ groupadd lamp1
        $ useradd -u 550 -g lamp1 -G root -d /home/lamp1 \
        -c "test user" -s /bin/bash lamp1
    
  2. 修改用户密码(passwd)
    $ passwd  [选项] 密码
    选项:
        -S   查询用户密码的密码状态。仅root用户可用。
        -l   暂时锁定用户。仅root用户可用。
        -u   解锁用户。仅root用户可用户。
        --stdin 可以通过管道符输出的数据作为用户的密码
    范例:
    	//查看密码状态
    	$ passwd -S root
    	root PS 2019-07-23 0 99999 7 -1 (密码已设置,使用 SHA512 加密。)
    	用户名  密码设定时间 密码修改间隔时间 密码有效期 警告时间 密码不失效(-1)
    
    	//锁定用户和解锁用户,即修改了shadow文件
    	$ passwd -l sktfly
    	$ passwd -u skyfly
    	//使用字符串作为用户的密码:
    	$ echo "123" | passwd --stdin lamp
    
  3. 修改用户信息
    # usermod [选项] 用户名
    选项:
        -u UID:       修改用户的UID号
        -c 用户说明    修改用户的说明信息
        -G 组名        修改用户的附加组
        -L            临时锁定用户(LOCK)
        -U            解锁用户锁定
    
  4. 修改用户密码状态
    #chage [选项] 用户名
    选项:
        -l:       列出用户的详细密码状态
        -d  日期:  修改密码最后一次更改日期(3字段)
        -m  天数:  两次密码修改时间(4字段)
        -M  天数:  密码有效期(5字段)
        -W  天数:  密码过期前警告天数(6字段)
        -I  天数:  密码过期后宽限天数(7字段)
        -E  日期:  账号失效时间(8字段)
    
    # chage -d 0 skyfly
    这个命令其实是把密码修改日期归0了(shadow第三字段),这样用户一登陆就要修改密码
    
  5. 删除用户
    # userdel [-r] 用户名
    选项:
        删除用户的同时删除用户的家目录
    
    手工删除用户:
        $ vi /etc/passwd
        $ vi /etc/shadow
        $ vi /etc/group
        $ vi /etc/gshadow
        $ rm -rf /var/spool/mail/skyfly
        $ rm -rf /home/sktfl
    
  6. 用户切换命令(su
    # su [选项] 用户名
    选项:
        -:选项只使用"-"代表连带用户的环境变量一起切换
        $ su - root
        -c 命令: 仅执行一次命令,而不切换用户身份
        $ su -root -c "useradd user3"
    

四、用户组管理命令

  1. 添加用户组
    $ groupadd [选项] 组名
    选项:
        -g GID:指定组ID
    
  2. 修改用户组
    $ groupmod  [选项] 组名
    选项:
        -g GID:   修改组ID
        -n 新组名:修改组名
    例:$groupmod -n testgroup group1
    
  3. 删除用户组
    //如果这个组是某一个用户的初始组,则不能删除;如果是附加组,则可以删除
    # groupdel 组名
    
  4. 把用户添加入组或从组中删除
    # gpasswd  选项 组名
    选项:
        -a 用户名:把用户加入组(作为附加用户)
        -d 用户名:把用户从组中删除
    

查看有效和支持的用户组:groups
想要知道用户自己当前的有效用户组和支持的用户组,使用groups即可。

在这个输出的信息中,第一个输出的用户组就是当前的有效用户组了。

切换有效用户组:newgrp
使用newgrp命令可以切换有效用户组,注意只能切换当前账号支持的用户组。

假设当前用户支持“test”和“foo”这两个用户组。那么newgrp test和newgrp foo是有效的。其他的都是无效的。

这个命令是以另外一个shell来提供这个功能的,换句话说,用户使用了另一个shell来登录,而且新的shell给予该用户的有效GID是新切换的用户组。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值