设置共享媒体驱动器

设置共享媒体驱动器

我希望共享媒体驱动器对所有用户透明可用,同时遵守 FHS 和 Ubuntu 标准。如有必要,前者优先。我目前将其安装在/media/Stuff/media我认为应该是用于外部媒体。主要问题是设置正确的权限,以便可以向在同一目录中工作的多个用户授予对驱动器的读写权限。

安装新硬盘看起来有点令人困惑,也不是我想要的。它声称这会设置顶级目录的所有权(尽管有递归标志):

    sudo chown -R USERNAME:USERNAME /media/mynewdrive

这将允许多个用户创建文件和子目录,但只能删除他们自己的文件和子目录:

    sudo chgrp plugdev /media/mynewdrive
    sudo chmod g+w /media/mynewdrive
    sudo chmod +t /media/mynewdrive

但是,组可写位似乎不会被继承,这对于保持有序性来说很麻烦(防止在另一个用户最初创建的子文件夹中创建文件)。出于同样的原因,粘性位可能也是不受欢迎的,尽管目前看来,一个用户 A(可能是挂载点的所有者?)可以删除用户 B 的文件,但反之则不行。只要用户 B 可以在用户 A 的目录中创建文件,这就可以了。所以:

  • 正确的挂载点是什么?
  • plugdev 是正确的组吗?
  • 最重要的是,如何设置权限来维护有组织的媒体驱动器?

我不想运行 cron 作业来定期设置权限!

答案1

正确的挂载点是/mnt/我的新驱动器插件开发不正确;在权限上,为什么不使用访问控制列表(ACL)?

ACL 工具是默认安装的吗?记不清了,不过安装一下也无妨……

sudo apt-get install acl

使用 /etc/fstab 中的 acl 选项挂载文件系统。

sudo vim /etc/fstab

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 默认值,访问控制列表0 1

sudo mount -o remount,acl /

然后为此目的创建一个用户可以所属的组,我将其称为石头,然后使用户成为该组的成员。

sudo groupadd stone
sudo usermod -a -G stone $username

用户需要注销并重新登录才能成为该组的成员。如果目录 /mnt/mynewdrive 已挂载且完全为空:

sudo chown root.stone /mnt/mynewdrive
sudo chmod 0775 /mnt/mynewdrive
sudo chmod g+s  /mnt/mynewdrive
sudo chmod +t   /mnt/mynewdrive
sudo setfacl -d -m u::rwx,g::rwx,o::r-x /mnt/mynewdrive

多于...

  • 将所有者更改为 root 并将组所有者更改为 stone
  • 赋予石头组写作能力
  • 使所有新文件由 stone 集体所有
  • 限制除创建文件的用户之外的所有人进行删除和重命名
  • 默认情况下,允许用户和组 rwx,其他:rx。

答案2

目前,我建议设置一个没有权限的驱动器。使用 FAT32 或其他非安全文件系统并通过 samba 共享。

在未来,我认为我们需要认真考虑如何在 Ubuntu 中启用这些功能。

相关内容