一、为用户添加密码(root才能执行)
1、为新用户添加密码
{只能是root} {密码尽可能的复杂} [0-9][a-Z][aZ] [!@#$%^&]
2、非交互式设定密码 passwd --stdin
3、批量创建用户,并设定固定密码
[root@oldboyedu ~]# cat user.sh
for i in {1..100}
do
useradd test$i
echo "123456" | passwd --stdin test$i
done
二、用户修改密码
1、.为用户变更密码
1.为自己修改密码 (ok) 直接使用passwd 注意密码需要复杂一
点,并达到8位
2.为别人修改密码 (root) passwd username
2、密码怎么才算复杂
.mkpasswd生成随机字符串, -l设定密码长度,-d数子,-c小写字母,-C大写字母,-s特殊字符
[root@oldboyedu ~]# mkpasswd -l 10 -d 2 -c 3 -C 3 -s 2
mQR1u^=q5Y
长度要够,大小字母又要有,特殊符号也要有
三、用户的创建流程
在用户创建的过程需要参考 /etc/login.defs 和/etc/default/useradd 这两
个文件,默认参考.
如果在创建用户时指定了参数,则会覆盖 (默认 /etc/login.defs
和/etc/default/useradd)
四、用户组的管理
A、创建组 groupadd [-g GID] groupname
B、修改组 groupmod
-g 修改组gid
-n 修改组名称
C、删除组 如果要删除基本组,需要先删除基本组中的用户才可以删除
该组。
五、用户提权
su 切换用户 如果切换用户,需要知道用户的密码,不是很安全
sudo 提权( root事先分配好权限 --> 关联用户 ) 安全 方便 但是复杂
基本概念:
1.交互式 需要不停的交互
2.非交互式
3.登录式shell 需要用户名以及密码开启bash窗口
4.非登录式shell 不需要用户名和密码即可开启bash窗口
su - username属于登陆式shell,su username属于非登陆式shell,区别
在于加载的环境变量不一样。
su - username 属于登录式shell 会加载全部的环境变量
su username 属于非登录式shell 会加载部分环境变量(很有
可能就会出现错误清空)
su 切换有缺点
需要知道用户对应的密码
说明不是很安全
sudo提权
1.预先分配好权限
2.在关联对应的用户
3.提升的权限太大,能否有办法限制仅开启某个命令的使用权限?其
他命令不允许?
总结
1:passwd 是用来设定密码的,普通用用户只能自己给自己设定,root可以给所有用户设定
2:了解一下用户的创建流程以及创建用户系统调动的文件/etc/login.defs 和/etc/default/useradd
3:组的创建,删除,修改 groupadd groupdel groupmod 的使用。
4:su 主要是用来切换用户的。sudo 才是用来提权的,su 和su - 所有调用环境变量是不一样的。
a.有管理人员来分配权限 visudo | visduo -c 检查语法
b.普通用户仅需要检查自身的sudo权限即可 sudo -l