我正在设置一个开发工作站,该工作站曾经只有一个共享帐户,可以为每个开发人员提供一个可能使用它的帐户。

我们通常会切换工作站。我想以透明的方式让所有用户共享某些目录。

我创建了/usr/local/share/workspace和/usr/local/share/rvm目录,这些目录与〜/workspace和〜/.rvm相关。

默认情况下,所有开发人员也应在目录中创建的子目录/文件(无需使用sudo)。我也宁愿不将目录设置为世界写道,因为Ruby给我发出了警告,因为RVM目录在路径上(但是我不在乎安全含义)。

我该怎么做呢?有没有资源概述好实践?

有帮助吗?

解决方案

如果要在单个工作站上共享目录,请将所有相关用户放入组中(请参见Man AddGroup和 /etc /group),然后在目录树上运行“ CHGRP -R YourGroup YourDir”。要提供写入权限,请运行“ CHMOD -R G+W YORDIR”。

如果要在不同的计算机之间共享它,则可以使用NFS。例如,请参见 这个方法.

其他提示

我假设 /usr/local/share/workspace 所有包含的文件/目录均由所有用户所在的组拥有。如果是正确的,那么您需要做的就是将setGID应用于每个目录,并将clout execute tocto to to evertory设置为文件和目录:

find /usr/local/share/workspace -type d -exec chmod +s {} \;
chmod -R g+wX /usr/local/share/workspace

当应用于目录时,setgid位意味着:

  • 目录中创建的所有文件和目录都将其组所有权默认为目录的所有者。
  • 目录中创建的所有目录也将具有其旋转位置集,因此这也对新目录也有效。 (换句话说,此位自动递归地应用于新目录。)

用户还需要提供一个允许写入其他组成员的透明度。所以他们应该把类似的东西 umask 002 在他们的 ~/.profile. 。如果他们不这样做,那么其他小组成员可能不会写下其创建的任何文件或目录。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top