Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在linux/bsd上与工作站上的不同用户共享目录_Linux_Permissions_Sysadmin_Bsd_File Sharing - Fatal编程技术网

在linux/bsd上与工作站上的不同用户共享目录

在linux/bsd上与工作站上的不同用户共享目录,linux,permissions,sysadmin,bsd,file-sharing,Linux,Permissions,Sysadmin,Bsd,File Sharing,我正在设置一个开发工作站,以前只有一个共享帐户,以便为可能使用它的每个开发人员设置一个帐户 我们通常交换工作站。我想让所有用户以透明的方式“共享”某些目录 我创建了/usr/local/share/workspace和/usr/local/share/rvm目录,它们被符号链接到~/workspace和~/.rvm 默认情况下,在目录中创建的子目录/文件应由所有开发人员编写(无需使用sudo)。我也不希望将目录设置为全局可写,因为ruby给了我一个警告,因为rvm目录在路径上(但是我不关心安全问

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

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

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

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


我该怎么做?是否有概述良好实践的资源?

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


如果要在不同的计算机之间共享,可以使用NFS。例如,请参阅。

我假设
/usr/local/share/workspace
和所有包含的文件/目录都属于所有用户所在的组。如果这是真的,那么您只需将setgid和group execute位应用于每个目录,并在每个文件和目录上设置group write位:

find /usr/local/share/workspace -type d -exec chmod +s {} \;
chmod -R g+wX /usr/local/share/workspace
setgid位应用于目录时表示:

  • 在目录中创建的所有文件和目录的组所有权默认为该目录的所有者
  • 在目录中创建的所有目录也将设置其setgid位,因此这对新目录也是有效的。(换句话说,该位将自动递归应用到新目录。)
用户还需要提供允许对其他组成员进行写访问的umask。因此,他们应该在他们的
~/.profile
中放入类似于
umask 002
的内容。如果没有,则他们创建的任何文件或目录可能无法由其他组成员写入