1.用户密码的设置
passwd 后面加用户名可以创建或修改其他用户的密码(只有root用户能操作)
passwd 后面不加用户名,默认修改当前用户密码
2.组的创建,修改,及删除
1)组的创建
groupadd
选项 -g 指定创建组的gid
ps:如果创建用户没有指定基本组,系统会创建一个和用户名一样的基本组,放在/home下,叫做私有组
2)组的修改
groupmod
选项 -g 修改组的gid -n 修改组名
3)组的删除
groupdel
后面加组名,删除指定组
基本组中如果有成员,那么不能直接删除该组,需要先删除基本组中的用户
如果附加组中没有基本组成员,可直接删除,同样,如果有基本组成员,需要先删除用户,再删除组
4)组的信息存放位置
组的信息存放在/etc/group目录下
root:x:0:
第一列是组名,第二列是组的密码,第三列是gid,第四列是附加组成员
组的密码信息存放在/etc/gshadow
root:::
第一列是组名,第二列是组的密码,第三列是组的管理员,第四列是附加组成员
5)系统默认设置的依据
系统有许多创建用户和组的默认设置是依据/etc/login.defs和/etc/default/useradd这两个文件
/etc/login.defs
MAIL_DIR /var/spool/mail
用户邮箱默认保存在/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
系统组gid 最小为201
SYS_GID_MAX 999
系统组gid 最大为999
CREATE_HOME yes
默认创建家目录
UMASK 077
USERGROUPS_ENAB yes
创建用户时如果不指定基本组,会默认创建一个和用户名相同的组,默认
是开启的,
ENCRYPT_METHOD SHA512
/etc/default/useradd
GROUP=100
如果把/etc/default/useradd USERGROUPS_ENAB yes关闭,且不给用户指定
基本组,那么,系统会将gid为100的这个组指定为这个用户的基本组
HOME=/home
系统默认用户家目录在/home下
INACTIVE=-1
密码过期后失效,-1为不开启
EXPIRE=
密码失效时间 不写为不限时间
SHELL=/bin/bash
默认shell 是/bin/bash
SKEL=/etc/skel
默认环境变量文件在/etc/skel下拷贝
CREATE_MAIL_SPOOL=yes
默认创建用户时,创建邮箱
3.sudo提权
1)shell的分类
shell分为交互式shell,非交互式shell,登陆式shell,非登陆式shell
交互式shell是输一句命令,回一句答复,类似于passwd修改用户密码
非交互式shell是一次性输入全部代码,可以一次性执行出所有的任务类似于shell脚本
登陆式shell是登陆时需要输入用户名和密码 例如su -命令
非登陆式shell是不需要输入用户名和密码就可以登陆 例如 su
2)su和 su -
但是su 登陆用户和 su -登陆用户加载的变量是不相同的
su 登陆的用户只会加载出一部分的变量
~/.bashrc->/etc/bashrc->/etc/profile.d/*.sh
而su - 将会加载出全部的变量
/etc/profile->/etc/profile.d/*.sh->~/.bash_profile->~/.bashrc->/etc/bashrc
ps:环境变量分为个人环境变量和全局环境变量
个人环境变量存放位置~/.bash_profile ~/.bashrc
全局环境变量存放位置/etc/profile /etc/profile.d/*.sh /etc/bashrc
3)sudo提权的两种方式
首先是创建虚拟组提权
visudo 或者vim /etc/sudoers 一般都会用前者
#首先,创建一个syy用户,sg用户,YY用户,GG用户
visudo
User_Alias ABC=sg,syy
User_Alias DEF=GG,YY
#创建一个虚拟组ABC,将sg和syy用户加入,创建一个虚拟组DEF,将GG和YY用户加入,这两个组是虚拟的,不是系统组
#将两个用户加入之后,修改组,就相当于对用户做修改
Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig, /usr/bin/systemctl start, /usr/bin/systemctl stop, /usr/bin/systemctl reload, /usr/bin/systemctl restart, /usr/bin/systemctl status, /usr/bin/systemctl enable, /usr/bin/systemctl disable
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum
Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/umount
Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool
#然后给命令做一个分组,可以批量给用户授予命令
ABC ALL=(ALL) SERVICES,SOFTWARE
DEF ALL=(ALL) STORAGE,NETWORKING
#就是给ABC组的两个用户syy和sg授予哪些分组的命令,这样就修改完毕,保存退出!
visudo -c #可以检查自己是否有语法错误
#然后su - syy进入syy用户
sudo -l #可以查看授予了自己什么权限
sudo 后面加命令可以使用提权之后的命令
第二种方法是创建真实的组提升权限
groupadd 11
groupadd 22
#先创建两个组 11和22
usermod sg -G 11
usermod syy -G 11
usermod GG -G 22
usermod YY -G 22
#首先将两个用户分别加入创建的组11和22
visudo 打开
%11 ALL=(ALL) SERVICES,NETWORKING
%22 ALL=(ALL) SOFTWARE,STORAGE
#%号后后面加组名,给组中成员添加分组中的命令保存退出之后
#然后visudo -c可以检查是否有语法错误
#同上 su - 切换用户之后,sudo -l 查看自己分配的权限
#sudo 后面加命令即可执行
sudo的命令执行流程
* 用户输入sudo命令之后,系统会检查/etc/db/sudo 中时间戳有没有过期,如果过期,需要输入自己的密码验证
* 如果没过期,则会检查/etc/sudoers是否有权限,有权限则执行,没权限则退出sudo
网友评论