自动挂载的USB设备是只读的。

自从我升级到Ubuntu 12.10以后,USB设备的自动挂载功能不像预期那样工作。当我插入存储设备时,它能够正确识别,但是我没有写入权限。我想也许/media目录的权限设置不正确,但是我不知道应该如何设置。目前的权限如下:
drwxr-xr-x  14 root  root   4096 Jan 13 19:37 media

我还检查了我的用户是否是plugdev组的成员,他确实是。
还有什么可能导致这个问题呢?
更新:在插入USB存储设备后,这是dmesg输出:http://pastebin.com/pJ7qebQR

请您将插入或挂载驱动器时的dmesg输出的相关部分粘贴/链接给我。 - onik
我该怎么做? - user5950
打开终端并在插入驱动器后输入 dmesg,最后几行应该有关于设备检测的信息。或者您可以将整个输出(如有需要,请进行审查)复制/粘贴到 Pastebin 并在此处分享链接。 - onik
将输出添加到上面的帖子中。 - user5950
2请粘贴/链接以下命令的输出结果:cat /etc/fstabmount - totti
你试过多少个USB设备了? [21373.939990] sdf:未知的分区表。 可能是你的USB硬件问题。尝试创建一个新的分区表。 - totti
我觉得你(和我)都受到了这个错误的困扰:https://bugs.launchpad.net/ubuntu/+source/nautilus/+bug/1021375 - desgua
6个回答

我觉得你遇到了一个bug #1021375

你可以通过将文件夹 ~/.config/nautilus 重命名为 ~/.config/nautilus-bak,然后注销并重新登录来解决这个问题。

  1. mv ~/.config/nautilus ~/.config/nautilus-bak
  2. 注销。
  3. 登录。

我不知道这个问题可能有多种可能的原因,但我不知道为什么这个答案没有得到更多的赞同。这正是我的问题,只是我使用的是nemo文件管理器而不是nautilus。但我确认我可以使用另一种文件管理器(PCManFM)、终端和gedit和LibreOffice的保存文件对话框来创建/编辑/删除文件,所以这个问题只影响nautilus/nemo。你提出的解决方法似乎也起了作用。 - Lee Hachadoorian
2这个答案解决了我的问题。谢谢! - David V.
11killall nautilus就足够了,不需要退出。 :) - isset
对我没用;我不得不卸载usbmount,使用磁盘工具卸载再重新挂载。然后它就正常工作了。在那之前,重命名~/.config/nautilus也没有帮助。 - TNT
8我正在使用Ubuntu 16.04,问题突然出现了。解决方案仍然能够解决这个问题。 - sebers
5"killall nautilus" 像 @isset 建议的那样解决了问题。谢谢。 - Lekhnath

sudo mount -o remount,rw /media/MonterFolderName

这将解决问题。我不确定如何使其永久生效。如果USB设备一开始没有以可读写模式挂载,我也不确定chmod是否有效。
已在Ubuntu 12.10和13上进行了测试。

