Linux系统中的用户管理

1用户及用户组存在的意义

1.1 用户存在的意义

用户是系统中最底层的一种安全机制。应该如何合理分配系统资源?在这个问题解决时必须考虑资源问题。
linux中的3A机制组成系统中最底层的安全架构,包括身份(account)、授权(author)、认证(auth),另外linux中的3A机制系统资源是有限的。

1.2 用户组存在的意义

用户组是一个逻辑容器,是用户的集合,它不能被直接使用,其最终的目地是为了对某一类用户进行归类和统一授权处理。

2 用户及用户组在系统中的存在方式

在linux中,系统会分配给每个用户一个id,这是系统记录与区分不同用户的方式,而人类通过设置字符名称的方式来记录和区分不同的用户。之后系统会在某一特定文件中将id和字符名称作出映射,当该映射被记录到文件当中用户才能存在。所以用户本质上就是/etc/passwd文件中的一行字符,而用户组存在的方式就是/etc/group 文件中的一行字符。

3 用户切换

3.1 用户查看

命令含义
whoami查看当前用户
id (用户名)查看用户id信息,不加用户身份时,显示当前用户
id -u (用户名)查看用户的用户id,不加用户身份时,显示当前用户
id -g (用户名)查看用户主组id,不加用户身份时,显示当前用户
id -G (用户名)查看用户所有的组的id,不加用户身份时,显示当前用户
id -n (用户名)显示名称,n不单独使用,和前面的参数(u、g、G)配合使用。单用前面的参数表示查看各个相关id ,组合n使用表示查看相关名称。不加用户身份时,显示当前用户

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:如上图所示,输入 ‘id westos’,显示的内容分别是:用户id和名称、主组id和名称、附加组id和名称。当主组没经过设置时,默认是它自己,groups中显示的第一个组是主组,后面是附加组。

3.2 用户id范围

范围使用者
0-65535总范围
0Linux超级用户ID
1-200系统预留ID
201-999Liunx系统自用ID
1000-65535用户级ID

注意:以上ID设定规则都被记录在/etc/login.defs;总范围是默认的,但如果有特殊需求,范围需要更大,可以设定。

3.3 用户切换

使用方法:
su - username
其中‘su’ 表示切换用户身份‘-’表示切换用户环境,从超级用户切换至普通用户,不需要普通用户的密码;从普通用户切换至超级用户,需要超级用户的密码;从普通用户切换至普通用户,需要密码。
在这里插入图片描述
在这里插入图片描述
注意:如上图所示:单用su+用户名表示切换了用户身份,但是仍然处于当前桌面;按exit可退出当前用户;在做用户切换时当使用完毕用户身份后应及时退出,不要在一个shell中反复执行su命令,在一个shell中反复执行su命令会导致环境错乱,这是因为,每切换一次,系统就会开启一个新的shell, 此时可以在applications —>system monitor 查看进程; 当在超级用户的shell里切换到普通用户,再重新打开一个shell时,仍然是超级用户的shell。

4 用户涉及到的系统配置文件

系统配置文件作用
/etc/passwd用户身份信息文件,其格式是(用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录:用户默认shell ),该目录下有某个用户的名称,才表示它在系统中是一个账号,否则不是;可以使用 ‘man 5 passwd’命令查看文件详解,其第二列表示用户密码,但是把密码放在该目录下是不安全的,因为该文件对所有用户都是可读的,即使加密,也可以破解,所以写的时候一般会在这列写个‘x’,表示没有用,但是这一位仍然存在
/etc/group组身份信息文件,其格式是(主组名称:组密码:主组id:组的附加成员)
/etc/skel/.*用户环境配置文件模板,即一个新用户需要把这个目录下的所有文件复制到自己的家目录里
/etc/shadow用户认证信息文件,例如:密码,密码期限等
/home/username用户家目录 ,用户进入系统时默认所在的位置
/var/spool/mail/username用户邮箱文件

在这里插入图片描述
在这里插入图片描述
注意:如上图所示,是使用man 5 passwd命令查看/etc/passwd文件详解。

5 用户和用户组建立及删除

5.1 用户的建立及删除

