如何在没有root用户的情况下将文件写入USB?


10

我有一个4GB的USB记忆棒,已使用对其sudo cfdisk /dev/sdb进行了分区和格式化sudo mkfs /dev/sdb1。当我在Debian Squeeze上运行时,它当前设置为ID 83with System 。Linuxsudo fdisk -l

pmount用来挂载外部USB驱动器。所以,做一个pmount /dev/sdb1坐骑它/media/usb0,因为我有FF。在/etc/fstab

/dev/sdb1    /media/usb0    auto    rw,user,noauto    0    0

发出pmount命令后,将USB安装到/media/usb0-做一个ls -l /media/usb0给我:

drwx------ 2 root root 16384 Mar   2 20:08 lost+found

因此,我着手开展业务,尝试将文件复制到,/media/usb0但是出现以下错误:

$ cp ~/foo.bar /media/usb0
cp: cannot create regular file `/media/usb0/foo.bar': Permission denied

但是当我使用发出相同的cp命令时sudo,我可以复制文件。

为什么会这样?我尝试了其他拥有的USB驱动器,并且能够向他们写入而不会出现此错误。格式化或重新分区USB记忆棒的方式有问题吗?

Answers:


7

您使用ext*文件系统(ext2ext3ext4;我无法调用默认值)来格式化sdb1分区。这是Linux系统上的默认文件系统,并使用Unix文件权限来确定谁可以修改文件或目录。全新的文件系统始终以root拥有(/media/usb0在本例中为)开始root:root,并且通常仅具有允许所有者进行修改的权限。

要自行查看,请挂载文件系统,然后运行ls -ld /media/usb0以查看当前的所有权/权限。我的猜测是:

drwx------ 2 root root 16384 Mar   2 20:08 /media/usb0

一个简单的解决方法是:a)chown将挂载的文件系统添加到您自己的Linux帐户,或b)使用授予所有人写权限chmod

但是,最后,这不是一个好的解决方案,因为创建的文件将归您的UID而非用户名所有;当USB驱动器连接到其他系统时,这将很快导致帐户不匹配。假设您可以完全连接它,即– Windows不加任何技巧就不支持ext3,因此对于文件系统,NTFS(mkfs.ntfs)或FAT32(mkfs.vfat)将是更好的选择。


我试图做sudo mkfs.ntfs /dev/sdb1sudo mkfs.vfat /dev/sdb1,但我得到的错误sudo: mkfs.xxxx: command not found,其中xxxx要么是ntfsvfat。我如何在Debian Squeeze上使用它?
埃里克(Eric)

@Eric:安装ntfs-3g + ntfsprogs + dosfstools
user1686 2012年

好的,我安装了。现在,当我尝试挂载时,出现以下错误:ntfs-3g-mount: failed to open /dev/fuse: Permission denied。我该怎么办?
埃里克(Eric)

4

这在以后的Debian系统(例如jessie)以及某些fat32或ext3,4格式化的USB闪存驱动器上会发生。您需要从/ etc / fstab中删除(或注释掉)以下行:

/dev/sdb1    /media/usb0    auto    rw,user,noauto    0    0

之后,您将在常规用户帐户的许可下自动安装USB驱动器,而不是root用户。在链接上查看有关Debian论坛的详细信息。

之后,您的USB驱动器将在您的用户写许可下顺利安装:)


2

通过命令使用sudo和更改权限chmod

看到我在这个问题中的答案,看看如何使用chmod

我建议您使用chmod 777来允许所有操作(使用ls -l将会显示drwxrwxrwx)。



0

通过GUI转到文件系统媒体。右键单击要复制到的USB驱动器,然后选择-以根打开。输入密码。然后,您可以复制删除,拖放。都好


正如@Sven所暗示的那样,所有权中的root:root是在终端或gui中以root身份打开的原因,或者使用chown更改所有者或组以允许您自己按预期使用该USB。
linuxdev2013
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.