1、为用户添加密码(root用户才能执行)
创建用户后,如果需要使用该用户登录系统则需要为用户设定密码。
建议密码设置复杂度高一些(可以使用数字、字母、特殊字符)
交互式密码(同时可以修改密码:为别人修改密码只有root用户可以执行)
passwd 给当前用户设置密码
passwd +用户名 设置密码
非交互式密码
echo "密码" | passwd --stdin 用户名
批量创建用户,并设定固定密码
编辑脚本
for i in {1..100} #1-100循环
do
useradd test$i #文件名,套用上方
echo "123456" | passwd --stdin test$i #密码为123456
done
为新用户添加密码 只有root权限才可以
普通用户只允许变更自己的密码,无法修改其他人的密码,并且密码大于七位
管理员可以修改任何人的密码,无论密码长度
复杂密码设定
1、 echo $RANDOM | md5sum | cut -c 1-6 #-c 指定长度
2、mkpasswd生成随机字符串,-l 设定密码长度,-d 数字,-c 小写字母,-C 大写字母,-s 特殊字符
3、lastpass 在线 支持 windows MacOS Iphone 浏览器插件Android
2、用户的创建流程
在用户创建的过程中需要参考/etc/login.defs 和 /etc/default/useradd 这两个文件(默认)
如果在创建用户时指定了参数则会覆盖
[root@oldboyedu ~]# grep "^[a-Z]" /etc/login.defs
MAIL_DIR /var/spool/mail #创建的邮箱所在的位置
PASS_MAX_DAYS 99999 #密码最长使用的天数
PASS_MIN_DAYS 0 #密码最短时间的天数
PASS_MIN_LEN 5 #密码的长度
PASS_WARN_AGE 7 #密码到期前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_MAX 60000
SYS_GID_MIN 201
SYS_GID_MAX 999
CREATE_HOME yes #给用户创建家目录,创建在/home
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512
[root@oldboyedu ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100 #当用户创建用户时不指定组,并且/etc/login.defs中
为no时, 用户默认创建给分配一个gid为100的组.
USERGROUPS_ENAB
HOME=/home #用户默认的家目录
INACTIVE=-1 #用户不失效
EXPIRE= #过期时间
SHELL=/bin/bash #默认登录shell
SKEL=/etc/skel #默认用户拷贝的环境变量
CREATE_MAIL_SPOOL=yes #创建邮箱
3、用户组的管理
1、什么是用户组?
其实就是一种逻辑层面的定义,逻辑上将多个用户归纳至一个组,当我们对组操作,其实 就相当于对组中的所有用户操作。
没有指定组:默认会创建一个与用户名同名的组,简称私有组
指定组:-g 指定一个基本组(基本组必须先存在)
附加组:-G指定 (基本组或私有组无法满足需求时,添加一个附加组,继承该组的权限)
2、/etc/group 配置文件解释
[root@oldboy ~]# head -1 /etc/group
root:x:0: #以:作为分隔符,总共4列
root # 组的名称
x # 组的密码
0 # 组的GID
显示附加组不显示基本成员
3、/etc/gshadow 配置文件解释
[root@oldboy ~]# head -1 /etc/gshadow
root::: #以:作为分隔符,分为4列
root #组的名称
x #组的密码
0 #组管理员
显示附加组成员不显示基本组成员
4、创建组
groupadd 组名
-g 指定GID
-r 创建系统组
5、修改组
groupmod
-g 修改GID
-n 修改组名称
6、删除组
如果要删除基本组,需要先删除基本组组中的用户才可以删除该组
[root@oldboyedu ~]# groupadd dawang #创建组dawang
[root@oldboyedu ~]# groupadd laowang #创建组laowang
[root@oldboyedu ~]# useradd xiaowang #创建用户xiaiwang
[root@oldboyedu ~]# useradd gb -g laowang #创建用户gb 基本组laowang
[root@oldboyedu ~]# usermod xiaowang -G laowang,dawang #创建用户xiaowang附加组 laowang,dawang
.
[root@oldboyedu ~]# id xiaowang #查看用户xiaowang
uid=6775(xiaowang) gid=7778(xiaowang)
groups=7778(xiaowang),7779(dawang),7780(laowang)
[root@oldboyedu ~]# userdel -r xiaowang #删除用户xiaowang一切相关信息
[root@oldboyedu ~]# groupdel dawang #删除组dawang
[root@oldboyedu ~]# groupdel laowang #删除组laowang
groupdel: cannot remove the primary group of user 'gb' #无法删除该用户组(因存 在关联组)
[root@oldboyedu ~]# userdel -r gb #删除用户gb一切相关信息
[root@oldboyedu ~]# groupdel laowang 删除组laowang
7、用户提权
1、 su 切换用户 如果切换用户,需要知道用户的密码,不是很安全
sudo 提权( root事先分配好权限 --> 关联用户 ) 安全 方便 但是复杂
2、 交互式 (需要不停的交互)
非交互式
登录式shell 需要用户名以及密码开启bash窗口
非登录式shell 不需要用户名和密码即可开启bash窗口
3、 su - username属于登陆式shell(加载全部的环境变量)
su username属于非登陆式shell(加载部分环境变量,可能出现错误清空)
区别在于加载的环境变量不一样
4、su 切换有缺点
需要知道用户对应的密码
说明不是很安全
普通用户使用su切换root
[lwj@node1 ~]$ su
密码: #输入root的密码
[root@node1 lwj]# pwd
/home/lwj #普通用户使用su -切换到root,会加载root的环境变量
[xuliangwei@node1 ~]$ su -
密码:
[root@node1 ~]# pwd
/root
以某个用户的身份执行某个服务,使用命令su -c username
[root@bgx ~]# su - lwj -c 'ifconfig'
[root@bgx ~]# su - lwj -c 'ls ~'
5、sudo提权
预先分配好权限
在关联对应的用户
第一种:
[root@bgx ~]# visudo
# 1.使用sudo定义分组,这个系统group没什么关系
User_Alias OPS = oldboy,oldgirl
User_Alias DEV = alex
# 2.定义可执行的命令组,便于后续调用
Cmnd_Alias NETWORKING = /sbin/ifconfig, /bin/ping
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/yum
Cmnd_Alias SERVICES = /sbin/service,/usr/bin/systemctl start
Cmnd_Alias STORAGE = /bin/mount, /bin/umount
Cmnd_Alias DELEGATING = /bin/chown, /bin/chmod,/bin/chgrp
Cmnd_Alias PROCESSES = /bin/nice, /bin/kill,/usr/bin/kill, /usr/bin/killall
# 3.使用sudo开始分配权限
OPS ALL=(ALL)
NETWORKING,SOFTWARE,SERVICES,STORAGE,DELEGATING,PROCESSES
DEV ALL=(ALL) SOFTWARE,PROCESSES
sudo -l 验证权限
第二种:
#1.添加两个真实的系统组, group_dev group_op
[root@www ~]# groupadd group_dev
[root@www ~]# groupadd group_op
#2.添加两个用户, group_dev(user_a user_b)
group_op(user_c user_d)
[root@www ~]# useradd user_a -G group_dev
[root@www ~]# useradd user_b -G group_dev
[root@www ~]# useradd user_c -G group_op
[root@www ~]# useradd user_d -G group_op
#3.记得添加密码
[root@www ~]# echo "1" | passwd --stdin user_a
[root@www ~]# echo "1" | passwd --stdin user_b
[root@www ~]# echo "1" | passwd --stdin user_c
[root@www ~]# echo "1" | passwd --stdin user_d
#4.在sudo中配置规则
[root@www ~]# visudo
Cmnd_Alias NETWORKING = /sbin/ifconfig, /bin/ping
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/yum
Cmnd_Alias SERVICES = /sbin/service,/usr/bin/systemctl start
Cmnd_Alias STORAGE = /bin/mount, /bin/umount
Cmnd_Alias DELEGATING = /bin/chown, /bin/chmod,/bin/chgrp
Cmnd_Alias PROCESSES = /bin/nice, /bin/kill,/usr/bin/kill, /usr/bin/killall