Linux第七章 用户和用户组管理

第七章 用户和用户组管理

用户配置文件

用户信息文件/etc/passwd

  • 用户管理简介

越是对安全性要求高的服务器, 越需要建立合理的用户权限等级制度和服务器操作规范.

在linux中主要是通过用户配置文件来查看和修改用户信息.

  • /etc/passwd

name:password:UID:GID:GECOS:directory:shell

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

每行一个用户, 共七个字段, 用:分隔

vi /etc/passwd
{
	root		:		用户名
	x			:		密码标志
	0			:		UID
	0			:		GID
	root		:		用户说明
	/root		:		家目录
	/bin/bash	:		登录之后的shell
}
1. 用户名		:		要规范.
2. 密码标志		:		文件passwd的权限是所有用户都可读, 所以密码以加密方式存放在文件shadow中, 虽然加密, 但是可以破解, 这个文件的权限是只有root可读. x表示用户是有密码的.

3. UID			:		用户id
						0			:	超级用户
						1~999		:	系统用户( 伪用户 )
						1000~65535	:	普通用户
					每个用户都有个id号, 而用户名是为了方便查看.
					如果将用户的uid改为另一个用户的uid, 系统则认为两个用户为一个用户.
					伪用户是为了给系统启动服务, 命令调用的, 如果删除了这些用户, 相对应的服务或命令就无法使用了, 这些用户也不能登录.

4. GID			:		用户的初始组id.
5. 用户说明		:		备注信息, 可省略.
6. 家目录		:		用户登录的初始位置.
7. 登录之后的shell	:		shell是linux的命令解释器( 用户输入命令, shell会给内核, 内核读取后返回给shell, 并解释返回结果 ), 标准shell是/bin/bash, 伪用户的shell为/sbin/nologin.
  • 初始组和附加组
初始组	:	组名和用户名相同, 用户建立后立刻拥有这个用户组的相关权限( 用户建立后就拥有组 ), 每个用户必须有且只有一个初始组, 初始组可以改, 但是不推荐改.

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

影子文件/etc/shadow

该文件是passwd的影子文件( 和passwd内容相似, 但是权限不同 ).

  • 文件
vi /etcshadow
{
	第一字段		:		用户名.
	第二字段		:		加密密码, 加密算法为SHA512算法.
							如果密码为`!!`或`*`代表没有密码, 不能登录.
	第三字段		:		密码最后一次修改日期.
							标准时间为1970年1月1日, 每过一天时间戳加1.
	第四字段		:		两次密码的修改时间间隔( 和第三字段相比, 间隔几天才能修改 ).
	第五字段		:		密码有效期( 和第三字段相比 ).
	第六字段		:		密码修改到期前的警告天数( 和第五字段相比 ).
	第七字段		:		密码过期后的宽限天数( 和第五字段相比 ).
	第八字段		:		账号失效时间, 要用时间戳表示.
	第九字段		:		保留.
}
  • 时间戳换算
    日期 -> 时间戳 :
    echo $(($(date --date='2023-01-07' +%s)/86400+1))
    时间戳 -> 日期 :
    date -d '1970-01-01 19364 days'

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

  • /etc/group

group_name:password:GID:user_list

root:x:0:

vi /etc/group
{
	root		:		组名
	x			:		组密码标志
	0			:		GID
	user_list	:		组中附加用户
}
  • /etc/gshadow
vi /etc/gshadow
{
	组名
	组密码, 不推荐设置
	组管理员用户名
	祖中附加用户
}

用户管理相关文件

  • 用户的家目录
    • 普通用户

    所有者和所属组都是此用户, 权限是700, 添加一个用户会在/home目录下自动生成一个跟用户名相同的目录

    • 超级用户

    所有者和所属组是root, 权限是550.

  • 用户的邮箱

每个用户的邮箱在/var/spool/mail/用户名/目录下, 默认添加用户后就会生成该目录.

  • 用户模板目录

在用户的家目录下, 默认会有一些隐藏文件, 这是在添加用户后自动创建的.

/etc/skel/用户模板目录下的文件都会在添加用户时自动创建到用户的家目录中.

用户管理命令

添加用户useradd

  • 命令格式
    useradd [参数] 用户名
    • 参数 :
