Як записати файли на USB, не використовуючи root?


10

У мене є USB-накопичувач на 4 Гб, який я розділив за допомогою sudo cfdisk /dev/sdbта відформатування за допомогою sudo mkfs /dev/sdb1. Наразі він встановлений на ідентифікатор 83із системою, Linuxколи я працюю sudo fdisk -lна своєму Debian Squeeze.

Я використовую 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-накопичувач?

Відповіді:


7

Ви відформатували розділ sdb1 за допомогоюext* файлової системи ( ext2 , ext3 або ext4 ; я не можу згадати за замовчуванням). Це файлова система за замовчуванням у системах Linux, і використовує дозволи файлів Unix, щоб визначити, хто може змінювати файли чи каталоги. Свіжі файлові системи завжди починаються з /media/usb0власності кореня ( в даному випадку) root:rootі, як правило, з дозволами, що дозволяють лише зміни власником.

Щоб побачити це для yoruself, встановіть файлову систему та запустіть, ls -ld /media/usb0щоб побачити поточне право власності / perms. Я здогадуюсь:

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

Найпростішим виправленням було б: а) chownзмонтована файлова система до вашого власного облікового запису Linux, або б), щоб дати дозвіл на письмовий доступ усім chmod.

Однак, врешті-решт, це не буде хорошим рішенням, оскільки створені файли стануть власниками вашого UID, а не ім'ям користувача; це швидко призведе до невідповідностей облікових записів, коли USB-накопичувач підключений до іншої системи. Якщо припустити, що ви можете підключити його взагалі, тобто Windows не підтримує ext3 без зайвих хитрощів, тому NTFS ( mkfs.ntfs) або FAT32 ( mkfs.vfat) буде набагато кращим вибором для файлової системи.


Я намагався робити sudo mkfs.ntfs /dev/sdb1і , sudo mkfs.vfat /dev/sdb1але я отримую помилку , sudo: mkfs.xxxx: command not foundколи xxxxабо ntfsі vfat. Як змусити це працювати над Debian Squeeze?
Ерік

@Eric: Встановіть ntfs-3g + ntfsprogs + dosfstools .
grawity

Гаразд, я це встановив. Тепер , коли я намагаюся встановити, я отримую цю помилку: ntfs-3g-mount: failed to open /dev/fuse: Permission denied. Що я роблю з цього приводу?
Ерік

4

Це відбувається на більш пізніх системах Debian (наприклад, jessie), а також на деяких флеш-накопичувачах у форматі fat32 або ext3,4. Вам потрібно видалити (або прокоментувати) наступний рядок із / 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).


1

Якщо ваша файлова система FAT16 або FAT32, ви повинні використовувати цю команду:

sudo mount -t vfat /dev/sdb1 /media/usb0 -o uid=1000,gid=1000,utf8,dmask=027,fmask=137

Для отримання додаткової інформації відвідайте посилання https://help.ubuntu.com/community/Mount/USB#Mount_the_Drive


0

Перейдіть до файлових системних носіїв через GUI. Клацніть правою кнопкою миші на USB-накопичувач, на який потрібно скопіювати, та виберіть - Відкрити як Root. Введіть пароль. Потім ви можете скопіювати видалення, перетягування та видалення. Все добре


Як нагадав вище @Sven, root: root у власності є причиною, відкритою як root у терміналі або gui АБО використовуйте chown, щоб змінити власника або групу, щоб дозволити собі використовувати цей usb як очікувалося.
linuxdev2013
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.