系统安全与应用【上】

文章目录

  • 1.账号安全控制
    • 1.1 系统账号清理
    • 1.2 密码安全控制
    • 1.3 命令历史限制
    • 1.4 终端自动注销
  • 2.系统引导和登录控制
    • 2.1 使用su命令切换用户
    • 2.2 限制使用su命令的用户
  • 3.可插拔式认证模块PAM
    • 3.1 linux中的PAM安全认证
    • 3.2 PAM认证原理
    • 3.3 PAM认证的构成
    • 3.4 PAM安全认证流程
    • 3.5 使用sudo机制提升权限
    • 3.6 查看sudo操作记录

1.账号安全控制

1.1 系统账号清理

系统账号清理

系统安全与应用【上】_第1张图片

chattr + i [文件名]:锁定指定文件;

[root@clr ~]# chattr +i /etc/passwd /etc/shadow  #锁定这两个文件/etc/passwd /etc/shadow
[root@clr ~]# lsattr /etc/passwd #查看指定文件/etc/passwd的状态,是否被锁定
----i----------- /etc/passwd #----i-----------表示该文件被锁定
[root@clr ~]# ll /etc/passwd 
-rw-r--r--. 1 root root 2298 412 14:38 /etc/passwd  #查看可得所属主用户root具有编辑权限
[root@clr ~]# echo 1111 >> /etc/passwd  #尝试编辑/etc/passwd文件
-bash: /etc/passwd: 权限不够  #/etc/passwd /etc/shadow 这两个文件被锁定,将无法再修改编辑,例如修改用户密码、删除和添加用户都不允许,包括超级用户root

[root@clr ~]# useradd lisi  #/etc/passwd /etc/shadow 这两个文件被锁定,无法增加新用户
useradd:无法打开 /etc/passwd
[root@clr ~]# echo 123123 | passwd --stdin clr  #/etc/passwd /etc/shadow 这两个文件被锁定,无法修改用户密码
更改用户 clr 的密码 。
passwd: 鉴定令牌操作错误
[root@clr ~]# userdel clr  #/etc/passwd /etc/shadow 这两个文件被锁定,无法删除已有用户
userdel:无法打开 /etc/passwd

chattr - i [文件名]:解锁指定文件;

[root@clr ~]# chattr -i /etc/passwd /etc/shadow  #解锁指定文件
[root@clr ~]# lsattr /etc/passwd  #查看指定文件/etc/passwd的状态,是否被锁定
---------------- /etc/passwd  #----------------表示该文件未被锁定
[root@clr ~]# useradd lisi #添加用户
[root@clr ~]# userdel lisi #删除用户
[root@clr ~]# echo 123123 | passwd --stdin clr  #修改用户密码
更改用户 clr 的密码 。
passwd:所有的身份验证令牌已经成功更新。  #解锁这两个文件/etc/passwd /etc/shadow之后,可以删除、添加和修改用户密码

[root@clr ~]# which chattr  #查看命令chattr在系统中的位置
/usr/bin/chattr   

md5sum [文件名]:查看指定用户的校验和(作用:判断一个文件的数据是否被修改);

[root@clr ~]# cat /etc/passwd | wc -l  #统计系统中用户数量
44
[root@clr ~]# md5sum /etc/passwd
af6103b25d3d02c19014b675b93e1fb6  /etc/passwd #/etc/passwd文件的af6103b25d3d02c19014b675b93e1fb6校验和

[root@clr ~]# useradd zhangsan  #添加用户,会导致/etc/passwd文件被修改
[root@clr ~]# md5sum /etc/passwd
ea46a9545295017f2676c1489bbf1013  /etc/passwd  #/etc/passwd文件此时的ea46a9545295017f2676c1489bbf1013校验和,与之前不同,说明该文件已经被修改过
[root@clr ~]# md5sum /etc/shadow
09147db1291f537b3963350393f02345  /etc/shadow
[root@clr ~]# echo 123123 | passwd --stdin zhangsan  #修改用户密码会更改/etc/shadow这个文件
更改用户 zhangsan 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@clr ~]# md5sum /etc/shadow  #查看此时/etc/shadow文件的校验码已经发生改变
d1e9f8e24fb741fee5f6bfa9d6e11c3c  /etc/shadow

