为所有人或特定用户安装具有写许可权的USB驱动器


25

我知道也有类似的问题,但是我遇到了一些我无法克服的特定问题。

我有:

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

我想要:

最后,我需要一个博贴/dev/sdb2/home/storage具有访问权限(RW)用户media

我面临的问题:

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

如果我只是用

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

它已安装,但/home/storage接收根作为所有者和组,并且不允许media用户在此处写入。

如果我mountsudo以用户身份使用命令media-则不允许。说只有root可以使用mount。

如果我使用mount选项: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

与乌伊特blkidauto我更改了几次fs类型...也尝试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-比如何?:)


我认为您应该发布所有fstab以便进行审核,而不只是一行。至于正确的权限,请运行id media并使用uid=gid=umask=027选项。
mikewhatever,2013年

1
是否有某些原因需要使用FAT?如果没有,我将备份数据并使用Linux本机文件系统。然后,您可以设置所有权和权限。
Panther

@mikewhatever谢谢,但是实际上它的工作方式很奇怪……很好..不是真的:)
GeekSince1982

@ bodhi.zazen进行了更多的阅读...在ubuntu 12 fstab上的接缝应该只安装静态驱动器。没有任何USB ...
GeekSince1982

Answers:


27

您的问题似乎与您设置的权限有关。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

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

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

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

附带说明一下,bodhi.zazen很好地说明了您需要使用FAT的某些原因吗?如果没有,我将备份数据并使用Linux本机文件系统。然后,您可以设置所有权和权限。


1
-o umask=000是吗!!谢谢!
2015年

4

除非被挂载选项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的任何人)挂载文件系统时,挂载的所有者将为“用户”。


3

你也可以跑

sudo chmod 0777 /home/storage

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


1
决不适用R + W + X权限,为每一位用户。这将允许任何人或任何访问,执行,删除,修改存储和它的内容....
愤怒的84

1
在大多数操作系统上,都安装了USB驱动器,因此任何用户都可以修改内容。如果您是服务器管理员,而这可能是一个问题,那么我不必告诉您0777的含义。
Zane Hooper

默认情况下,从不挂载驱动器以允许所有用户,这就是为什么它们具有组和权限。无论哪种方式,显示更好的安全性mod总是比较安全,因为人们将不知不觉地简单地复制和粘贴
愤怒84

-1

如果确实使用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挂载存储设备。

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.