我正在尝试解决使用 Red Hat 服务器运行 IC 模拟的问题。
以前,IC 项目存储在我的 Windows Server 2003 上,但模拟工具在 Red Hat 机器上运行。这对我来说一直很头疼,因为模拟运行速度非常慢,而且我经常被 IC 人员抱怨。
我决定尝试将项目直接存储在 Red Hat 机器上,看看这是否会加快进程。模拟运行速度快了很多,每个人都很开心,但我注意到这个设置还有另一个问题。
在模拟过程中创建的任何文件或 IC 人员放在服务器上的文件都会自动获得 rx-r--r-- 的权限,因此他们无法更改这些文件。因此,我随后被要求对文件进行 chmod 操作,以便这些人可以对自己的文件拥有写访问权限。
我对这个很陌生,对整个场景感到困惑。我希望有一种方法可以通过脚本或配置更改自动让文件拥有特定的权限。
谢谢您的帮助并请原谅我的无知。
答案1
抱歉,但我不明白为什么您不直接更改用户配置文件上的 umask 以允许组写入?然后所有用户都可以添加到同一个组。但我不知道该 IC 应用程序是如何工作的,所以也许这就是我不明白的原因。
我不想冒犯你,但万一你不知道我在说什么,我想我会添加一些信息。基本上,用户配置文件对他们创建的所有文件都有一个默认的权限,称为 umask。在 Ubuntu 中,默认值为 022,这意味着用户创建的所有文件都将设置为 755(用户:rwx、组 rx、其他 rx)。在你的情况下,听起来掩码设置为 033。将其更改为 003,与创建者属于同一组的任何成员都可以修改它。只需将所有用户添加到与“应用程序用户”组相同的组中。我相信你可能也必须将其设置为主组。
我可能完全错了,因为就像我说的,我不知道您正在使用的应用程序/环境。
答案2
无需探讨其他 500 个关于如何真正使固定您的申请,快速而粗糙:
1)在驱动器上创建一个脚本,例如 /usr/local/sbin/fixperms.sh
#!/bin/sh
MYPATH=/location/of/files
cd ${MYPATH} && find . -type f -print0 | xargs -0 chmod 0664
cd ${MYPATH} && find . -type d -print0 | xargs -0 chmod 0775
cd ${MYPATH} && chgrp -R <group name all your users are in>
2)使脚本可由root执行:
chmod 0744 /usr/local/sbin/fixperms.sh
chown root:root /usr/local/sbin/fixperms.sh
3)以root身份运行“crontab -e”并将其粘贴到:
*/15 * * * * /usr/local/sbin/fixperms.sh
(1) 中的脚本将按 (3) 每 15 分钟运行一次,并修复您的文件权限和所有权。