这第八题到底是什么坑?
琢磨了一千零一夜
请各位支招!
必定感激不尽!


以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
根据您提供的描述,我理解您正在尝试解决Linux环境下的脚本编写和文件权限问题。我会尽力帮助您解决这些问题。
关于第八题的问题描述较为模糊,所以我将根据之前的描述进行解答。假设您的问题是如何使得新建的vistor用户能够直接运行srun但不能通过sh间接运行。这里的关键是使用chmod命令设置适当的权限,以及使用文件访问控制列表(ACL)对特定用户进行权限控制。下面是如何实现这个需求的步骤:
首先,创建vistor用户(如果已经存在该用户,可以跳过这一步):
useradd vistor
接着,使用chmod命令为srun设置执行权限,但不允许任何人通过sh间接运行它。这个操作可能比较复杂,因为无法直接阻止通过sh间接运行的情况。但是我们可以设置执行权限只对特定用户开放,这样即使通过sh间接运行也需要验证该用户的权限。具体操作如下:
给srun设置执行权限,但只允许特定的用户执行:
chmod 700 srun # 仅设置拥有者的执行权限
chown vistor srun # 将文件拥有者更改为vistor用户
接下来是使得vistor用户可以通过sh间接运行run.sh的步骤。将run.sh的权限设置为可读可写可执行:
chmod 755 run.sh # 设置拥有者有读、写和执行权限,组用户和其他用户只有读和执行权限
同时,您需要确保run.sh中的func函数可以正确执行计算积和和的操作。如果计算没有问题的话,最后确保文件的所有权已经更改到vistor用户,并且设置了适当的权限。这样vistor用户就可以直接运行srun并通过它间接运行run.sh中的函数了。不过请注意,这种方法并不能完全阻止通过sh间接运行的行为,但可以限制非授权用户的直接执行权限。如果需要更严格的控制,可能需要考虑使用其他安全机制或系统配置。