Linux安全优化之用户管理
Linux安全优化之用户管理
一、用户存在的意义及存在方式
用户时操作者在系统中的身份,是系统最底层的安全机制的一部分,用户在系统中以字符和文件的形式存在。
二、用户系统文件的说明
用户信息涉及到的系统配置文件有:
/etc/passwd 用户信息
用户:密码:uid:gid:说明:家目录:用户使用的shell
/etc/shadow 用户认证信息
用户:密码:最后一次密码修改该时间:最短有效期:最长有效期:警告期:非活跃期:帐号到期日
/etc/group 组信息
组名称:组密码:组id:附加组成员
/etc/gshadow 组认证信息
/home/username 用户家目录
/etc/skel/.* 用户骨架文件
#注意: /etc/skel/ 这个目录中的所有文件或目录在用户新建的过程中会被复制到用户的家目录里
#这个目录中默认存在的隐藏文件是用户的默认配置文件
三、用户信息查看
whoami 查看当前用户
系统中用户的查看
id 查看指定用户id信息
指令 | 功能 |
id -u | 查看用户的uid |
id -g | 查看用户的gid |
id -G | 查看用户所在的所有组的id |
id -G -n | 显示名字而不显示id数字 |
四、监控用户建立过程
watch -n -1 命令 ##时时更新,每个一秒更新一次
watch -n -1 date ##时时更新date命令
watch -n -1 "tail -n 3 /etc/passwd /etc/group;ls -l home" 结果如下:
五、建立用户时如何指定用户的id
指令z | 功能 |
useradd | 建立用户的,建立用户时,读取/erc/login.defs 文件内容确定规则. |
useradd -u 8888 westos | 指定用户的uid |
useradd -g 21 westos | 指定用户出使组id,“21用户组必须时存在的 |
useradd -G 21 westos |
指定用户的附加组is“21用户组必须时存在配置文件 |
root id为0,systemuser id为1-200,loginuser id为1000-2**32
userdel -r 用户名 用来删除一个用户,-r能够删除用户的在环境中的配置,不加r的话只能删除用户信息
useradd -u 888 westos 指定westos用户的uid为888
指定组id 的时候这个gid必须存在
useradd -u 888 -g 888 westos
useradd -G 21 westos
六、建立用户如何制定用户的常用信息
useradd -c "hello" westos 添加用户说明
useradd -d /home/westoshahahaha/ westos 指定用户的家目录
useradd -s /bin/tcsh westos 指定用户的shell
系统中shell均在/etc/shells下,其中nologin表示不能登陆只能被系统使用。
七、如何更改用户信息
usermod -l 修改用户名称
usermod -u 8888 westos 修改用户的uid为8888
usermod -g 888 westos 修改用户的初始组id(前提是gid指定的gid存在)
usermod -G admin westos 修改用户的附加组信息(会更改用户的附加组,将原来的抹掉)
usermod -aG 2004 westos保证原始组信息不变的情况下添加一组
usermod -G "" westos 将所有的附加组抹掉,利用一个“”空的操作
usermod -c "hahahah" westos 指定用户说明文字
usermod -d /home/lee westos 更改用户家目录指向
usermod -md /home/lee westos 更改用户家目录将westos也改为lee
usermod -s /bin/sh westos 更改用户的shell
usermod -L westos 冻结用户
usermod -U westos 解锁用户
更改用户的名称:
更改用户的uid
更改用户的gid
更改用户的附加组用户说明
usermod -L westos锁定账户,用户前多一个!
usermod -U westos解锁界所用户,!消失
八、linux中用户的切换操作
gnome-session-quit --force 注销当前用户在用其他用户登陆
su - 用户名称
su - 中“-”表示在用户身份切换同时也切换当前用户的环境,执行时高级用户切换到低级用户不需要密码,低级用户切换到高级需要,平级切换也需要。
注意:每次su切换到其他用户操作之后必须退出,然后在次切换到其他用户。如果不退出会使系统打开较多的bash,浪费系统资源占用率。
九、su和su-的区别
su -表示登陆过系统的shell,加载了用户环境(既切换了用户的shell打开了bashrc也打开了profile)
su表示没有登陆过的shell,没有加载用户环境(只加载bashrc)
十、linux系统中如何修改密码
超级用户直接passwd 修改自己的密码
passwd westos 加上普通用户的名字也可直接修改普通用户的密码
普通用户只能修改自己密码,并且还必须知道当前密码,还有密码条件的限制不能是有序纯数字或纯字母,如果是要>8,不能和之前密码相似不能和用户名相似,必须是数字和字母的组合。
十一、用户认证信息详解
/etc/shadows ##记录用户认证信息
westos:!!:17895:0:99999:7: : :
[1] [2] [3] [4] [5] [6] [7] [8] [9]
此文件一共有九列:
【1】
westos
用户名称:
【2】
!!
用户密码:
用户的加密字符串,默认的加密方式位sha512对称加密,
如果加密字符串前出现“!”那么用户被冻结
【3】
17895
用户密码最后一次被更改的时间
此时间计算是哦从嗯1970-1-1天开始计算的累计天数
【4】
0
用户密码最短有效期
如果此位设定数字,那么在此数字范围内的天数内时不能修改用户密码的
【5】
99999
用户密码最长有效期
用户必须在此有效期内更新密码,如果超时会被冻结
【6】
7
密码警告期限;
子阿过期前制定天数内会发出警告信息给用户
【7】
用户非活跃天数
此位默认位空,如果设定数值,那么在密码最长有效期过后仍然可以使用的天数
【8】
用户到期日:
默认为空,表示帐号会被冻结的时间点
【9】
用户自定义列,目前没有启用。
十二、用户认证信息管理
passwd -S westos 查看westos用户密码信息
passwd -l westos 在用户密码前加入“!!”
passwd -u westos 去掉!!
usermod -L westos 在用户米密码前加入!
usermod -U westos 在密码不为空时使用
用户最后一次被修改的时间
passwd -e westos 会改变用户最后一次更改密码的时间,用户登陆时会被强制改密码
chage -d 0 westos 两个命令功能类似
用户密码最短有效期
passwd -n 1 westos westos 用户在1天之内不能修改密码
chage -m 1 westos
用户密码最长有效期
passwd -x 30 westos 设定westos 在30天内必须该密码
chage -M 40 westos
密码警告期限
passwd -w 2 westos 密码过期前两天有警告输出
chage -W 2 westos
用户非活跃天数
passwd -i 1 westos 密码过期后仍可登陆系统的天数
chage -I 1 westos
用户到期日
chage -E 2018-11-11 wesots westos用户在2018-11-11日会被冻结
非i交互式改密码echo westos | passwd --stdin westos
最后一次被修改时间passwd -e westos
十三、sudo权力下放的基本用法
1.权力下放文件为/etc/sudoers
此文件可以用vim直接编辑,但是不是提供语法检测
也可使用visudo编辑此文件,visude命令提供语法检测
2.下放方式
* visudo
100行左右
westos
1.权力下放文件为/etc/sudoers
此文件可以用vim直接编辑,但是不是提供语法检测
也可使用visudo编辑此文件,visude命令提供语法检测
2.下放方式
* visudo
100行左右
用户 主机名称=(得到的用户身份) 命令
tom localhost=(root) /usr/sbin/useradd ##tom用户可以在localhost主机以root身份执行useradd
tom localhost=(root) NOPASSWD: /usr/sbin/useradd ##tom用户可以在localhost主机以root身份免密码执行useradd
3.测试
su - tom
sudo useradd hello
十四、sudo文件中别名设定方式
visudo中第100行左右建立集合,
Cnmd_Alias CTRLUSER = /usr/sbin/useradd, /usr/sbin/userdel, /usr/sbin/usermod
User_Alias ADMIN = westos,test
ADMIN localhost =(root) NOPASSWD: /usr/sbin/