usermod可用来修改用户帐号的各项设定
-d<登入目录>:修改用户登入时的目录。
-e<有效期限>:修改帐号的有效期限。
-f<缓冲天数>:修改在密码过期后多少天即关闭该帐号。
-g<群组>:修改用户所属的群组。
-G<群组>:修改用户所属的附加群组。
-l<帐号名称>:修改用户帐号名称。
-L:锁定用户密码,使密码无效。
-s 修改用户登录后的shell功能
-u 修改用户uid
-U:解除密码锁定
修改admin登陆的默认位置
[root@rhel8-server ~]# su - admin
[admin@rhel8-server ~]$ pwd
/home/admin
[admin@rhel8-server ~]$ usermod admin -d /sch
usermod: user admin is currently used by process 2978
[admin@rhel8-server ~]$ exit
logout
[root@rhel8-server ~]# usermod admin -d /sch/
[root@rhel8-server ~]# su - admin
[admin@rhel8-server ~]$ pwd
/sch/
groupadd 增加组 -g 组id
groupadd workgroup -g 1001
groupmod命令用于更改群组识别码或名称
groupmod [选项] 组
选项
-g:将组 ID 改为 GID
-n:改名为 NEW_GROUP
用户和
-f 删除用户家目录及邮箱 目录名还在
userdel
组的删除
groupdel
密码
passwd test 可以给test赋值密码
输入密码:
Redhat@123 passwd赋值密码会对密码有要求
通常来说 都会通过管道符来赋值
echo 输出
echo redhat | passwd --stdin test
把redhat这个密码 赋值给用户 test
/etc/shadow 这个文件存放了所有的用户密码信息
redhat:$6$HHmrlnNuP4wOvb5.$l.opck2FlwyQluRsSAS2VOGl1qY79x4UB2YKK2F7pIlx8GRn1VZV7LHiXKMvzKcQCtC/eklaIiz8TeEhsNPWQ/::0:99999:7:::
字段1:用户账户名称
字段2:加密秘钥字符串信息 一般都是sha或md5加密
字段3:最近一次修改密码的时间,表示从1970.1.1 到至今的天数
字段4:密码的最短使用天数
字段5:密码最长有效天数 默认99999
字段6:密码即将到期警告天数 默认7
字段7:在密码过期后账号保持活跃的天数,指天数之后账号被锁定,无效 表示从1970.1.1 到至今的天数
字段8:账号失效时间,默认也是为空
chage 配置密码相关
-m 最小期限
-M 最大期限
-W 警告周期
-I 失效周期
-d 强制要求用户在下一次登陆时更新密码
-l 显示秘密信息
-E 用户将于2020-12-30到期(XXXX-DD-YY)
chage -m 0 -M 30 -W 7 -I 14 test
chage -E 2022-12-30 test
chage -d test 下次登录必须要修改密码
chage -d 0 test
/etc/login.defs 这个文件是用来创建用户时进行一定的限制,但是优先级低于/etc/passwd
和/etc/shadow
[root@localhost ~]# vi /etc/login.defs
MAIL_DIR /var/spool/mail # 系统消息(邮件)文件夹
PASS_MAX_DAYS 99999 # 密码有效最大天数
PASS_MIN_DAYS 0 # 密码有效最小天数
PASS_MIN_LEN 5 # 密码长度
PASS_WARN_AGE 7 # 密码失效警告倒计时
UID_MIN 1000 # 用户UID最小1000
UID_MAX 60000 # 用户UID最大60000
SYS_UID_MIN 201 # 系统用户UID最小201
SYS_UID_MAX 999 # 系统用户UID最大999
GID_MIN 1000 # 用户组GID最小1000
GID_MAX 60000 # 用户组GID最大60000
SYS_GID_MIN 201
SYS_GID_MAX 999
CREATE_HOME yes # 创建家目录
UMASK 077 # 创建文件/目录的权限掩码
USERGROUPS_ENAB yes # 创建用户时同时生成组是 如果此处是no 创建的用户 会是gid=100(users)groups=100(users)
ENCRYPT_METHOD SHA512 # 加密 方法 sha 512 这个方法生成的密码在/etc/shadow里面的第二列会以$6$开头
sudo命令执行过程
1.当用户执行sudo,系统会主动寻找 /etc/sudoers文件,判断该用户是否有执行sudo权限
2.确认用户具有可执行sudo权限后,让用户输入自己的密码确认
3.若密码输入成功,才可以执行sudo后续命令
赋予用户sudo操作权限?
通过useradd添加的用户,并不具备sudo权限。在ubuntu/centos等系统下, 需要将用户加入admin组或者wheel组或者sudo组。以root用户身份执行如下命令, 将用户加入wheel/admin/sudo组。
usermod -a -G wheel 用户名
sudo yum repolist all 尝试执行一下只有root才能运行的命令
/etc/sudoers 是可以让整个组 完成sudo提权 且不许要密码
%wheel ALL=(ALL) ALL 例如wheel组
官方文档推荐的做法,不是直接修改/etc/sudoers文件,而是将修改写在/etc/sudoers.d/目录下的文件中。
[root@rhel8-server /]# cd /etc/sudoers.d
[root@rhel8-server sudoers.d]# touch admin
[root@rhel8-server sudoers.d]# vi admin
[root@rhel8-server sudoers.d]# ll
total 4
-rw-r--r--. 1 root root 31 Jan 23 05:37 admin
[root@rhel8-server sudoers.d]# pwd
/etc/sudoers.d
加密算法md5 sha
MD5加密算法 密码 + 随机数+ id 通过md5算法 最后变成128位字符
1.等长原则 不管加密内容有多少字符,最后加密输出都是等长的
2.雪崩效应 只要两个文件有一个字符不一样 那整个秘钥输出也是完全不同的
3 MD5不可逆 无法通过加密后字符 来得出之前原来的密码
[root@rhel8-server sch]# md5sum 123.txt
b2cfa4183267af678ea06c7407d4d6d8 123.txt
md5加密所谓破解完全不是靠逆推,靠撞库