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(访问控制列表)是大型部署的更好选择,建议选择。