[root@clr ~]# md5sum /etc/shadow >> ./data.txt  #将指定文件的md5sum校验和重定向写入到当前目录下的data.txt文件中
[root@clr ~]# ls  
anaconda-ks.cfg  initial-setup-ks.cfg  公共  视频  文档  音乐
data.txt         nohup.out             模板  图片  下载  桌面

[root@clr ~]# cat data.txt   #查看data.txt目录中是否有新增加/etc/shadow的校验和文件
d1e9f8e24fb741fee5f6bfa9d6e11c3c  /etc/shadow

注意:一个文件无法被写入或修改的可能原因:用户权限不够,不具有对该文件的修改权限;该文件被锁定,无法修改编辑lsattr [文件名]:查看该文件是否被锁定

1.2 密码安全控制

系统安全与应用【上】_第2张图片

/etc/login.defs文件:查看用户账号的基本属性;

[root@clr ~]# vim /etc/login.defs
#
#PASS_MAX_DAYS   99999    #密码的最长有效天数,99999代表无限期,只针对新建用户有效,对于系统中已经存在的用户是无效的
PASS_MAX_DAYS   30       #修改密码有效期为30天
PASS_MIN_DAYS   0        #密码的最短有效天数
PASS_MIN_LEN    5        #密码的最短长度
PASS_WARN_AGE   7        #报警日期

# Min/max values for automatic uid selection in useradd
#
UID_MIN                  1000    #普通用户的UID号
UID_MAX                 60000

[root@clr ~]# useradd xiaogao  #修改/etc/login.defs文件,将密码有效期更改
为30天,添加新用户 
[root@clr ~]# vim /etc/shadow   #查看新用户的密码有效期

ftp:*:18353:0:99999:7:::
zhangsan:$6$.9TkGSqf$hw4Un3tB6VU.tl4QT1Uoau5p.ZYPq9VXCX5D5gsaTZgHfbsyN6JInrE8ZX4U38yccuGY2kF2n1P2yJBMimdar.:19459:0:99999:7:::
xiaogao:!!:19459:0:30:7:::   #可以看到新创建的用户xiaogou的密码有效期为30天

chage -M [密码有效期天数] [系统中已存在的用户名]:修改系统中已经存在用户的密码有效期;

[root@clr ~]# chage -M 50 xiaozhang  #修改系统中已经存在用户xiaozhang的密码有效期为50天;

[root@clr ~]# vim /etc/shadow #查看用户密码文件
nobody:*:18353:0:99999:7:::
xiaogao:!!:19459:0:30:7:::
xiaozhang:!!:19459:0:50:7::19459:  #可以查看到已将用户xiaozhang的密码有效期更改为50天

chage -d 0 [用户名]:强制指定用户在下次登录时修改密码;

[root@clr ~]# echo 123 | passwd --stdin zhangsan  #修改zhangsan用户的登录密码为123
更改用户 zhangsan 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@clr ~]# chage -d 0 zhangsan  #强制指定用户zhangsan在下次登录时修改密码
[root@clr ~]# vim /etc/shadow

lisi:!!:19459:0:99999:7:::
zhangsan:$6$onQc494r$hLmUnQ1CFU9E8kJ5JjpDA9rmUUT5jo8vFpi/85yoQuL1jvvdylnoWIZyMnxFGk1sPcKKJEHL9TDHSR7J3SAsf0:0:0:99999:7:::  #可以查看到第三字段为0,表示zhangsan用户在下次登录系统时需要修改密码

系统安全与应用【上】_第3张图片

1.3 命令历史限制

系统安全与应用【上】_第4张图片

export HISTSIZE:export全局变量,实现在所有的shell环境中都有效,保留指定要求的历史命令条数;

[root@clr ~]# vim /etc/profile  #修改/etc/profile 文件,设置export HISTSIZE参数,更改保留历史命令条数;

# /etc/profile

pathmunge () {
    case ":${PATH}:" in
        *:"$1":*)
            ;;
        *)

for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
    if [ -r "$i" ]; then
        if [ "${-#*i}" != "$-" ]; then
            . "$i"
        else
            . "$i" >/dev/null
        fi
    fi
done

