用户存在的意义
现阶段我们接触到的用户为超级用户root和普通用户,在Linux系统中,由于角色不同,权限和所完成的任务也不同。
多用户系统从系统管理角度来说更为方便。从安全角度来说,多用户管理的系统更为安全。
组存在的意义
将用户分组是Linux系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,在很大程度上简化了管理工作。
用户组(group)就是让某一类用户(user)具有相同权限的集合体。
比如有时我们要让多个用户具有相同的权限,比如查看、修改某一文件或执行某个命令,这时我们需要用户组,我们把用户都定义到同一用户组,我们通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的用户对该文件或目录都具有相同的权限,这是我们通过定义组和修改文件的权限来实现的。
用户的查看
符号 | 含义 |
---|---|
whoami | 查看当前用户 |
id -u root | 查看用户uid |
id -g root | 查看用户gid |
id -G root | 查看用户所属组id |
id -u/g/G -n root | 显示用户名 |
id root | 看指定用户id信息 |
示例:
用户的切换
gnome-session-quit --force (注销当前用户)
su - 用户名称
su 注意:
su - 中 “ - ” 表示在用户身份切换时同时切换当前用户的环境
su - 执行高级用户切换到低级用户时不需要密码,低级用户切换到高级用户需要密码,平级用户之间的切换也需要密码。
每次su -切换到其他用户操作之后必须退出,然后再次切换到其他用户
su命令也可以切换用户,但是su命令只切换用户而不切换环境和配置文件
用户在系统中的存储方式
用户的信息存放在 /etc/passwd
说明:默认shell的指定有哪些可以查看etc/shells文件
用户名称:密码:uid:gid:说明:家目录:shell
用户组信息文件存放在**/etc/group**文件中
组名称:组密码:组id:组成员
用户认证信息文件存放在**/etc/shadow**中
用户名称:用户密码:最后一次修改时间:用户密码最短有效期:密码最长有效期:密码变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段:
用户名称 | 用户名 |
---|---|
用户密码 | 用户的加密字符串,默认用的加密方式为sha512对称加密。如果加密字符串前出现“!”那么用户被冻结 |
用户最后一次被更改时间 | 此时间计算是从1970-1-1开始计算的累计天数 |
用户密码最短有效期 | 如果此位设定数字,那么在此数字范围的天数内是不能修改用户密码的 |
用户密码最长有效期 | 用户必须在此有效期内更新密码,如果超时会被冻结 |
密码需要变更前的警告天数 | 当账户密码有效期快到时,系统会发出警告信息给此账户,提醒用户更改密码 |
当账户密码有效期快到时,系统会发出警告信息给此账户,提醒用户更改密码 | 在密码过期后,用户如果还是没有修改密码,则在此字段规定的宽限天数内,用户还是可以登录系统 |
账号失效时间 | 账号在此字段规定的时间之外,不论你的密码是否过期,都将无法使用 |
保留字段 | 暂未使用 |
用户的骨文件存放在**/etc/skel/**
用户的家目录**/home/username**
用户管理命令!!!
useradd 用户名 | 建立用户 |
---|---|
userdel 用户名 | 删除用户,但不删除用户的配置文件 |
userdel -r 用户名 | 删除用户并删除用户的配置文件 |
示例:用户的建立,此时我们用到
watch -n -1 "tail -n 3 /etc/passwd /etc/group; ls -l /home/"
来进行观察变化
示例:注意观察两个删除的不同,-r 同时删除了配置文件,而另一个并没有。
**注意:**当用userdel 的方式进行删除,再次建立同一名称用户,系统会提示此用户存在。
useradd -u 111 westos ##建立用户且组id为111
groupadd -g 111 westos ##建立用户组id,且要想建立一个用户自己设定的组id必须先自己创立一个组id,才可使用
groupdel westos ##删除用户组
useradd -g 111 westos ##因为上行代码建立了,所以此时才可调用
useradd -g 111 -u 111 westos ##建立自己设定的组id和uid用户;同时注意gid 也是之前建立过才可使用
useradd -G 111 westos ##附加组 ,附加组id必须存在
示例:
useradd -c “插入内容” | 给用户的说明中添加 |
---|---|
useradd -d 家目录 | 指定用户家目录 |
useradd -s shell | 指定用户的默认shell |
示例:
useradd -l 111 用户名称 ##更改用户的名称
usermod -g 111 用户名称 ##更改用户的初始组
usermod -G 111 用户名称 ##更改用户的附加组
usermod -aG 111 用户名称 ##添加用户的附加组
usermod -G “” 用户名称 ##删除用户的所有附加组的身份
usermod -c “111” 用户名称 ##更改用户的说明文字,也可以指定为空即删除说明
usermod -d /home/lee 用户名称 ##更改用户家目录的指向
usermod -md /home/lee 用户名称 ##更改用户家目录
usermod -s /bin/sh 用户名称 ##更改用户的shell
usermod -L 用户名称 ##冻结用户
usermod -U 用户名称 ##解锁用户
示例:
用户密码的管理
passwd westos | 更改westos密码 |
---|---|
passwd -l westos | 在用户密码前加入“!!” |
passwd -u westos | |
passwd -d westos | 清空westos密码 |
usermod -L | 在用户密码前加入“!” |
usermod -U | 在密码不为空时使用 |
注意:普通用户改密码
1、必须知道当前用户的原始密码
2、密码不能和账号名称相似
3、密码不能是有序的数字或有序纯字母
示例:
用户密码最后一次被更改的时间
passwd -e westos | 会改变用户最后一次更改时间为0,用户在登陆时会被强制更改密码 |
---|---|
chage -d 0 westos | 功能同上 |
用户密码最短有效期
passwd -n 1 westos | westos用户在一天之内不能修改密码 |
---|---|
chage -m 1westos | 功能同上 |
用户密码最长有效期
passwd -x 30 | 设定westos 用户在30天内必须修改密码 |
---|---|
chage -M 30 | 功能同上 |
密码警告期限
passwd -w 2 westos | 密码过期前两天有警告输出 |
---|---|
chage -W 2 westos | 功能同上 |
用户非活跃天数
passwd -i 1 westos | 密码过期后仍可登陆系统的天数 |
---|---|
chage -I 1 westos | 功能同上 |
用户到期日
chage -E 2022-11-11 westos ##wetos 用户在2022-11-11会被冻结
示例:
用户授权
权力下放文件为/etc/sudoers
此文件可以用vim直接编辑,但是不提供语法检测
也可以使用visudo编辑此文件,visudo命令是提供语法检测的。
示例:what now? e ##回到visudo进行编写
下放方式:visudo
hostname 查看主机名
用户 主机名称=(得到的用户身份)命令 | |
---|---|
westos localhost=(root) /usr/sbin/useradd | westos用户可以在localhost主机以root用户身份执行useradd命令 |
westos localhost=(root) NOPASSWD: /usr/sbin/useradd ##免密执行
示例:
示例:集合更改