4我可以建议您使用sudo mount -o remount,rw /media/$USER/* - mchid
4在Ubuntu 16.04上无法工作 :( - knocte
抱歉,这是在旧版本的安卓系统上出现的问题。我曾在Ubuntu 13上进行过测试,如果没记错的话。 - Jalpesh
Ubuntu我是指... - Jalpesh
1mount: cannot remount /dev/sda1 read-write, is write-protected - Pithikos
你用的是哪个版本的Ubuntu? - Jalpesh
在16.04 LTS版本中对我来说没用 - SDsolar

当USB插入时,它会被挂载在/media/<username>上,你应该通过访问控制列表获得权限。
你可以检查权限是什么,例如。
bcbc@23:34:50:~$ getfacl /media/bcbc
# file: media/bcbc
# owner: root
# group: root
user::rwx
user:bcbc:r-x
group::---
mask::r-x
other::---

如果没有访问控制列表,只需删除该目录,它将使用正确的权限重新创建。
sudo rmdir /media/<username>

或者添加ACL:
sudo setfacl -m u:<username>:rx /media/<username>

这个 - 这就是对我最终有效的解决方案。在Mint、Kubuntu、Debian和Ubuntu上都适用。Nautilus从来不是真正的问题(甚至在其中几个发行版中都没有使用)。谢谢! - The NetYeti

问题似乎已经消失了

这是一个关于短期发布的Ubuntu 12.10的5年前的问题。原帖中的链接已不再可用。但如果我插入一个带有持久存储的Ubuntu 18.04 Live USB,会显示:

$ dmesg | tail -n18
[115528.249547] usb-storage 1-9:1.0: USB Mass Storage device detected
[115528.250152] scsi host2: usb-storage 1-9:1.0
[115528.250474] usbcore: registered new interface driver usb-storage
[115528.255685] usbcore: registered new interface driver uas
[115529.281407] scsi 2:0:0:0: Direct-Access     Verbatim STORE N GO       PMAP PQ: 0 ANSI: 6
[115529.282090] sd 2:0:0:0: Attached scsi generic sg1 type 0
[115529.992200] sd 2:0:0:0: [sdb] 30261248 512-byte logical blocks: (15.5 GB/14.4 GiB)
[115529.992998] sd 2:0:0:0: [sdb] Write Protect is off
[115529.993006] sd 2:0:0:0: [sdb] Mode Sense: 23 00 00 00
[115529.993787] sd 2:0:0:0: [sdb] No Caching mode page found
[115529.993797] sd 2:0:0:0: [sdb] Assuming drive cache: write through
[115530.592616]  sdb: sdb1 sdb2 sdb3 sdb4 sdb5
[115530.596279] sd 2:0:0:0: [sdb] Attached SCSI removable disk
[115531.018019] EXT4-fs (sdb5): warning: mounting unchecked fs, running e2fsck is recommended
[115531.470201] EXT4-fs (sdb5): mounted filesystem without journal. Opts: (null)
[115531.480738] ISO 9660 Extensions: Microsoft Joliet Level 3
[115531.483397] ISO 9660 Extensions: Microsoft Joliet Level 3
[115531.512219] ISO 9660 Extensions: RRIP_1991A

与OP的暗示不同,没有关于只读的警告。请注意以下行:

sd 2:0:0:0: [sdb] Write Protect is off

显然,无论5年前的问题是什么,它在今天的Ubuntu 16.04 LTS下已经不存在了。对于今天唯一的其他LTS版本14.04,我也记不起这是个问题。只有SD RAM卡可能会被认为是只读的,这是完全不同的问题。

我昨天在16.04上遇到了这个问题,所以我不同意你说这个问题已经“消失”了。 - Thomas Ward
我应该说的是默认安装。雇主们希望安装各种安全覆盖措施。例如,防止员工将客户数据下载到USB设备中。 - WinEunuuchs2Unix

就我所知,挂载选项和fstab文件都没有问题,你只需要使用下面的命令来获取媒体文件夹所需的正确权限,我会解释为什么。

1)如你所提到的,你当前文件夹的权限如下(如果你已经了解这个并且我打扰到你了,我向你道歉)

drwxr-xr-x 14 root root 4096 Jan 13 19:37 media 这里的d代表目录,第一组rwx代表拥有该对象的用户的权限,对于你来说是root。

第二组rwx代表拥有该对象的组的权限,在这里你只有r-x,这意味着即使你在sudoers文件中或者在管理员组中,你也没有写入它的权限。

第三组rwx代表其他用户,他们既不是该对象的所有者,也不属于拥有该对象所有权的组。在你的情况下,它仍然是r-x。所以这就是为什么你没有写入权限的原因。

2) 所以你需要更改媒体文件夹的权限。(我假设你是管理员组或者在sudoers文件中,因为只有在这种情况下才能生效)。所以这是你需要做的事情。
$ sudo chmod -R 775 /media

3) 这将为您提供对所有自动挂载驱动器所需的写入权限。
请检查并告诉我,如果这不起作用,将告诉您可以采取哪些其他措施来解决此问题。

还有一件事……关于ACL,它不会自动安装在操作系统中……所以除非你已经安装了它……否则在你的情况下就不用考虑。如果你已经安装了,请告诉我。 - Hrish
1不,它不会给你写入权限,而且这也是一个坏主意。即使你在sudo组或admin组(如果有的话)中,也不会给你在根用户所拥有的组中的权限,所以对你来说这不会改变任何事情。请还要考虑文件和目录权限之间的区别,以及在推荐使用-R标志给chmod命令时可能产生的不良后果。首先,/media/$USER的权限应该(现在)是750,并带有一个ACL用于$USER。(Ubuntu 15.04之后的版本必须安装acl软件包,因为systemd依赖于它。) - Zanna
我今天遇到了那个问题,只需在挂载点上执行chmod命令即可解决。我可以向子文件夹写入内容,只是驱动器的根目录出现了问题。因此,chmod 775 /media/user/device就足够了。 - m3nda

我也遇到了这个问题,在我的情况下,是因为fat32文件系统损坏导致只能读取而无法写入。
如果你的USB键是fat32格式,可能是你的文件系统损坏了。
要进行验证,请执行sudo dmesg命令。
[17183.485565] FAT-fs (sdc1): error, corrupted directory (invalid entries)
[17205.406905] FAT-fs (sdc1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.

然后卸载它,使用sudo fsck.vfat your_device_partition对其进行检查,然后再次挂载它。
在我的特定情况下:
sudo fsck.vfat /dev/sdc1
fsck.fat 4.1 (2017-01-24)
0x41: Dirty bit is set. Fs was not properly unmounted and some data may be     corrupt.
1) Remove dirty bit
2) No action
? 1
/T90bis
 Start does point to root directory. Deleting dir. 
Reclaimed 93 unused clusters (1523712 bytes).
Free cluster summary wrong (1248506 vs. really 1248599)
1) Correct
2) Don't correct
? 1
Perform changes ? (y/n) y
/dev/sdc1: 916 files, 704527/1953126 clusters