Linux/UNIX:限制对给定命令的访问

时间:2020-01-09 10:43:05  来源:igfitidea点击:

如何仅在Linux/UNIX/BSD操作系统下将对/opt/apps/start等给定命令的访问限制为授权用户?
您需要使用传统的Unix组概念来增强安全性,包括限制对给定命令的访问。

步骤1:为所有授权用户创建和维护组

创建一个名为appsonly的组:

# groupadd appsonly

仅将所有授权用户添加到应用程序:

# usermod -aG {groupName} {userName}
# usermod -aG appsonly tom
# usermod -aG appsonly jerry
# id jerry

其中:

  • -a:将用户添加到补充组,即将用户添加到当前补充组列表。
  • -G:用户也是其成员的补充组列表。

步骤2:限制访问

现在已经创建了一组用户。
接下来,使用" chgrp命令"将/opt/apps/start组更改为appsonly组:

# chgrp {groupName} {/path/to/command}
# chgrp appsonly /opt/apps/start

禁用其他人的文件权限

最后,使用" chmod命令"来更改文件权限,如下所示:

# chmod 750 /path/to/command
# chmod 750 /opt/apps/start

您还可以将权限应用于目录(这将使ls命令无法访问其他目录):

# chgrp appsonly /opt/apps
# chmod 0640 /opt/apps

步骤3:测试

su to tom,执行:

# su - tom
$ id
$ /opt/apps/start
$ exit

su到Hyman(不是appsonly组的成员),执行:

# su - Hyman
$ id
$ /opt/apps/start

输出示例:

bash: /opt/apps/start: Permission denied

关于ACL和SELinux的说明

可以通过chmod,chgrp和usermod命令强制执行的访问控制策略受到限制,并且配置SELinux和Fille系统ACL(访问控制列表)是大型部署的更好选择,建议选择。