unset i
unset -f pathmunge
export HISTSIZE=10     #export实现全局变量在所有的shell环境中都有效,修改HISTSIZE的参数为20,表示历史命令只保留20条

[root@clr ~]# source /etc/profile  #source命令用于在当前shell环境中重新加载/etc/profile文件
[root@clr ~]# history   #只剩下修改后的10条历史命令
  141  chage -d 0 zhangsan
  142  vim /etc/shadow
  143  echo 123 | passwd --stdin zhangsan
  144  chage -d 0 zhangsan
  145  history
  146  vim /etc/profile
  147  source /etc/profile
  148  vim /etc/profile
  149  source /etc/profile
  150  history

history -c:临时清空历史命令,系统重启之后历史命令会依然保留;

[root@clr ~]# history -c  #临时清空历史命令
[root@clr ~]# history
  132  history
[root@clr ~]# reboot  #重启系统
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(CentOS 7-2) at 18:51:50.

Type `help' to learn how to use Xshell prompt.

[root@clr ~]# ls -A  
.abc.txt.swp     .bash_logout   .cache   data.txt   .ICEauthority         nohup.out  .Xauthority  视频  下载
anaconda-ks.cfg  .bash_profile  .config  .dbus      initial-setup-ks.cfg  .tcshrc    公共         图片  音乐
.bash_history #历史命令保留在该文件中    .bashrc        .cshrc   .esd_auth  .local                .viminfo   模板         文档  桌面

[root@clr ~]# vim .bash_history   #所有历史命令都保存在.bash_history文件中

atrm 3
atq
which grub.cfg
crontab -e
crontab -l
crontab -l
crontab -e
vim /etc/crontab
history
reboot
~                                                                                                                                 
".bash_history" 20L, 311C              

echo ’ ’ > ~/.bash_history:实现开机登录,自动清空历史命令;

[root@clr ~]# vim /etc/profile   #修改/etc/profile 文件,设置export HISTSIZE参数,更改保留历史命令条数,或者直接将~/.bash_history;

# /etc/profile

unset i
unset -f pathmunge
export HISTSIZE=20
echo '' > ~/.bash_history   #实现将~/.bash_history文件清空

[root@clr ~]# reboot #重启系统
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(CentOS 7-2) at 19:09:07.

Type `help' to learn how to use Xshell prompt.

[root@clr ~]# vim .bash_history   #.bash_history文件中历史命令已清除
[root@clr ~]# history
    1  vim .bash_history
    2  history

修改/etc/bashrc文件:实现开机登录,自动清空历史命令;

[root@clr ~]# vim /etc/bashrc

# vim:ts=4:sw=4
PS1="\[\e[1;35m\][\[\e[1;34m\]\u\[\e[1;36m\]@\[\e[1;34m\]\h \[\e[1;31m\]\w\[\e[1;35m\]]\[\e[1;36m\]\\$\[\e[0m\] "
history -c  #将history -c放置在history -c文件中,实现在开机自启或者切换shell环境时,都自动清除历史命令

系统安全与应用【上】_第5张图片

1.4 终端自动注销

系统安全与应用【上】_第6张图片

export TMOUT=[指定时间]:修改该参数,设置闲置指定时间后,终端自动注销,默认为0,表示终端永不注销;

[root@clr ~]# vim /etc/profile

echo '' > ~/.bash_history
export TMOUT=60    #修改该参数,设置闲置1分钟后,终端自动注销,默认为0,表示永不注销  
[root@clr ~]# source /etc/profile

2.系统引导和登录控制

2.1 使用su命令切换用户

系统安全与应用【上】_第7张图片

su - 用户名:切换并加载目标用户的家目录和shell环境;

[root@clr ~]# cd /opt/  #切换到/opt/目录下
[root@clr /opt]# su zhangsan
[zhangsan@clr /opt]$ exit  #虽然此时登录的是zhangsan用户,但仍然还是处于/opt/目录下
exit
[root@clr /opt]# su - zhangsan
上一次登录:三 412 20:39:09 CST 2023pts/0 上
[zhangsan@clr ~]$ ls -A  #已经切换到zhangsan用户的家目录中
.bash_history  .bash_profile  .cache   .dbus      .ICEauthority  .mozilla  模板  图片  下载  桌面
.bash_logout   .bashrc #zhangsan用户加载的.bashrc文件       .config  .esd_auth  .local         公共      视频  文档  音乐
[root@clr ~]# su zhangsan  #超级用户root切换到普通用户zhangsan,不需要密码
[zhangsan@clr /root]$ su root  #普通用户zhangsan切换到root用户,需要密码
密码:

su: 鉴定故障
[zhangsan@clr /root]$ su lisi   #普通用户zhangsan切换到普通用户lisi,也需要密码
密码:
[lisi@clr /root]$ whoami  #查看当前登录用户
lisi

2.2 限制使用su命令的用户

在这里插入图片描述

gpasswd -a [用户名] wheel:将指定用户加入到wheel组中;

[root@clr ~]# vim /etc/group  #查看系统中已有的组名以及组账号
root:x:0:
mem:x:8:
kmem:x:9:
wheel:x:10:  #wheel组
cdrom:x:11:

[root@clr ~]# gpasswd -a xiaozhang wheel   #将xiaozhang用户加入到wheel组中
正在将用户“xiaozhang”加入到“wheel”组中
[root@clr ~]# id xiaozhang
uid=1005(xiaozhang) gid=1005(xiaozhang)=1005(xiaozhang),10(wheel)

[root@clr ~]# vim /etc/pam.d/su
  1 #%PAM-1.0
  2 auth            sufficient      pam_rootok.so  #代表root用户可以免密切换
  3 # Uncomment the following line to implicitly trust users in the "wheel" group.
  4 #auth           sufficient      pam_wheel.so trust use_uid
  5 # Uncomment the following line to require a user to be in the "wheel" group.
  6 auth           required        pam_wheel.so use_uid #代表加入wheel组的用户才可以认证登录,切换到其他用户
  7 auth            substack        system-auth
 
[root@clr ~]# su zhangsan  #root用户可以免密切换到其他任意用户
[zhangsan@clr /root]$ su root  #没有加入到wheel组的普通用户没有切换到root用户的权限
密码:
su: 拒绝权限
[zhangsan@clr /root]$ su lisi  #没有加入到wheel组的普通用户没有切换到其他用户的权限
密码:
su: 拒绝权限
[zhangsan@clr /root]$ exit
exit
[root@clr ~]# su xiaozhang  
[xiaozhang@clr /root]$ su zhangsan  #加入到wheel组的xiaozhang用户可以切换到普通用户zhangsan
密码:
[zhangsan@clr /root]$ exit
exit
[xiaozhang@clr /root]$ su root  #加入到wheel组的xiaozhang用户可以切换到超级用户root
密码:

系统安全与应用【上】_第8张图片

如上图所示:第2行开启,第6行注释时,这种状态下是允许所有用户间使用su命令进行切换,但root使用su切换普通用户不需要输入密码。

系统安全与应用【上】_第9张图片

如上图所示第2行和第6行都开启,表示只有root用户和wheel组内的用户才可以使用su命令

系统安全与应用【上】_第10张图片

如上图所示:第2行注释,第6行都开启时,表示只有wheel组内的用户才能使用su命令,root用户也被禁用su命令。

系统安全与应用【上】_第11张图片

如上图所示:**第2行和第6行都注释时,表示所有用户都能使用su命令,但root下使用su切换到其他普通用户也需要输入密码。**

系统安全与应用【上】_第12张图片

3.可插拔式认证模块PAM

3.1 linux中的PAM安全认证

系统安全与应用【上】_第13张图片

3.2 PAM认证原理

系统安全与应用【上】_第14张图片

/etc/pam.d:PAM配置文件;

[root@clr ~]# ls /etc/pam.d  #查看相关服务的PAM配置文件
atd               fingerprint-auth-ac     ksu               pluto         runuser-l          sssd-shadowutils  systemd-user
chfn              gdm-autologin           liveinst          polkit-1      setup              su                vlock
chsh              gdm-fingerprint         login             postlogin     smartcard-auth     sudo              vmtoolsd
config-util       gdm-launch-environment  other             postlogin-ac  smartcard-auth-ac  sudo-i            xserver
crond             gdm-password            passwd            ppp           smtp               su-l
cups              gdm-pin                 password-auth     remote        smtp.postfix       system-auth
fingerprint-auth  gdm-smartcard           password-auth-ac  runuser       sshd               system-auth-ac