命令含义
useradd username用户建立,同时该用户的家目录会被自动建立出来
useradd -u id username建立用户时,设置用户id
useradd -g id username建立用户时设置用户主组id,当想设置的主组id不存在时,需要先建立该主组,然后再设置给该新建用户 。当要指定给用户的主组存在时,就不需要再建立主组
useradd -G id username建立用户时,设置用户附加组id
useradd -d dir username当建立用户时想自己指定用户家目录时使用,默认情况下家目录会自己建立
useradd -M username建立用户时不建立家目录
useradd -c “word” username指定用户说明
useradd -s shell username指定用户shell,默认情况下的shell是,/bin/bash ,也可以改变
userdel -r username加上-r参数表示删除用户的同时删除用户的系统配置文件,不加-r参数表示只删除用户信息,但它在系统中的配置文件被保留,当再次建立该用户时,就会报错,显示家目录存在。此时想要删除他的配置文件家目录等需要手动删除。

5.2 用户组的建立及删除

命令含义
groupadd groupname组建立
groupadd -g id groupname指定组id
groupdel groupname指定组名称

在实验如5.1、5.2表所示的命令时,可以监控所建立的命令,监控命令为:
watch -n 1 "tail -n 4 /etc/passwd /etc/group;echo======;ls -l /home"表示监控两个目录的后四行和显示家的名称,ctrl c 可结束监控。下图为初始监控的内容。

在这里插入图片描述
如下图所示,建立一个名为lee的用户:
在这里插入图片描述
查看监控,建立成功:
在这里插入图片描述
加参数-r删除该用户及其系统配置文件:
在这里插入图片描述
查看监控,删除成功:
在这里插入图片描述
不加-r参数删除用户:
在这里插入图片描述
查看监控,用户被删除,但家目录仍然存在:
在这里插入图片描述
再次建立该用户时,系统报错:
在这里插入图片描述
手动删除该用户家目录和配置文件:
在这里插入图片描述
查看监控,成功删除该用户:
在这里插入图片描述
建立一个组:
在这里插入图片描述
查看监控该组建立成功:
在这里插入图片描述
删除该组:
在这里插入图片描述
查看监控,删除该组成功:
在这里插入图片描述
建立新用户同时设置用户id为666:
在这里插入图片描述
查看监控,建立用户的同时设定用户id成功:
在这里插入图片描述
建立一个组,并将该组设置为新建立用户的主组:
在这里插入图片描述
查看监控,设置成功:
在这里插入图片描述
添加附加组1000到新建立的用户,查看用户id:
在这里插入图片描述
查看监控,附加组建立成功:
在这里插入图片描述
建立用户时,指定用户说明:
在这里插入图片描述
查看监控,成功添加用户说明:
在这里插入图片描述
建立用户时,指定用户家目录:
在这里插入图片描述
查看监控,指定家目录成功:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
建立用户时,也可以使用useradd 一次性把想要设置的参数全部设置上:
在这里插入图片描述
查看监控:
在这里插入图片描述
注意:上面的实验均是执行一次新建用户命令后,删除一次该用户,再重新执行下一条新建命令。

6 用户和用户组的信息管理

命令含义
usermod -l 新用户名 原用户名更改用户名称
usermod -u 新id 用户名更改用户id
usermod -g 名字/数字 用户名更改主组id
usermod -G 名字/数字(多个时可用逗号隔开) 用户名修改用户附加组身份
usermod -aG 名字/数字(多个时可用逗号隔开) 用户名添加用户附加组身份
usermod -c “新用户说明” 用户名更改用户说明
usermod -c “” 用户名删除用户说明
usermod -d更改家目录的指向字符(更改/etc/passwd中表格的家目录的指向字符,但实际的家目录并没有更改,想让两个同时更改,需要用下面的 -md参数)
usermod -md 新的家目录 用户名更改家目录指向同时更改家目录名称
usermod -s shell 用户名更改默认shell
usermod -L 用户名冻结账号
usermod -U 用户名解锁账号
groupmod -g 名字/数字 用户名更改用户主组id