参数功能
-u指定UID. GID会和UID相同, 不推荐
-g指定初始组,不推荐
-G指定附加组, 前提是组已存在, 添加多个可用逗号分隔
-c指定说明( passwd文件中的第五个字段 )
-d指定家目录, 不推荐
-s指定shell, 默认为/bin/bash
  • 用户默认值文件
    /etc/default/useradd
    /etc/login.defs

这两个配置文件中设置了用户添加时生成的默认值, 在创建用户时系统会调用这两个文件.

在配置文件中可以看到默认值, 也可修改.

vi /etc/default/useradd
{
   HOME=/home		:		创建用户时默认的家目录
   INACTIVE=-1		:		密码过期宽限天数
   EXPIRE=			:		密码失效时间
   SHELL=/bin/bash	:		默认shell
   SKEL=/etc/skel	:		模板目录
   CREATE_MAIL_SPOOL=yes	:	是否建立邮箱
}
vi /etc/login.defs
{
	PASS_MAX_DAYS   99999	:	密码有效期
	PASS_MIN_DAYS   0		:	密码修改间隔
	PASS_MIN_LEN    5		:	密码最小5位, 现在是PAM( 8位 )
	PASS_WARN_AGE   7		:	密码到期警告
	
	UID_MIN                  1000		
	UID_MAX                 60000	:	UID范围
	
	GID_MIN                  1000
	GID_MAX                 60000	:	GID范围
	
	ENCRYPT_METHOD SHA512			:	加密模式
}

用户密码passwd

  • 命令格式
    passwd [参数] [用户名]
    • 参数 :
参数功能
-S查询用户的密码状态, 仅root可用
-l暂时锁定用户, 仅root可用
-u解锁用户, 仅root可用
- - stdin使用字符串作为用户的密码, 多在shell编程中为用户设置初始密码
  • 密码状态
[root@localhost etc]# passwd -S centos
centos PS 2023-01-06 0 99999 7 -1 (Password set, SHA512 crypt.)
[root@localhost etc]# grep centos /etc/shadow
centos:$6$Yj.s/7Bl$YDF7uIF2oTLpgi0:19363:0:99999:7:::

密码状态数值与shadow文件中的值相对应.

  • 锁定用户
    passwd -l centos

锁定之后, shadow文件中密码位前会多出!!, 使其密码失效, 这样用户就不能登录了.

  • 使用字符串作为用户的密码
    echo '123' | passwd --stdin centos

修改用户信息usermod和用户密码状态chage

  • usermod
    • 命令格式
      usermod [参数] 用户名

      • 参数 :

      useradd的参数在usermod中都适用, 另外还有其他参数.
      -L : 锁定用户
      -U : 解锁用户

    • 功能

      usermod是针对已经存在的用户, 而uesradd是针对未添加的用户.

  • chage
    • 命令格式
      chage [参数] 用户名
      • 参数 :
        -l : 列出用户的详细密码状态
        -d : 修改密码最后一次更改日期( shadow第三字段 )
        chage -d 0 centos : 将密码修改日期归零, 用户一登录就要修改密码

删除用户userdel和用户切换su

  • userdel
    • 命令格式
      userdel [参数] 用户名

      • 参数 :
        -r : 删除用户的同时, 删除用户的家目录
    • 手工删除

      删除passwd, shadow, group, gshadow文件中的用户信息, 邮件目录和家目录即可, 添加用户同样如此.

  • id
    id 用户名

    查看用户的uid, gid, 组信息

  • su
    su [参数] 用户名
    • 功能 :
      切换用户, root切换成其他用户时不需要输入密码, 其他用户切换成任何用户都需要输入密码.
    • 参数 :
      - : 连带用户的环境变量一起切换, env可以查看环境变量
      su - root -c "useradd centos" : 不切换成root, 但是执行useradd命令添加用户centos

用户组管理命令

  • 添加用户组
    groupadd [参数] 组名
    groupadd -g 1000 组名 : 指定GID
  • 修改用户组
    groupmod [参数] 组名
    参数 :
    -g : 修改GID
    -n : 修改组名
    groupmod -n [新组名] [旧组名]

该命令不推荐使用.

  • 删除用户组
    groupdel 组名

删除组的前提, 可以有附加用户, 组中不能有初始用户.

  • 把用户添加到组中或删除
    gpasswd 参数 组名
    参数 :
    -a 用户名 : 添加
    -d 用户名 : 删除
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值