Wie kann ich Dateien aus einer Windows-Dateifreigabe unter Linux (CentOS) erstellen und bearbeiten?

363
Milliron X

Ich habe ein gemeinsam genutztes Windows-Laufwerk, das ich auf meinem CentOS 7-Computer mit den Anweisungen von Red Hat gemountet habe, auf denen ich jetzt Dateien erstellen und bearbeiten möchte. Ich muss jedoch zum Erstellen und Bearbeiten von Dateien in einem beliebigen Ordner auf dem Laufwerk angehoben werden. Ich habe versucht chmod, allen Benutzern Zugriff zu gewähren, jedoch ohne Erfolg, und ich habe sogar versucht, das Laufwerk zu deinstallieren / erneut bereitzustellen.

Wie kann ich nicht erhöhten Zugriff auf das Laufwerk erhalten?

(Ich erstelle diese Dateien mit Matlab, und Matlab kann nicht über ausgeführt werden. Es sudoist daher keine Option, erhöht zu bleiben.)

Terminalausdruck

[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 
0

1 Antwort auf die Frage

1
Kamil Maciorowski

Sie brauchen uid=und vielleicht gid=montieren Option. Sehen man 8 mount.cifs:

uid=arg
Legt die Benutzer-ID fest, die alle Dateien oder Verzeichnisse im angehängten Dateisystem besitzen wird, wenn der Server keine Besitzinformationen bereitstellt. Es kann entweder ein Benutzername oder eine numerische Benutzer-ID angegeben werden. Wenn nicht angegeben, ist die Standardeinstellung UID 0. Der mount.cifsHelfer muss mindestens Version 1.10 haben, um die Angabe der UID in nicht numerischer Form zu unterstützen. Weitere Informationen finden Sie im Abschnitt "Besitz von Dateien und Verzeichnissen und Berechtigungen".

gid=arg
Legt die GID fest, die alle Dateien oder Verzeichnisse im bereitgestellten Dateisystem besitzt, wenn der Server keine Besitzinformationen bereitstellt. Es kann entweder als Gruppenname oder als numerische gid angegeben werden. Wenn nicht angegeben, ist der Standardwert gid 0. Der mount.cifsHelfer muss mindestens Version 1.10 haben, um die Angabe der GID in nicht numerischer Form zu unterstützen. Weitere Informationen finden Sie im Abschnitt "Besitz von Dateien und Verzeichnissen und Berechtigungen".

[…]


Besitz von Dateien und Verzeichnissen und Berechtigungen Das zentrale CIFS-Protokoll bietet keine Informationen zum Besitz von Unix oder den Modus für Dateien und Verzeichnisse. Aus diesem Grund scheinen Dateien und Verzeichnisse im Allgemeinen im Besitz der Werte zu sein, für die uid=oder die gid=Optionen festgelegt sind, und die Berechtigungen sind auf den Standard file_modeund dir_modefür das Einhängen festgelegt. Der Versuch, diese Werte über chmod/ zu ändern, chownführt zum Erfolg, hat jedoch keine Auswirkungen. […]

In diesem Abschnitt wird auch ein Szenario erwähnt, in dem "der Client und der Server Unix-Erweiterungen aushandeln" und ein Szenario, in dem "es auch möglich ist, sie lokal auf dem Server zu emulieren" usw.

In Ihrem Fall einfach uid=und gid=sollte ausreichen. Beachten Sie, dass sie Unix-Benutzer und -Gruppen angeben uid=und username=sich unterscheiden und im Allgemeinen andere Werte annehmen können.

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

Diese Frage kann auch hilfreich sein.