创建排除权限的用户列表 - Unix

时间:2014-10-03 14:24:44

标签: shell unix aix

我有这个奇怪的要求,我想限制执行" chmod"命令

#which chmod
/usr/bin/chmod
#ls -lrt /usr/bin/chmod
-r-xr-xr-x    1 bin      bin           10700 Jun 20 2012  /usr/bin/chmod

它拥有对所有人的执行权限。我们是否可以创建一个排除组,并以某种方式进行配置,以便仅将权限撤销给这些用户。

我拥有的选项是创建一个包含所有id的组,除了那些我要放在异常中的ID并更改权限,如

-r-xr-xr--    1 bin      New-grp          10700 Jun 20 2012  /usr/bin/chmod

我不想使用此选项,因为在我的服务器中有很多用户,并且需要很长时间才能获得批准。请以任何其他方式建议。

2 个答案:

答案 0 :(得分:0)

您可以为其设置ACL。试试这个:http://howtoaix.blogspot.com/2013/05/acl-access-control-list.html

答案 1 :(得分:0)

我不得不质疑你想要完成的事情。

您可以看到,chmod二进制文件仅用于挂钩系统调用。在您的操作系统中内置了一个系统调用 - 称为cunningly chmod(),它可以更改文件权限。

http://man7.org/linux/man-pages/man2/fchmod.2.html

   #include <sys/stat.h>

   int chmod(const char *pathname, mode_t mode);
   int fchmod(int fd, mode_t mode);

   #include <fcntl.h>           /* Definition of AT_* constants */
   #include <sys/stat.h>

   int fchmodat(int dirfd, const char *pathname, mode_t mode, int flags);

尝试通过更改chmod命令的permisisons来锁定此功能是一个非常糟糕的主意,因为最多只能获得一种虚假的安全感。 chmod不需要任何提升的权限来运行,因此任何用户都可以复制自己的版本,然后运行它。

或者使用编译器自己编写。

或使用perl内置。

或者基本上意味着这种情况的各种其他机制除了略微恼人之外不会有太大的成就。

真正试图完成什么?您可能正在寻找某种强制访问控制,这意味着您需要查看selinux。