0

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

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

我创建了 /usr/local/share/workspace 和 /usr/local/share/rvm 目录,它们符号链接到 ~/workspace 和 ~/.rvm。

默认情况下,在目录中创建的子目录/文件也应该可由所有开发人员写入(无需使用 sudo)。我也不想将目录设置为全局可写,因为 ruby​​ 给我一个警告,因为 rvm 目录在路径上(但是我不关心安全隐患)。

我该怎么做呢?是否有任何资源概述了良好做法?

4

2 回答 2

1

如果您想在单个工作站上共享目录,请将所有相关用户放在一个组中(参见 man addgroup 和 /etc/group),然后在目录树上运行“chgrp -R yourgroup yourdir”。要授予写入权限,请运行“chmod -R g+w yourdir”。

如果你想在不同的计算机之间共享它,你可以使用 NFS。参见例如这个 HOWTO

于 2011-01-05T00:06:45.380 回答
1

我假设/usr/local/share/workspace所有包含的文件/目录都归所有用户所在的组所有。如果这是真的,那么您需要做的就是将 setgid 和组执行位应用于每个目录,并设置对每个文件和目录进行组写入位:

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

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

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

用户还需要提供允许对其他组成员进行写访问的 umask。所以他们应该umask 002在他们的~/.profile. 如果他们不这样做,那么他们创建的任何文件或目录可能无法被其他组成员写入。

于 2011-01-05T00:07:21.423 回答