注意:初始创建一个用户时,主组是它自己,后面可以修改主组,也可以修改附加组,修改主组后,用id查看时,附加组里的第一个组和主族的内容就会变,若使用了修改附加组命令,则原来的附加组将都不存在,此时的附加组为新修改的。使用添加附加组的命令时,其他附加组不变,只是添加了新附加组。
修改用户名:
在这里插入图片描述
在这里插入图片描述
查看监控,用户名修改成功:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7 用户认证信息管理

7.1 用户认证文件

/etc/shadow:认证文件内容包含九位“用户名称:用户密码的加密字符:用户密码最后一次被修改时间:密码最短有效期:密码最长有效期(是一个时间段,在这个时间段内修改秘密,最长有限期就会刷新):密码过期前警告期:账号非活跃期(比如密码30天后过期,若设置非活跃期为1,那么第31天时还有时间做密码修改,但是此时的可使用功能是有限的,过了这一天后,还没有修改密码账号将会被冻结):账号到期时间(是一个时间点,这个账号本身就是一个有期限的账号,一旦到时间,不管之前做过什么设定,账号都会被冻结,类似于vip):用户自定义(还未投入使用)”
注意:当第二位,即用户密码位是两个‘!!’时,代表用户是被锁定的,没有设置密码,若设置过密码,即为一串加密字符串。
在这里插入图片描述
上图所示:ls -l /etc/shadow表示朝阿奎那该文件,结果显示中前面的‘-’符号表示不能查看,只有超级用户有权力对其进行修改,该文件是系统进行用户认证使用的(使用pam插件完成,叫做pam认证插件)
在这里插入图片描述
上图所示为认证文件中的部分内容。

7.2 用户名称

passwd -S 用户名 表示查看密码状态。
先设置监控,如下图所示:
在这里插入图片描述
查看用户westos的密码状态,如下图所示:
在这里插入图片描述
其中PS表示密码被设定过, ps后面的时间表示密码最后一次被修改的时间,SHA512 一种加密方式。加密分对称加密(加密和解密用一种方式,比如指纹),非对称加密(加密和解密不是一种方式,比如上锁用钥匙开锁)。可以使用openssl passwd --help查看那加密方式,然后使用参数进行加密字符串的生成。

7.3 用户加密字符

1)更改密码

超级用户改密码: passwd +用户名或者“echo 123 | passwd --stdin lee”,stdin为采集标准输入,该命令表示将echo 表示的密码传给passwd 采集起来再给lee这个用户,这是采用非交互的方式修改密码;注意超级用户可以直接修改密码,不需要知道原始密码。
在这里插入图片描述

普通用户改密码: passwd
Changing password for user lee.
Current password: #输入原始密码
New password: ##输入新密码(8位以上无序数字+无序字母组合)
Retype new password: ##重复输入
passwd: all authentication tokens updated successfully.
如下图,表示普通用户修改密码:
在这里插入图片描述
查看监控,westos的第二位,密码位处于加密状态:
在这里插入图片描述

下图表示新增加一个用户,查看其密码状态,注意没有设置密码时第二位是LK锁定状态;设置过密码后,第二位为PS,且为加密状态。
在这里插入图片描述
查看监控,当第二位,即用户密码位是两个‘!!’时,代表用户是被锁定的:
在这里插入图片描述
设置该用户的密码,可见设置过密码后,第二位密码为PS加密状态:
在这里插入图片描述

2)冻结认证

命令含义
passwd -l lee冻结账号认证
passwd -u lee解锁账号认证

注意:在 6 用户和用户组的信息管理章节中,有usermod命令的冻结和解锁方式,其区别在于:在企业8版本里,passwd和usermod里的冻结和解锁可以混用;在之前的版本里,passwd的锁级别高,passwd锁了后,需要用usermod解锁两次才能解开。
在这里插入图片描述
在这里插入图片描述
下图表示分别用两种方法进行冻结和解锁:
在这里插入图片描述
冻结和解锁方式的混用:
在这里插入图片描述

3)密码删除

使用方法:passwd -d lee ,注意密码清空代表后面在登陆系统的时候不需要密码就可以登陆,即认证为空。

在这里插入图片描述

4)密码使用天数

默认是从1970-1-1算其到今天的时间

命令含义
passwd -e 用户名修改默认使用时间为0
chage -d 0 用户名账号必须改密码才能登陆系统

