1.例如oldboy这个普通用户禁止使用rm命令怎么实现。

    默认情况下普通用户都是有rm命令权限的,我看到这个第一也是想到了利用visudo来做,但是没有实现,且这个用户是已经存在的用户,尝试一会儿没有实现。后面又想到了setfacl这个命令,实现过程如下:

    首先在CentOS7中/bin 目录是/usr/bin的快捷方式,这里设置一个就可以了
    ①找到rm命令的位置

    1. [root@db01 ~]# which rm
    2. alias rm='rm -i'
    3. /usr/bin/rm

    ②设置特殊权限

    1. [root@db01 ~]# setfacl -m u:oldboy:r /usr/bin/rm

    ③用普通用户oldboy登录测试,rm命令已经不能使用了

    1. [root@db01 ~]# su - oldboy
    2. Last login: Tue Jan 26 19:10:09 CST 2021 from 10.0.0.1 on pts/2
    3. [oldboy@db01 ~]$ touch a.txt
    4. [oldboy@db01 ~]$ rm a.txt
    5. -bash: /bin/rm: Permission denied
    6. [oldboy@db01 ~]$ \rm a.txt
    7. -bash: /bin/rm: Permission denied

    另外假设要排除的命令很多,这种方法有点不适用,visudo应该能实现,后续再补上。