为每个人或特定用户安装具有写权限的USB驱动器

我知道有类似的问题,但我得到一些我无法克服的具体问题。

我有:

  • 硬盘拆分为两个分区。 /dev/sdb1/dev/sdb2sdb1是NTFS,我不需要它。 我需要sdb2 ,这是fat32。
  • Ubuntu 12.04.1 LTS(服务器)

我想要:

最终我需要一个perma-mount /dev/sdb2/home/storage并为用户media提供访问权限(rw)。

我面临的问题:

1)从命令行使用手动安装。

如果我只是用

 server# sudo mount /dev/sdb2 /home/storage 

它安装但/home/storage接收root作为所有者和组,并且不允许media用户在那里写。

如果我使用不带sudo mount命令作为用户media – 我不被允许。 说root只能使用mount。

如果我使用mount with options: server# sudo mount /dev/sdb2 /home/storage -o umask=000我得到了我需要的东西。 当然有点过头了,因为存储文件夹对每个人都可写。 但是 – 手动安装 – 现在我需要它在每次重启时重新安装。

2)重启时重新安装 – 使用fstab

所以我想如果我每次重新启动时都使用fstab挂载这个分区( /dev/sdb2 ),我会没事的。 我添加的fstab线:

UUID=8C52-C1CD /home/storage auto user,umask=000,utf8,noauto 0 0

得到了与blkid uuid。 fs类型auto我改变了几次…尝试了vfat ,但总是在重启ubuntu停止处理fstab(我认为)与消息(从日志中取出):

fsck from util-linux 2.20.1 /dev/sda5: clean, 120559/10969088 files, 19960144/43861504 blocks mount: unknown filesystem type 'static' mountall: mount /etc/fstab: [772] terminated with status 32 mountall: Filesystem could not be mounted: /etc/fstab: Skipping /etc/fstab: at user request

而且 – sudo mount -a从来没有真正做过任何事情。

我究竟做错了什么? 我怀疑我搞砸了什么:)

更新:

看起来似乎–fstab应该只保留静态驱动器的安装,而不是任何类型的USB。 我很困惑,这是如何与网上发布成功故事的所有人一起工作的……

但是..如果这是不可能的 – 我想知道如何在每次重启后重新安装我的USB …如果不是用fstab – 而不是如何?:)

您的问题似乎与您设置的权限有关。 FAT / FAT32格式的驱动器不支持文件权限。 所有内容的权限取决于驱动器的安装方式。 当您将权限设置为打开时,它就会起作用

 server# sudo mount /dev/sdb2 /home/storage -o umask=000 

至于它不能在重启时自动安装

 UUID=8C52-C1CD /home/storage auto user,umask=000,utf8, -->noauto<-- 0 0 

“noauto”会在系统启动时自动挂载并解析/ etc / fstab文件。 删除该选项,它将在启动时安装。 您可以使用chmod在挂载点上设置权限,或者在/ etc / fstab中指定它们。

如果您需要媒体用户访问它,您可以将权限设置为764,并将其添加到安全组。 Root始终可以访问所有内容。

有关propper文件权限的一些示例,请参阅http://www.linux.org/threads/file-permissions-chmod.4094/

另外,bodhi.zazen提出了一个很好的观点是否有一些理由需要使用FAT? 如果没有,我会备份数据并使用Linux本机文件系统。 然后,您可以设置所有权和权限。

除非被挂载选项覆盖,否则GID =或UID =安装时挂载点的所有者和权限将成为正在挂载的文件系统树的所有者和权限。

因此,如果/ dev / sdb1包含用户拥有的ext4文件系统(比如备份),则用户将在成功安装后成为挂载点的所有者。

首先,我们有一个空文件夹’backup’作为挂载点,并由root拥有。

 # ls -alR /mnt /mnt/: drwxr-x--- 5 root root 4096 May 30 20:59 ./ drwxr-xr-x 3 root root 4096 Dec 5 2015 ../ drwx------ 2 root root 4096 Jan 1 07:45 backup/ /mnt/backup: drwx------ 2 root root 4096 Jan 1 07:45 . drwxr-x--- 5 root root 4096 May 30 20:59 .. 

现在我们挂载/ dev / sdb1(只读)

 # mount -o ro /dev/sdb1 /mnt/backup 

让我们看看……

 # ls -alR /mnt/: drwxr-x--- 5 root root 4096 May 30 20:59 ./ drwxr-xr-x 3 root root 4096 Dec 5 2015 ../ drwx------ 2 user user 4096 Jan 1 07:45 backup/ /mnt/backup: drwx------ 2 user user 4096 Jan 1 07:45 . drwxr-x--- 5 root root 4096 May 30 20:59 .. -rw------- 1 user user 252076021760 Jun 9 21:11 backup.tar 

现在,如果你有一个空的驱动器并且想要为’用户’安装它作为’用户的磁盘空间的扩展,那么以root用户身份安装驱动器,将安装的根目录添加到’user’并卸载。

下次安装文件系统时(由root或任何人按照fstab)安装的所有者将是’user’。

你也可以跑

 sudo chmod 0777 /home/storage 

由于FAT驱动器没有权限,因此linux将挂载点的权限应用于整个驱动器。

如果您使用NTFS将外部存储设备连接到Linux机箱,请确保文件系统是干净的。

在将存储装入Linux盒之前:

  1. 运行以下命令

     ntfsfix /dev/storagedevice ( like sdb1 or sdc1 ) 
  2. 重新启动Linux机器

  3. 通过运行以下命令挂载外部存储:

     mount -o rw /dev/storagedevice /media/ 

    要么

     mount -o rw /dev/storagedevice /mnt/ 

    或通过GUI挂载存储设备。