Jak mogę tworzyć i edytować pliki z udziału plików Windows w systemie Linux (CentOS)?

0

Mam udostępniony dysk Windows, który zamontowałem na moim komputerze CentOS 7 za pomocą instrukcje Red Hat chciałbym teraz tworzyć i edytować pliki. Jednak muszę być podniesiony, aby tworzyć i edytować pliki w dowolnym folderze na dysku. Próbowałem użyć chmod aby umożliwić wszystkim użytkownikom dostęp, ale bezskutecznie, a nawet próbowali odmontować / ponownie zainstalować dysk.

Jak uzyskać nieograniczony dostęp do dysku?

(Tworzę te pliki za pomocą Matlaba, a Matlaba nie można uruchomić za pośrednictwem sudo, więc po prostu pozostanie na podwyższeniu nie wchodzi w grę).

Wydruk terminala

[millironx@mymachine ~]$ sudo umount /mnt
[millironx@mymachine ~]$ sudo mount -t cifs -o username=millironx,password=mypassword,domain=AD //files.example.com/shared /mnt
[millironx@mymachine ~]$ cd /mnt/matlab-program
[millironx@mymachine matlab-program]$ touch testfile
touch: cannot touch 'testfile': Permission denied
[millironx@mymachine matlab-program]$ sudo chmod +rwx /mnt/matlab-program
[millironx@mymachine matlab-program]$ touch testfile
touch: cannot touch 'testfile': Permission denied
[millironx@mymachine matlab-program]$ sudo touch testfile
[millironx@mymachine matlab-program]$ ls
testfile
[millironx@mymachine matlab-program]$ rm testfile
rm: remove write-protected regular empty file 'testfile`? y
rm: cannot remove 'testfile': Permission denied
[millironx@mymachine matlab-program]$ sudo rm testfile
[millironx@mymachine matlab-program]$ sudo matlab
sudo: matlab: command not found
Milliron X
źródło

Odpowiedzi:

1

Potrzebujesz uid= I może gid= opcja montażu. Widzieć man 8 mount.cifs:

uid=arg
ustawia uid, który będzie właścicielem wszystkich plików lub katalogów w zamontowanym systemie plików, gdy serwer nie udostępnia informacji o własności. Może być określony jako nazwa użytkownika lub numeryczny identyfikator użytkownika. Jeśli nie jest określony, domyślnie jest uid 0. The mount.cifs pomocnik musi być w wersji 1.10 lub nowszej, aby obsługiwać określanie identyfikatora uid w postaci nieliczbowej. Więcej informacji można znaleźć w sekcji dotyczącej własności plików i katalogów oraz uprawnień poniżej.

gid=arg
ustawia gid, który będzie właścicielem wszystkich plików lub katalogów w zamontowanym systemie plików, gdy serwer nie udostępnia informacji o własności. Może być określony jako nazwa grupy lub numeryczny gid. Gdy nie jest określony, domyślnie jest gid 0. The mount.cifs pomocnik musi być w wersji 1.10 lub nowszej, aby obsługiwać określanie gid w postaci nieliczbowej. Więcej informacji można znaleźć w sekcji dotyczącej własności plików i katalogów oraz uprawnień poniżej.

[…]

Prawa własności do plików i katalogów
Podstawowy protokół CIFS nie udostępnia informacji o własności uniksów ani trybu dla plików i katalogów. Z tego powodu pliki i katalogi na ogół wydają się być własnością dowolnych wartości uid= lub gid= opcje są ustawione i będą miały uprawnienia ustawione na domyślne file_mode i dir_mode dla wierzchowca. Próba zmiany tych wartości przez chmod / chown zwróci sukces, ale nie przyniesie efektu.   […]

W tej sekcji wymieniono także scenariusz, w którym „klient i serwer negocjują rozszerzenia uniksowe” oraz scenariusz, w którym „możliwe jest także emulowanie ich lokalnie na serwerze” itp.

W twoim przypadku proste uid= i gid= powinno wystarczyć. Zauważ, że określają użytkownika i grupę Unix, uid= i username= są różne i na ogół mogą przyjmować różne wartości.

sudo mount -t cifs -o uid=millironx,gid=users,username=millironx,password=mypassword,domain=AD //files.example.com/shared /mnt

Możesz również znaleźć to pytanie przydatny.

Kamil Maciorowski
źródło