1.例如oldboy这个普通用户禁止使用rm命令怎么实现。
默认情况下普通用户都是有rm命令权限的,我看到这个第一也是想到了利用visudo来做,但是没有实现,且这个用户是已经存在的用户,尝试一会儿没有实现。后面又想到了setfacl这个命令,实现过程如下:
首先在CentOS7中/bin 目录是/usr/bin的快捷方式,这里设置一个就可以了
①找到rm命令的位置
[root@db01 ~]# which rm
alias rm='rm -i'
/usr/bin/rm
②设置特殊权限
[root@db01 ~]# setfacl -m u:oldboy:r /usr/bin/rm
③用普通用户oldboy登录测试,rm命令已经不能使用了
[root@db01 ~]# su - oldboy
Last login: Tue Jan 26 19:10:09 CST 2021 from 10.0.0.1 on pts/2
[oldboy@db01 ~]$ touch a.txt
[oldboy@db01 ~]$ rm a.txt
-bash: /bin/rm: Permission denied
[oldboy@db01 ~]$ \rm a.txt
-bash: /bin/rm: Permission denied
另外假设要排除的命令很多,这种方法有点不适用,visudo应该能实现,后续再补上。