目录
一、系统账号清理
(
1
)将非登录用户的
Shell
设为
/sbin/nologin
(
2)
锁定长期不使用的账号
(
3
)删除无用的账号
(
4
)锁定账号文件
passwd
、
shadow
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow (
锁定文件并查看状态,解锁是
-i)
[root@localhost ~]# Isattr /etc/passwd /etc/shadow
----i----------- letc/passwd
-----i----- /etc/shadow
锁定
/etc/passwd
后无法创建用户
解锁
锁定/etc/shadow后则无法修改用户账户密码
二、密码安全控制
设置密码有效期
要求用户下次登录时修改密码
适用于新建用户
[root@localhost ~]# vim /etc/login.defs
(只能限制新用户)
PASS MAXDAYS 30
适用于已有用户
[root@localhost ~]# chage -M 30 lisi
强制在下次登录时更改密码
[root@localhost ~]# chage -d 0 zhangsan
history
命令可以查之前所输入的命令
三、命令历史限制
减少记录的命令条数
注销时自动清空命令历史
终端自动注销
闲置
600
秒后自动注销
[root@localhost ~]# vim ~/.bash_profifile
export TMOUT=600(
这个是命令切换时开始算
)
[root@localhost ~]# vim /etc/profifile
(存在设置
history
的命令条数)
HISTSIZE=200
(设置存
200
条
,
永久性的)
[root@Yocalhost ~]# vim ~/.bash_logout(
一登出就自动清空
)
history -c
(清空所有历史记录)
clear
都是刷新命令
清空记录(临时)
这是永久性的清空(包括清除其.bash_history中的缓存记录,退出重登后则无历史记录了)
退出后会清除历史记录,但无法清除
.bash_history
中的缓存记录,所以在输
history
时还是会有记
录
60
秒无操作则自动关机
四、使用su命令切换用户
用途及用法
用途
:Substitute User
,切换用户
格式:
su-
目标用户
密码验证
root
→
任意用户,不验证密码
普通用户
→
其他用户,验证目标用户的密码
[jerry@localhost ~]$ su - root
(带
-
选项表示将使用目标用户的登录
Shell
环境)
口令
:
[root@localhost ~]# whoami
root
su -
用户:进入到宿主目录,拥有读写运行的权利
su
用户:当前目录,很多权限是没有的
五、限制使用su命令的用户
将允许使用
su
命令的用户加入
wheel
组
启用
pam_wheel
认证模块
[root@localhost ~]# gpasswd -a tsengyia wheel
tsengyia
正在将用户
“tsengyia"
加入到
"wheel"
组中
默认情况下,任何用户都允许使用
su
命令,从而有机会反复尝试其他用户
(
如
root)
的登录密码,这
样带来了安全风险。为了加强
su
命令的使用控制,可以借助于
pam_wheel
认证模块,只允许极个
别用
户使用
su
命令进行切换。实现过程如下
:
将授权使用
su
命令的用户添加到
wheel
组,修改
/etc/pam.d/su
认证配置以启用
pam_wheel
认证。
在
/etc/pam.d/su
文件里设置禁止用户使用
su
命令
vim /etc/pam.d/su
2 # auth suffiffifficient pam_rootok.so
6 #auth required pam_ wheel.so use_ _ uid
a)
以上两行是默认状态
(
即开启第一行,注释第二行
)
,这种状态下是允许所有用户间使用
su
命进行切换
的。
b)
两行都注释也是运行所有用户都能使用
su
命令,但
root'
下使用
su
切换到其他普通用户需要输入密码
;
如果第一行不注释,则
root
使用
su
切换普通用户就不需要输入密码
(pam rootok.so
模块的主要作用
是使
uid
为
0
的用户,即
root
用户能够直接通过认证而不用输入密码。
)
c)
如果开启第二行,表示只有
root
用户和
wheel
组内的用户才可以使用
su
命令
(
组内人才可用
)
。
因为zhangliu用户在wheel组中所以可以切换root用户
lisi
不在
wheel
组中所以不能切换
d)
如果注释第一行,开启第二行,表示只有
whee1
组内的用户才能使用
su
命令,
root
用户也被禁用
su
命令
[root@localhost ~]# gpasswd -a zhangsan wheel #
添加授权用户
zhangsan
正在将用广
"zhangsan"
加入到
"wheel"
组中
[ root@localhost ~] # grep wheel /etc/group #
确认
wheel
组成员
wheel:x :10 : zhangsan
[ root@localhost ~]# vim /etc/pam.d/su
#%PAM-1.0
auth suffiffifficient pam_ rootok.so
auth required pam_wheel.so use_uid
#
去掉此行开头的
#
号
启用
pam wheel
认证以后,未加入到
wheel
组内的其他用户将无法使用
su
命令
,
尝试进行切换时将
提示
"
拒绝权限
”
,从而将切换用户的权限控制在最小范围内。
普通用户切换登录测试验证
使用
su
命令切换用户的操作将会记录到安全日志
/var/log/secure
(只有
root
才能看)文件中
,可以根
据需要进行查看。
六、使用sudo机制提升权限3-1
重点:
su
命令的缺点
sudo
命令的用途及用法
用途
:
以其他用户身份
(
如
root)
执行授权的命令
用法:
sudo
授权命令
配置
sudo
授权
visudo
或者
vim /etc/sudoers
记录格式
:
用户
主机名列表
=
命令程序列表
[root@localhost ~]# visudo
...................................................(
可以使用通配符
*
、取反符号
!)
%wheel ALL=NOPASSWD:ALL
jerry localhost=/sbin/ifconfifig
syrianer localhost=/sbin/* ,!/sbin/ifconfifig,!/sbin/route
Cmnd_Alias PKGTOOLS=/bin/rpm,/usr/bin/yum(
类似别名还包括
:User_Alias(
用户
)
、
Host_Aififia
(主机)
)
mike localhost=PKGTOOLs
查看
sudo
操作记录
需启用
Defaults logfifile
配置
默认日志文件
: /var/log/sudo
[root@localhost ~]# visudo
Defaults logfifile = "/var/log/sudo"
补充:
sudo
机制提升权限
使用
sudo
机制提升
visudo
或
vi /etc/sudoers (
此文件的默认权限为
440
,保存退出时必须执行
":wq !"
命令来强制操作
语法格式
:
用户
主机名
=
命令程序列表
用户
主机名
=(
用户
)
命令程序列表
用户
:
直接授权指定的用户名,或采用
"%
组名
"
的形式
(
授权一个组的所有用户
)
。
主机名
:
使用此规则的主机名。没配置过主机名时可用
localhost
,有配过主机名则用实际的主机
名,
ALL
则代表所有主机。
(
用户
):
用户能够以何种身份来执行命令。此项可省略,缺省时以
root
用户的身份来运行命令。
命令程序列表
:
允许授权的用户通过
sudo
方式执行的特权命令,需填写命令程序的完整路径,多个命令
之间以逗号
"
,
"
进行分隔。
ALL
则代表系统中的所有命令。
示例:
Tom ALL=/sbin/ifconfifig
(
Tom
可用
ifconfifig
)
Jerry localhost=/sbin/*
,
! /sbin/reboot, ! /sbin/poweroffff
(
Jerry
可用
/sbin/ *
所有,除了
reboot
,
poweroffff
不能用)
#
通配符
"*"
表示所有、取反符号
"!"
表示排除
%wheel ALL=NOPASSWD: ALL #
表示
wheel
组成员
无需验证密码
即可使用
sudo
执行任何
命令
Mike ALL= (root) NOPASSWD: /bin/kill
,
/usr/bin/killall
gpasswd -M lisi wheel #
李四加入
wheel
组
sudo [
参数选项
]
命令
-l
:列出用户在主机上可用的和被禁止的命令
:
一般配置好
/etc/sudoers
后,要用这个命令来查看和测试
是不是配置正确的
;
-v
:验证用户的时间戳
:
如果用户运行
sudo
后,输入用户的密码后,在短时间内可以不用输入口令来直
接进行
sudo
操作
:
用
-v
可以跟踪最新的时间戳;
-u
:指定以以某个用户执行特定操作
;
-k
:删除时间戳,下一个
sudo
命令要求用求提供密码
;
案列一
wangliu
用户可以使用
useradd usermod
需求
: wangliu root
用户下的权限
useradd usermod
配置
visudo
wangliu ALL=(root) /usr/sbin/useradd,/usr/sbin/usermod
未给wangliu root权限时是无法创建账号的