lib64/security:调用认证文件进行安全认证;

[root@clr ~]# cd /lib64/security #调用认证文件进行安全认证
[root@clr /lib64/security]# ll
总用量 1232
-rwxr-xr-x. 1 root root  19680 41 2020 pam_access.so
-rwxr-xr-x. 1 root root  11184 41 2020 pam_cap.so
-rwxr-xr-x. 1 root root  11192 41 2020 pam_chroot.so

3.3 PAM认证的构成

系统安全与应用【上】_第15张图片
系统安全与应用【上】_第16张图片

3.4 PAM安全认证流程

系统安全与应用【上】_第17张图片

3.5 使用sudo机制提升权限

系统安全与应用【上】_第18张图片
系统安全与应用【上】_第19张图片

用户名 ALL=(root) /usr/sbin/ifconfig #赋予普通用户以root身份添加网卡IP地址的权限;

[root@clr ~]# su - zhangsan  #切换到普通用户zhangsan
上一次登录:三 412 22:05:21 CST 2023pts/0 
[zhangsan@clr ~]$ ifconfig ens33:0 192.168.80.120/24  #普通用户zhangsan给网卡添加IP地址,由于添加网卡属于超级管理员的操作,因此普通用户无法操作
SIOCSIFADDR: 不允许的操作
SIOCSIFFLAGS: 不允许的操作
SIOCSIFNETMASK: 不允许的操作
[zhangsan@clr ~]$ sudo ifconfig ens33:0 192.168.80.120/24 #添加sudo命令后,仍然无法添加网卡地址

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:
    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大。
[sudo] zhangsan 的密码:
zhangsan 不在 sudoers 文件中。此事将被报告。
[zhangsan@clr ~]$ exit
登出
您在 /var/spool/mail/root 中有新邮件

[root@clr ~]# vim /etc/sudoers  #修改/etc/sudoers配置文件
root    ALL=(ALL)       ALL
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL  #wheel组成员操作权限,效果类似于超级用户

## Allows members of the users group to mount and unmount the 
## cdrom as root
%users  localhost=/sbin/shutdown -h now    #赋予users组成员在本地主机立即关机的权限
zhangsan ALL=(root) /usr/sbin/ifconfig  #赋予普通用户zhangsan以root身份添加网卡IP地址的权限
lisi ALL=!/bin/rm   #禁止普通用户lisi删除的权限

[zhangsan@clr ~]$ exit
登出
[zhangsan@clr ~]$ sudo ifconfig ens33:0 192.168.80.120/24   #普通用户zhangsan添加网卡IP地址
[sudo] zhangsan 的密码:
[zhangsan@clr ~]$ ifconfig

ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.80.120  netmask 255.255.255.0  broadcast 192.168.80.255
        ether 00:0c:29:e6:e0:8a  txqueuelen 1000  (Ethernet)

[lisi@clr ~]$ cd /opt/
[lisi@clr /opt]$ rm -f clr.txt  #普通用户lisi不具有删除系统中原有文件的权限,但对于Lisi自己创建的文件可以删除
rm: 无法删除"clr.txt": 权限不够

[lisi@clr /opt]$ sudo rm -f clr.txt
我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:
    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大。
[sudo] lisi 的密码:
对不起,用户 lisi 无权以 root 的身份在 clr 上执行 /bin/rm -f clr.txt。  #显示lisi用户无权以root身份执行删除命令

GZY ALL = NOPASSWD: ADMIN:赋予别名GZY内的所有用户在所有主机上以root身份执行ADMIN程序内的所有命令权限,并且不需要使用密码;

[root@clr ~]# vim /etc/sudoers
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL   #赋予wheel组成员在所有主机上对所有命令的权限,效果类似于超级用户root
## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)

