Jak zapisywać pliki na USB bez rootowania?


10

Mam pamięć USB o pojemności 4 GB, którą partycjonowałem za pomocą sudo cfdisk /dev/sdbi formatowałem za pomocą sudo mkfs /dev/sdb1. Obecnie jest ustawiony na ID 83w Systemie, Linuxkiedy uruchamiam sudo fdisk -lna moim Debian Squeeze.

Używam pmountdo montowania zewnętrznych napędów USB. Więc robienie tego pmount /dev/sdb1montuje, /media/usb0bo mam ff. linia w /etc/fstab:

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

Po wydaniu pmountpolecenia podłączany jest USB /media/usb0- wykonanie polecenia ls -l /media/usb0daje mi:

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

Więc zajmuję się moją firmą i próbuję skopiować plik, /media/usb0ale pojawia się błąd poniżej:

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

Ale kiedy wydam to samo cppolecenie sudo, jestem w stanie skopiować plik.

Dlaczego to się dzieje? Wypróbowałem inny dysk USB, który mam i mogę na nim pisać bez tego błędu. Czy było coś nie tak ze sposobem, w jaki sformatowałem lub ponownie sformatowałem pamięć USB?

Odpowiedzi:


7

Sformatowałeś partycję sdb1 przy użyciuext* systemu plików ( ext2 , ext3 lub ext4 ; nie mogę przywołać wartości domyślnej). Jest to domyślny system plików w systemach Linux i korzysta z uprawnień do plików Unix, aby określić, kto może modyfikować pliki lub katalogi. Świeże systemy plików zawsze zaczynają się od roota ( /media/usb0w tym przypadku) będącego własnością root:rooti zwykle z uprawnieniami pozwalającymi tylko na modyfikację przez właściciela.

Aby zobaczyć to dla siebie, zamontuj system plików, a następnie uruchom, ls -ld /media/usb0aby zobaczyć bieżącą własność / perms. Moim gościem jest:

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

Prostą poprawką byłoby a) chownzamontowany system plików na własnym koncie Linux lub b) udzielenie wszystkim uprawnień do zapisu chmod.

Jednak ostatecznie nie byłoby to dobre rozwiązanie, ponieważ utworzone pliki stałyby się własnością Twojego UID, a nie nazwy użytkownika; szybko spowodowałoby to niezgodności kont, gdy napęd USB jest podłączony do innego systemu. Zakładając, że możesz go w ogóle podłączyć, to znaczy - Windows nie obsługuje ext3 bez dodatkowych sztuczek, więc NTFS ( mkfs.ntfs) lub FAT32 ( mkfs.vfat) byłyby znacznie lepszym wyborem dla systemu plików.


Próbowałem robić sudo mkfs.ntfs /dev/sdb1i sudo mkfs.vfat /dev/sdb1ale pojawia się błąd sudo: mkfs.xxxx: command not found, gdzie xxxxjest albo ntfsa vfat. Jak sprawić, żeby działało to w Debian Squeeze?
Eric

@Eric: Zainstaluj ntfs-3g + ntfsprogs + dosfstools .
user1686

Ok, zainstalowałem to. Teraz, gdy próbuję zamontować, otrzymuję ten błąd: ntfs-3g-mount: failed to open /dev/fuse: Permission denied. Co mam z tym zrobić?
Eric

4

Dzieje się tak w późniejszych systemach Debiana (np. Jessie), a także w przypadku niektórych dysków flash USB sformatowanych w formacie fat32 lub ext3,4. Musisz usunąć (lub skomentować) następujący wiersz z / etc / fstab :

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

Następnie dysk USB zostanie automatycznie podłączony zgodnie z uprawnieniami konta użytkownika, a nie rootem. Zobacz szczegółowe informacje na forach Debiana na ten link.

Następnie dysk USB będzie się płynnie montować za zgodą użytkownika na zapis :)


2

Używaj sudoi zmieniaj uprawnienia za pomocą chmodpolecenia.

Zobacz moją odpowiedź w tym pytaniu, aby zobaczyć, jak używać chmod:

Sugeruję, aby użyć, chmod 777aby zezwolić wszystkim (użycie ls -lgo pokaże drwxrwxrwx).



0

Przejdź do nośnika systemu plików za pośrednictwem GUI. Kliknij prawym przyciskiem myszy dysk USB, na który chcesz skopiować, i wybierz - Otwórz jako root. Wpisz hasło Następnie możesz skopiować, usunąć, przeciągnąć i upuścić. Wszystko dobrze


Jak wspomniano powyżej w @Sven, root: root we własności jest przyczyną otwarcia jako root w terminalu lub GUI LUB użyj chown, aby zmienić właściciela lub grupę, aby umożliwić sobie korzystanie z tego usb zgodnie z oczekiwaniami.
linuxdev2013
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.