我正在设置一个开发工作站,过去只有一个共享帐户,可以为每个可能正在使用它的开发人员创建一个帐户。
我们通常会切换工作站。我希望所有用户以透明的方式“共享”某些目录。
我创建了/ usr / local / share / workspace和/ usr / local / share / rvm目录,它们符号链接到〜/ workspace和〜/ .rvm。
默认情况下,所有开发人员也应该可以写入目录中创建的子目录/文件(无需使用sudo)。我也不希望将目录设置为全局可写,因为ruby给了我一个警告,因为rvm目录在路径上(我不关心安全隐患)。
我该怎么做?是否有任何资源概述良好做法?
答案 0 :(得分:1)
如果要在单个工作站上共享目录,请将所有相关用户放在一个组中(请参阅man addgroup和/ etc / group),然后在目录树上运行“chgrp -R yourgroup yourdir”。要授予写入权限,请运行“chmod -R g + w yourdir”。
如果要在不同的计算机之间共享,可以使用NFS。例如,请参阅this HOWTO。
答案 1 :(得分:1)
我假设/usr/local/share/workspace
并且所有包含的文件/目录都归所有用户所在的组所有。如果这是真的,那么您需要做的就是应用setgid和group execute bits到每个目录,并在每个文件和目录上设置组写位:
find /usr/local/share/workspace -type d -exec chmod +s {} \;
chmod -R g+wX /usr/local/share/workspace
setgid位在应用于目录时意味着:
用户还需要提供允许对其他组成员进行写访问的umask。因此,他们应该在umask 002
中添加~/.profile
之类的内容。如果他们不这样做,那么他们创建的任何文件或目录可能不会被其他组成员写入。