Mam skrypt, który muszę wykonać na partycji NTFS. Zezwolenie na skrypt jest ustawione na 600.
Próbowałem zmodyfikować uprawnienia, uruchamiając program chmod 755 script.sh
, który nie zgłasza awarii ani nic, ale nie zmienia również uprawnień do pliku:
$ stat script.sh
File: `script.sh'
Size: 297070 Blocks: 584 IO Block: 4096 regular file
Device: 811h/2065d Inode: 35515 Links: 1
Access: (0600/-rw-------) Uid: ( 1000/ xxxxxx) Gid: ( 1000/ xxxxxx)
Access: 2010-09-30 14:05:16.041621000 -0700
Modify: 2010-09-30 14:05:05.070157000 -0700
Change: 2010-09-30 14:05:05.070475000 -0700
$ chmod 755 script.sh
$ stat script.sh
File: `script.sh'
Size: 297070 Blocks: 584 IO Block: 4096 regular file
Device: 811h/2065d Inode: 35515 Links: 1
Access: (0600/-rw-------) Uid: ( 1000/ xxxxxx) Gid: ( 1000/ xxxxxx)
Access: 2010-09-30 14:05:16.041621000 -0700
Modify: 2010-09-30 14:05:05.070157000 -0700
Change: 2010-09-30 14:05:05.070475000 -0700
Jak widać, pozostaje niezmieniony.
permissions
ntfs
chmod
Nathan Osman
źródło
źródło
Odpowiedzi:
Tryb zależy od opcji montowania partycji (nie można go zmienić za pomocą chmod).
Dla „755” w plikach i „777” w katalogach użyłbyś czegoś takiego
źródło
/dev/whatever
i/mnt/whatever
jeśli muszę zmienić uprawnienia do mojej partycji HDD o nazwie/media/Prtn
ntfs-3g.usermap
. Zobacz poniżej ...W przeciwieństwie do tego, co większość ludzi uważa, NTFS jest systemem plików zgodnym z POSIX¹ i możliwe jest korzystanie z uprawnień w NTFS .
Aby to włączyć, potrzebujesz „Pliku mapowania użytkownika” lub po prostu podaj
permissions
opcję podczas montażu (gdy nie jest wymagana kompatybilność z Windows). Mapuje to użytkowników Linuksa w twoim systemie z identyfikatorami użytkowników takimi jak NTFS / Windows, którzy używają ich wewnętrznie.Zobacz stronę podręcznika ntfs-3g, aby uzyskać informacje i przykłady. Jeśli potrzebujesz więcej informacji, zapoznaj się z zaawansowaną dokumentacją ntfs-3g na temat własności i uprawnień .
(Uwaga: nie działa to w systemach plików FAT).
¹ Tak, może także przechowywać nazwy plików, które są poprawne w systemie Linux / Unix, ale nie w systemie Windows, obsługuje dowiązania symboliczne i dowiązania twarde itp.
źródło
sudo ntfs-3g.usermap /dev/disk/by-label/MY-NTFS
a potemsudo mv UserMapping /media/MY-NTFS/.NTFS-3G/
chmod 655 /some/file
na partycji NTFS zamontowanej w systemie Linux? Próbuję wymyślić, jak scalić moją partycję domową z Linuksa do c: \ Users. Czy użycie mapy użytkownika pozwoli mi zachować wszystkie uprawnienia? Planowałem zamontować katalog c: \ Users w katalogu / home w systemie Linux.ntfs-3g manpage
link uszkodzonyW przypadku partycji NTFS użyj
permissions
opcji w fstab.Najpierw odmontuj partycję NTFS.
Zidentyfikuj identyfikator UUID partycji
blkid
Następnie edytuj
/etc/fstab
I dodaj lub edytuj wiersz dla partycji NTFS
Zrób punkt montowania (w razie potrzeby)
Teraz zamontuj partycję
Opcje, które ci dałem,
auto
automatycznie zamontują partycję po uruchomieniu iusers
umożliwią użytkownikom montowanie i podłączanie.Następnie możesz użyć chown i chmod na partycji NTFS.
źródło
users
oznacza noexec , nosuid i nodev . nie jest W jaki sposób użytkownicy mogą montować / montowaćnoexec
podczas ustawiania?Oprócz ustawienia fmask i / lub dmask w powyższej odpowiedzi htorque, jeśli chcesz wykonywać skrypty na dysku, musiałem również ustawić opcję montowania „exec”.
Przykładem może być:
źródło
Zawsze możesz jawnie wywołać interpreter skryptów, w którym to przypadku uprawnienia do wykonywania nie są wymagane. Jeśli skrypt używa bash , co można zweryfikować, patrząc na pierwszą linię skryptu, po prostu uruchom
Pamiętaj, że skrypt wywołuje inne skrypty lub pliki binarne na tej samej partycji, to nie zadziała. Zauważ też, że strategia nie działa z plikami binarnymi, w przeciwieństwie do tekstowych plików skryptowych napisanych w Bash Script, Perl, Python lub podobnych.
źródło
/lib64/ld-linux-x86-64.so.2 ./program.bin
dla programów 64-bitowych i/lib/ld-linux.so.2 ./program.bin
32-bitowych.Zgodnie z sekcją Własność i uprawnienia dokumentacji NTFS-3G, możemy użyć opcji montowania, aby kontrolować dostęp do plików i ich tworzenie . Kombinacje są bardzo skomplikowane (patrz dwie tabele tam). Też nie czytam i nie rozumiem ich wszystkich. Na przykład nie wiem, czy listy ACL POSIX są wybierane podczas kompilacji, czy nie z pakietu binarnego NTFS-3G. Ale najlepsze, co wyszedłem, to użycie pliku mapowania użytkowników w połączeniu z niektórymi opcjami montowania w celu przybliżenia prawdopodobnego odwzorowania własności pliku i uprawnień między systemem Windows i Linux.
Ostrzeżenie : To jest tylko to, co działa najlepiej w przypadku mojego udostępniania partycji danych NTFS (dysk
D:
w systemie Windows) między podwójnie uruchomionym systemem Windows 8 a Kubuntu 14.04. Instrukcje są zapisywane z dokładną retrospekcją, ale nie są dokładnie testowane. Powtarzanie całej procedury jest zbyt męczące i żmudne. Postępuj zgodnie z nim na własne ryzyko. Ale jeśli tak, podziel się swoim doświadczeniem. Jeśli zdecydujesz się postępować zgodnie z instrukcjami, przeczytaj je w całości, aby mieć cały obraz przed faktycznym działaniem. Powodzenia!Dobra, proszę bardzo! Szczegółowe instrukcje składają się z trzech części. Część 1 powinna zostać przeprowadzona w systemie Windows, a część 2 w systemie Linux. Część 3 jest do testu.
Część 1
Sekcja Mapowanie użytkowników w dokumentacji NTFS-3G określa dwie wersje do skonfigurowania mapowania użytkowników między Windows i Linux, jedną wersję Windows i jedną wersję Linux. Moje doświadczenie było to, że wersja Linux skończyło się z Miss . Konto Linux nie zostało zamapowane na moje konto Windows, ale jakieś nieznane konto pojawiło się pod SID . Rezultatem był bałagan, ponieważ to nieznane konto przejmuje własność wszystkich plików mojego konta Windows. W takiej sytuacji, o ile nie masz przywileju administracyjnego do odzyskania własności, pliki na koncie Windows stają się niedostępne. Ale nawet jeśli sobie poradzisz, nadal tak jestzłe mapowanie. Oznacza to, że później wszelkie pliki utworzone w systemie Linux zostaną przypisane do tego nieznanego konta w systemie Windows, a pliki w systemie Windows zostaną przypisane do rootowania w systemie Linux (o ile dobrze pamiętam). Tak więc w systemie Windows musisz ponownie przejąć własność, a w systemie Linux zmienić własność. Nie tego się spodziewamy. Po kilku beznadziejnych próbach rozwiązania problemu poddałem się i wróciłem do wersji Windows. Ten zadziałał. Szczegółowe instrukcje wyodrębnione z odpowiedniej sekcji dokumentacji NTFS-3G są następujące:
Pobierz narzędzie usermap , wypakuj je gdzieś (w moim przypadku dysk
C:
), lepiej poza partycją NTFS (w moim przypadku dyskD:
), aby je udostępnić.Otwórz wiersz poleceń systemu Windows. Przejdź do wyodrębnionego katalogu
tools
(domyślnie)usermap
narzędzia. Następnie uruchom następujące polecenie:To generuje szablon i przekierowuje go do pliku o nazwie
UserMapping
. Otwórz plik za pomocą edytora tekstu, powiedzmy Notatnik, powinieneś zobaczyć następujące linie:Przypuszczalnie pierwszy
SID
powinien być identyfikator SID użytkownika, a drugi identyfikator SID grupy. Możesz je sprawdzić odpowiednio za pomocą poleceńwhoami /user
iwhoami /groups
.Po upewnij się, że identyfikatory są poprawne, postępując zgodnie z instrukcjami w komentarzu, że jest zmiana
user
wuser::SID
kolejce do swojej nazwy użytkownika igroup
na:group:SID
linii do swojej pierwotnej nazwy grupy w systemie Linux. W Ubuntu są takie same. Ponadto dodaj nazwę grupy Linux również po pierwszym dwukropkuuser::SID
linii. Linia powinna więc wyglądać mniej więcej takuser:group:SID
. Wygląda na to, że jeśli tego nie zrobisz, pliki utworzone w systemie Windows zostaną przypisane douser:root
systemu Linux.Zapisz plik. Przenieś go do katalogu o nazwie
.NTFS-3G
(utwórz go, jeśli jeszcze nie istnieje) na partycji NTFS, aby go udostępnić (w moim przypadku dyskD:
).Ten krok jest do przetestowania w części 3. Na udostępnionej partycji NTFS utwórz nowy katalog i nowy plik.
Część 2
Teraz uruchom system Linux.
sudo
edytować plik/etc/fstab
. Dodaj lub zmodyfikuj wiersz dla współużytkowanej partycji NTFS do czegoś takiego:Zasadnicze znaczenie ma ustawienie
umask
(dmask
ifmask
może również działać, ale nie testowane). Wybierz dlaumask
siebie wartość , chociaż wybrałem077
. Wydaje się, że bez tego ustawienia zostaną przyznane pełne uprawnieniao
dla nowo utworzonych plików.Zapisz plik. Teraz
sudo mount
lub ponownie podłącz (sudo umount
i wtedysudo mount
) udostępnioną partycję NTFS (w moim przypadku/data
):Część 3
Teraz (wciąż w systemie Linux)
cd
do punktu montowania (w moim przypadku/data
),ls -l
pliki tam. Sprawdź, czy ich własność i uprawnienia są odpowiednio zgodne z podanymi wUserMapping
pliku iumask
ustawionym w/etc/fstab
(dopasowanie między uprawnieniami iumask
wymaga pewnych obliczeń dopełniania, zobacz man (1) umask, aby uzyskać więcej informacji). Jeśli to zrobią, gratulacje, połowa celu zostanie osiągnięta. W przeciwnym razie biedny jesteś. Zapytaj Ubuntu lub Windows.Następnie utwórz nowy katalog i nowy plik.
ls -l
aby sprawdzić ich własność i uprawnienia. Własność powinna być jak zwykle nazwą użytkownika i podstawową grupą. Uprawnienia powinny być zgodne zumask
. Teraz uruchom ponownie komputer i uruchom system Windows. Znajdź na udostępnionej partycji NTFS katalog i plik, który właśnie utworzyłeś w systemie Linux. Sprawdź ich właściwości, aby zobaczyć, czy są przypisane do twojego konta Windows. Jeśli tak, gratulacje, wszyscy jesteście skończeni. W przeciwnym razie pech. Zapytaj Windows lub Ubuntu.EOF
źródło
Wiem, że stary wątek, ale wciąż aktualny i brakuje konkretnej wskazówki użycia, skomponowanej z różnych sugestii na różnych innych forach / wątkach i przetestowanej na Ubuntu GNOME 13.04, gdzie chciałem, aby dysk zewnętrzny zawierał bibliotekę Steam ...
Na przykład, gdy partycja NTFS znajduje się na zewnętrznym dysku USB - co oznacza, że partycja jest montowana w locie po połączeniu - wówczas możesz użyć następującej metody, aby utworzyć udev montować partycje NTFS z prawami do wykonywania.
Otwórz okno terminala i wykonaj:
Następnie wklej ten wiersz do pustego / nowego pliku (jeśli nie, to wyjdź z nano i uruchom ponownie polecenie, ale rozpoczynając nazwę pliku wyższą liczbą, np. 91 -...):
Następnie zapisz i zamknij. Odłącz dysk, a następnie wykonaj w terminalu:
Następnie podłącz ponownie dysk i ciesz się :)
źródło
Wszystkie kroki:
Zainstaluj
ntfs-3g
:Odmontuj partycję NTFS :
Użyj,
ntfs-3g.usermap
aby wygenerowaćUserMapping
plik:lub
Zainstaluj ponownie partycję NTFS, aby dodać
UserMapping
plik:Zaktualizuj swój
fstab
plik:Zaktualizuj linię montażu :
#
na początku znak „ a”.UUID=34A0456DA04536A0 /mnt/windows ntfs defaults,uid=1000,gid=1000 0 0
UUID=34A0456DA04536A0 /mnt/windows ntfs-3g defaults 0 0
(Użyjntfs-3g
i tylkodefault
opcja)Powinno to wyglądać mniej więcej tak:
#UUID=34A0456DA04536A0 /mnt/windows ntfs defaults,uid=1000,gid=1000 0 0
UUID=34A0456DA04536A0 /mnt/windows ntfs-3g defaults 0 0
Na koniec podłącz ponownie, używając
fstab
:Zrób to raz dla każdej partycji NTFS, którą masz!
OSTRZEŻENIE W SYSTEMIE WINDOWS!
Sprawdzam to w systemie Windows 7+ i uprawnienia wpływają na system operacyjny Windows! Zmieniam uprawnienia do mojego katalogu domowego na partycji Windows, a kiedy ponownie użyłem systemu Windows, zobaczyłem, że użytkownik był zepsuty!
źródło
Nie ma powiązanych pytań dotyczących urządzeń USB. Ta odpowiedź zapewnia brzydkie włamanie, jeśli chcesz automatycznie podłączyć każde urządzenie USB z uprawnieniami do wykonywania.
źródło
Zamontuj partycję NTFS na dysku USB z niestandardowymi uprawnieniami i właścicielem
W systemie Linux tryb NTFS (i FAT32) jest określony przez opcje montowania partycji . Nie można tego zmienić za pomocą chmod.
Założenie: dysk USB jest widoczny jako
sdb1
, zmodyfikuj, aby dopasować literę dysku i numer partycji w twoim przypadku . Ogólna składnia jest takasdxn
, gdziex
litera dyskun
jest numerem partycji, jak widać na przykładsudo lsblk -f
Przygotowanie
Odmontuj partycję NTFS.
Utwórz niestandardowy punkt montowania (tylko jeśli chcesz nowy punkt montowania), na przykład za pomocą
Sprawdź swój
uid
identyfikator użytkownika (zwykle jest to 1000, czasem 1001 lub 1002 ...)i użyj tego numeru, jeśli chcesz przejąć własność (domyślnie jest
root
).Zamontuj partycję NTFS
Przykład 1 (bez uprawnień do wykonywania plików, brak dostępu dla „innych”),
w takim przypadku możesz uruchomić skrypt za
this-script
pomocąPrzykład 2 (z uprawnieniami do wykonywania plików, brak dostępu dla „innych”),
W takim przypadku możesz uruchomić skrypt za
this-script
pomocąi możesz uruchamiać programy wykonywalne również z tej lokalizacji (nie jest to zalecane).
Przykład 3 (pełne uprawnienia dla wszystkich, co jest wygodne, ale nie bezpieczne, gdy jest kilku użytkowników),
źródło
/media$ sudo mkdir -p sdb1
/media$ sudo mount -o rw,users,umask=000,exec /dev/sdb1 ./sdb1/ mount: block device /dev/sdb1 is write-protected, mounting read-only
chkdsk /f X:
zgodnie z tym linkiem ubuntuforums.org /… - Jeśli nadal nie ma szczęścia, wykonaj