赞
踩
目录
越是对服务器安全性要求高的服务器,越需要建立合理的用户权限等级制度和服务器操作规范。
在Linux中主要是通过用户配置文件来查看和修改用户信息
查看用户信息文件:vim /etc/passwd
看不懂没关系,可以通过帮助命令进行解读:man 5 passwd,切记不能写成 man 5 /etc/passwd
passwd配置文件分为七个字段
第1字段:用户名称
第2字段:密码标志
第3字段:UID(用户ID)
0: 超级用户
1-499: 系统用户(伪用户)
500-65535: 普通用户(centos7 从1000开始计算)
第4字段:GID(用户初始组ID)[不推荐修改初始组]
第5字段:用户说明
第6字段:家目录
普通用户:/home/用户名/
超级用户:/root/
第7字段:登录之后的Shell
初始组:就是指用户一登录就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是和这个用户的用户名相同的组名作为这个用户的初始组。
附加组:指用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个。
Shell就是Linux的命令解释器。
在/etc/passwd当中,除了标准Shell是/bin/bash之外,还可以写,如:/sbin/nologin,/usr/bin/passwd等。
小贴士:暂时禁用用户,可以把/bin/bash -> /bin/nologin
查看影子文件:vim /etc/shadow
shadow配置文件分为九个字段
第1字段:用户名
第2字段:加密密码
加密算法升级为SHA512散列加密算法
如果密码位是“!!”或“*”代表没有密码,不能登录
第3字段:密码最后一次修改日期
使用1970年1月1日作为标准时间,每过一天时间戳加1
第4字段:两次密码的修改间隔时间(和第3字段相比)
第5字段:密码有效期(和第3字段相比)
第6字段:密码修改到期前的警告天数(和第5字段相比)
第7字段:密码过期后的宽限天数(和第5 字段相比)
0:代表密码过期后立即失效
-1:则代表密码永远不会失效。
第8字段:账号失效时间
要用时间戳表示
第9字段:保留
把时间戳换算为日期
date -d "1970-01-01 20000 days"
把日期换算为时间戳
echo $(($(date --date="2022/05/30" +%s)/86400+1))
查看组信息文件:vim /etc/group
group配置文件分为四个字段
第一字段:组名
第二字段:组密码标志
第三字段:GID
第四字段:组中附加用户
查看组密码文件:vim /etc/gshadow
gshadow配置文件分为四个字段
第一字段:组名
第二字段:组密码 (不推荐使用,可以理解为给组设置个小组长)
第三字段:组管理员用户名
第四字段:组中附加用户
普通用户:/home/用户名/,所有者和所属组都是此用户,权限是700
超级用户:/root/,所有者和所属组都是root用户,权限是550
/var/spool/mail/用户名/
/etc/skel/
查看用户模板目录:ls -a /etc/skel/
查看新建apollo用户家目录:ls -a /home/apollo
在用户模板目录下创建README.txt文件:touch /etc/skel/README.txt
新建一个测试用户test,并查看其家目录
useradd [选项] 用户名
选项:
- -u UID: 手工指定用户的UID号
- -d 家目录: 手工指定用户的家目录
- -c 用户说明: 手工指定用户的说明
- -g 组名: 手工指定用户的初始组
- -G 组名: 指定用户的附加组
- -s shell: 手工指定用户的登录shell。默认是/bin/bash
useradd user1
- groupadd user2
- useradd -u 666 -g user2 -G root -d /home/user2 -c "test user2" -s /bin/bash user2
vim /etc/default/useradd
小贴士:
- GROUP=100 #用户默认组
HOME=/home #用户家目录
INACTIVE=-1 #密码过期宽限天数(7)
EXPIRE= #密码失效时间(8)
SHELL=/bin/bash #默认shell
SKEL=/etc/skel #模板目录
CREATE_MAIL_SPOOL=yes #是否建立邮箱
vim /etc/login.defs
小贴士:
- PASS_MAX_DAYS 99999 #密码有效期(5)
- PASS_MIN_DAYS 0 #密码修改间隔(4)
- PASS_MIN_LEN 5 #密码最小5位(PAM)
- PASS_WARN_AGE 7 #密码到期警告(6)
- UID_MIN 500 #最小和最大UID范围
- GID_MAX 60000
- ENCRYPT_METHOD SHA512 #加密模式
命令格式:passwd [选项] 用户名
选项:
- -S 查询用户密码的密码状态。仅root用户可用。
- -l 暂时锁定用户。仅root用户可用
- -u 解锁用户。仅root用户可用
- --stdin 可以通过管道符输出的数据作为用户的密码。
命令格式:passwd -S 用户名
passwd -S user2
字段说明:
user2 PS 2022-05-30 0 99999 7 -1
#用户名 密码设定时间(2022-05-30) 密码修改间隔时间(0) #密码有效期(99999 ) 警告时间(7) 密码不失效(-1)
命令格式:passwd -l 用户名
passwd -l user2
命令格式:passwd -u 用户名
passwd -u user2
命令格式:echo "密码" | passwd --stdin 用户名
echo "123" | passwd --stdin user2
小贴士:
这种方式虽然简单,但是通过history命令可以查到用户的密码,所以不安全。
主要用在shell脚本批量为用户添加初始密码
命令格式:usermod [选项] 用户名
选项:
- -u UID: 修改用户的UID号
- -c 用户说明: 修改用户的说明信息
- -G 组名: 修改用户的附加组
- -L: 临时锁定用户(Lock)
- -U: 解锁用户锁定(Unlock)
常用命令
usermod -c "test user2" user2 # 修改用户的说明
usermod -G root user2 # 把user2用户加入root组
usermod -L user2 # 锁定用户
usermod -U user2 # 解锁用户
命令格式:chage [选项] 用户名
选项:
- -l: 列出用户的详细密码状态
- -d 日期: 修改密码最后一次更改日期(shadow3字段)
- -m 天数: 两次密码修改间隔(4字段)
- -M 天数: 密码有效期(5字段)
- -W 天数: 密码过期前警告天数(6字段)
- -I 天数: 密码过后宽限天数(7字段)
- -E 日期: 账号失效时间(8字段)
常用命令
chage -d 0 user2 # 这个命令其实是把密码修改日期归0了(shadow第3字段),这样用户一登陆就要修改密码
命令格式:userdel [-r] 用户名
选项:
- -r 删除用户的同时删除用户家目录和邮箱目录
查看用户ID:id 用户名
切换用户身份:su [选项] 用户名
选项:
- - : 选项只使用“-”代表连带用户的环境变量一起切换 (env命令查看当前环境变量)
- -c 命令: 仅执行一次命令,而不切换用户身份
常用命令
su user2 # 切换到user2用户
su - user2 # 切换到user2用户,且连带用户的环境变量
su - root -c "useradd user3" # 不切换成root,但是执行useradd命令添加user3用户
命令格式:groupadd [选项] 组名
选项:
- -g GID 指定组ID
常用命令
groupadd -g 666 user666 # 添加组名为user666的用户组
命令格式:groupmod [选项] 组名
选项:
-g GID 修改组ID
-n 新组名 修改组名
常用命令
groupmod -g 6666 user666 # 修改组名为user666的用户组ID为6666
groupmod -n group6666 user666 # 把组名user666修改为group6666
命令格式:groupdel [选项] 组名
tips:删除组的时候,组内不允许有初始用户存在。
常用命令
groupdel user6 # 删除组名为user6的用户组
命令格式:gpasswd [选项] 组名
选项:
-a 用户名: 把用户加入组
-d 用户名: 把用户从组中删除
常用命令
gpasswd -a user2 group6666 # 将用户user2添加到组名为group6666的用户组中
gpasswd -d user2 group6666 # 将用户user2从组名为group6666的用户组中删除
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。