注意:passwd -e lee 命令默认最近登陆时间本来是多少就是多少,该命令表示将其修改为零,改为零意味着用户在完成认证后被强制的修改一次密码,否则无法登陆系统。也就是说在登陆的时候输入一次密码后,系统会让该用户再次输入一次密码,完成后,系统会让该用户输入新密码,再确认一遍新密码,才能登陆成功,登陆成功后,最近登陆时间就会被刷新,刷新后不再为零意味着,下次再登陆时就不用再修改密码了。(在企业中,一般适用于新建的账号,把每个账号的初始密码设定的一样,员工使用时,只需要修改一次密码即可。)
这两条命令含义相同,区别在于第一条只能将时间修改为零,而第二条的零是可以为指定值的,但一般情况不修改。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5)密码最短有效期

命令含义
passwd -n 1 用户名用户在1(该数字可自己设置)天内不能改密码
chage -m 1 用户名用户在1(该数字可自己设置)天内不能改密码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6)密码最长有效期

命令含义
passwd -x 30 用户名30(可自己设置)天内用户必须更新密码否则会被冻结
chage -M 30用户名30(可自己设置)天内用户必须更新密码否则会被冻结

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7)密码过期警告

命令含义
passwd -w 2 用户名账号过期前警告时间
chage -W 2 用户名账号过期前警告时间

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8)认证非活跃天数

命令含义
passwd -i 2 用户名账号认证最大时间超过后还能用多久
chage -I 2 用户名账号认证最大时间超过后还能用多久

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9)账号认证到期时间

使用方法:chage -E “2020-05-11”,表示到2020-5-11这天账号会被冻结。
注意:默认从1970-1-1算到2020-5-11的天数,这天账号会被冻结,这个时间只能由chage命令改,没有passwd命令。
在这里插入图片描述
在这里插入图片描述

8 用户权力下放

在系统中普通用户是无法执行系统管理命令的,如果需要普通用户执行系统管理动作那么需要root用户来进行授权。如下图,表示普通用户无法添加新用户。
在这里插入图片描述
hostname命令,查看当前系统主机名:
在这里插入图片描述
普通用户授权方式 “sudo”。作用:可以使普通用户使用指定的用户身份呢运行命令
授权方法:visudo ,此命令作用是编辑/etc/sudoers并提供语法检测
授权文件:/etc/sudoers ,超级用户可以在该文件中写入授权,对某一个用户进行授权,但是该授权是有代码规范性的。一般情况下,写于100行左右,不推荐使用vim打开该文件添加授权内容,因为这样打开写入时,是无法检测语法错误的,所以有一个专门进行权力下放的命令: visudo直接回车即可。用vim打开授权文件如下图:
在这里插入图片描述
写入授权内容:
在这里插入图片描述
用visudo进行普通用户授权:
在这里插入图片描述

eg: westos westoslinux.westos.org=(root) /usr/sbin/useradd, /usr/sbin/groupadd
若在visudo中写入授权时,会进行语法检测,出现错误会进行报错,询问 what now? 此时按下e可以进入修改。但是语法检测正常不代表设定合理,只能说明书写的格式是正确的,但里面的设定值是否正确就不一定了。下图表示检测出语法错误:
在这里插入图片描述
注意: westos westoslinux.westos.org=(root) /usr/sbin/usera, /usr/sbin/groupadd
格式正确,但是usera实际上写错了,此时它没法检测出,需要自己细心。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

注意:在设定完成后,切换被下放权力的用户,使用新权力时,仍然无法成功。这是因为,在执行程序时,它不会读取我们写的文件,该文件和命令本身是没有关系的,所以我们在执行该文件时,需要先加载该文件的内容 。此时,需要输入: sudo useradd test ,表示先使用sudo这个命令去调用useradd这个新添加的权力,然后再建立新用户。第一次执行该命令去调用下放的权力时,需要当前用户密码的认证,如果不想每次都输入密码,可以在visudo中再写入 ‘NOPASSWD:’表示不再输入密码 。被下放的用户执行被授权内容时,都要在命令前加上sudo,命令的其他部分按原来格式写即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值