#includedir /etc/sudoers.d
zhangsan ALL=(root) /usr/sbin/ifconfig    #赋予普通用户zhangsan,以root身份给网卡添加IP地址的权限
lisi ALL=!/bin/rm   #禁止lisi用户删除文件的权限
User_Alias GZY=zhangsan,lisi   #给zhangsan,lisi这两个用户设置别名GZY
Cmnd_Alias ADMIN=/sbin/*,!/usr/sbin/reboot,!/usr/sbin/poweroff,!/usr/sbin/init,!/usr/sbin/shutdown
#给指定程序命令设置别名ADMIN,(赋予超级管理员用户的所有权限,重启系统、立即关机命令除外)
GZY ALL = NOPASSWD: ADMIN   #赋予别名GZY内的所有用户在所有主机上以root身份执行ADMIN程序内的所有命令权限,并且不需要使用密码

[root@clr ~]# su - zhangsan
上一次登录:三 412 23:44:03 CST 2023pts/0 上
[zhangsan@clr ~]$ which route
/usr/sbin/route
[zhangsan@clr ~]$ sudo route add -net 10.0.0.0/24 gw 192.168.80.20 dev ens33  #此时普通用户zhangsan可以使用超级用户root添加路由的权限
[zhangsan@clr ~]$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.80.2    0.0.0.0         UG    100    0        0 ens35
0.0.0.0         192.168.80.2    0.0.0.0         UG    101    0        0 ens33
10.0.0.0        192.168.80.20   255.255.255.0   UG    0      0        0 ens33   #新添加的路由信息

[zhangsan@clr ~]$ sudo reboot  #禁止zhangsan用户的重启操作
对不起,用户 zhangsan 无权以 root 的身份在 clr 上执行 /sbin/reboot。
[zhangsan@clr ~]$ exit
登出
[root@clr ~]# su - lisi
上一次登录:三 412 23:48:56 CST 2023pts/0 上
[lisi@clr ~]$ sudo ifconfig ens33:1 192.168.80.34  #此时普通用户lisi可以使用超级用户root添加网卡IP地址的权限
[lisi@clr ~]$ ifconfig
ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.80.34  netmask 255.255.255.0  broadcast 192.168.80.255
        ether 00:0c:29:e6:e0:8a  txqueuelen 1000  (Ethernet)

[lisi@clr ~]$ sudo init 6   #禁止普通用户lisi重启系统的权限
对不起,用户 lisi 无权以 root 的身份在 clr 上执行 /sbin/init 6

sudo -l:查看当前登录用户获得那些sudo授权;

[lisi@clr ~]$ sudo -l  #查看当前用户lisi获得那些sudo授权
匹配 %2$s 上 %1$s 的默认条目:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME
    HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE
    LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
    env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

用户 lisi 可以在 clr 上运行以下命令:
    (root) !/bin/rm
    (root) NOPASSWD: /sbin/*, !/usr/sbin/reboot, !/usr/sbin/poweroff, !/usr/sbin/init, !/usr/sbin/shutdown

3.6 查看sudo操作记录

系统安全与应用【上】_第20张图片

Defaults logfile = “/var/log/sudo” :保存日志文件,可以查看到所有用户登录系统的操作;

[root@clr ~]# vim /etc/sudoers

## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL
zhangsan ALL=(root) /usr/sbin/ifconfig
lisi ALL=!/bin/rm
User_Alias GZY=zhangsan,lisi
Cmnd_Alias ADMIN=/sbin/*,!/usr/sbin/reboot,!/usr/sbin/poweroff,!/usr/sbin/init,!/usr/sbin/shutdown
GZY ALL = NOPASSWD: ADMIN

Defaults logfile = "/var/log/sudo"  #保存日志文件

[root@clr ~]# cd /var/log/
[root@clr /var/log]# vim sudo
Apr 13 00:09:36 : zhangsan : command not allowed ; TTY=pts/0 ; PWD=/root ;
    USER=root ; COMMAND=/sbin/reboot   #zhangsan用户不被允许的操作
Apr 13 00:09:51 : zhangsan : TTY=pts/0 ; PWD=/root ; USER=root ;
    COMMAND=/sbin/route add -net 10.0.0.1/24 gw 192.168.80.20 dev ens33  #zhangsan用户添加路由的操作
Apr 13 00:10:12 : lisi : command not allowed ; TTY=pts/0 ; PWD=/home/lisi ;  #用户lisi不被允许的操作
    USER=root ; COMMAND=/sbin/reboot                                                          

你可能感兴趣的:(Linux,linux,系统安全,bash)