我应该在Linux系统上的何处放置组共享文件?


14

我正在将许多小的自定义脚本和数据从Linux系统迁移到另一个系统。

在旧系统上,我们拥有一个共享用户,该用户拥有大多数文件,并且这些文件位于该用户中/home;但是在新系统上,我们宁愿使用自己的帐户登录并使用组权限进行协作,但是由于没有文件的单个所有者,没有/home-dir。

那么我应该将那些共享文件放在哪里?我应该创建一个拥有文件的非登录用户吗?还是有一个合适/grouphome的地方?

(我不想将它们散布到各个用户中/home:)


它们是哪种文件?
丹·卡利

大多数是具有不同类型关联数据的导入脚本,应对其进行过滤并将其导入数据库。
丹尼尔(Daniel)2009年

我喜欢/ grouphome。拥有文件提示的非登录用户也很好。
pjc50

Answers:


15

我几乎可以肯定建议使用/usr/local

全局可访问的用户脚本可以放在中/usr/local/bin。少量关联数据也可能会进入bin。或者,您可能希望将数据分离为/usr/local/var/usr/local/share

通过这样做,您将非常确定,任何熟悉FHS的人都可以在没有任何特定系统先验知识的情况下很快找到它们。


3
(+1)有关放置位置的将来参考:pathname.com/fhs/pub/fhs-2.3.html
Kyle Brandt

谢谢你们俩 /usr/local就是这样 实际上,这是我的第一个选择,但是建议的文章中对(只读)目的的描述/usr使我偏离了这个想法。猜猜我应该继续读下去/usr/local
丹尼尔(Daniel)2009年

7

这正是组权限设计的目的。这是我在Ubuntu中的操作方式:

sudo mkdir /home/shared
sudo addgroup shared
sudo chown :shared /home/shared
sudo chmod 770 /home/shared
sudo vim /etc/group

将有权访问共享目录的用户列表添加到共享组。例如:

shared:x:1002:norman,nextuser,and,so-on

当然,您可以使用'shared'以外的任何名称,并且不必在/ home目录中。令人高兴的是,您无需对用户帐户执行任何特殊操作,并且可以轻松地从组中添加或删除用户。


感谢您的不赞成票。但是我想知道我写的是不正确的。
simplr

还可以设置组粘性位,以便为创建的新文件设置组。 chmod g+s /home/shared
jris198944 2014年

1
@ jris198944 s用于SUID和GUID位,t用于粘滞位。发布前请仔细检查;-)请参阅:unix.stackexchange.com/a/79401/136321

1

简短的答案是:随你喜欢:)

我喜欢使用/ projects,/ shared或/ common之类的东西。/ home / shared也可以。


谢谢。简短而美观,但是有时候如果您不必下定决心,这会更容易...将我自己的目录放在下面符合FHS要求/吗?什么时候(如果有的话)有关系吗?我没有足够的经验来意识到我所选择的含义。
丹尼尔(Daniel)2009年

这些实际上只是约定。我在这些预定义的位置中查找其他东西的程序。bin目录已经在$ PATH中,因此您无需指定运行脚本的完整路径名。其他管理员可能希望他们在那里。在您的情况下,这可能并不重要,但是良好的习惯还是不错的:-)
Kyle Brandt

在UNIX环境中有许多适用的约定。FHS奠定了良好的基准,但是偏离该标准是很常见的。例如,用于Oracle数据库服务器的最佳灵活体系结构将/ u *(/ u01,/ u02)用于本地用户数据,而Ubuntu等将/ media用于可移动介质安装点。只要您在操作环境中达成内部一致的约定,就不会有问题。
罗伊,

0

我用/shares; 这也是qnap使用的位置。

/shares这个文件夹中/shares/.mnt/,我有一个指向目标的符号链接,在该文件夹中有装载的数据驱动器。

这样做是为了防止在使用硬链接时在共享之间移动文件时漫长的等待时间,/shares而仅在/ mnt中装载数据驱动器时才需要。

/shares/.mnt 顺便说一下,不共享。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.