Ich versuche, die Berechtigungen von temp_dir auf 777 zu ändern. Warum funktionieren diese Befehle nicht? Ich verwende übrigens Linux.
kylefoley@kfoley76:/mnt/disks$ chmod 777 /mnt/disks/temp_dir
kylefoley@kfoley76:/mnt/disks$ stat -c "%a %n" temp_dir
755 temp_dir
Ich habe auch den ausführlichen Schalter ausprobiert
kylefoley@kfoley76:/mnt/disks$ chmod -v 777 /mnt/disks/temp_dir
mode of '/mnt/disks/temp_dir' changed from 0755 (rwxr-xr-x) to 0777 (rwxrwxrwx)
kylefoley@kfoley76:/mnt/disks$ stat -c "%a %n" temp_dir
755 temp_dir
Ich verstehe auch nicht, warum ich nicht verwenden kannsudo
kylefoley@kfoley76:/mnt/disks/temp_dir$ sudo chmod 777 fix_mistakes
chmod: cannot access 'fix_mistakes': Permission denied
Auch wenn ich mich als Root-Benutzer anmelde
kylefoley@kfoley76:/mnt/disks/temp_dir$ sudo -i
root@kfoley76:~# sudo chmod 777 /mnt/disks/temp_dir
chmod: cannot access '/mnt/disks/temp_dir': Permission denied
Ich sollte auch hinzufügen, dass dieser Fehler etwas damit zu tun haben muss, dass das betreffende Verzeichnis eine von gcsfuse gemountete Festplatte ist, die über gcloud verfügbar ist. Andere Versuche, die Berechtigungen zu ändern, funktionierten einwandfrei:
kylefoley@kfoley76:~$ mkdir hey
kylefoley@kfoley76:~$ stat -c "%a %n" hey
755 hey
kylefoley@kfoley76:~$ chmod 777 hey
kylefoley@kfoley76:~$ stat -c "%a %n" hey
777 hey
Antwort1
gcsfuse legt beim Mounten Datei- und Verzeichnisberechtigungen fest. Im Einzelnen sind die Optionen:
file_mode
– Berechtigungsbits für Dateien, in Oktaldir_mode
– Berechtigungsbits für Verzeichnisse, in Oktal
Wenn Sie die Optionen nicht angeben, lauten die Standardeinstellungen dir_mode=0755,file_mode=0644
.
Diese Optionen gelten für alle Dateien und Verzeichnisse im Mount. Dieses FUSE-Dateisystem verfügt nicht über die Möglichkeit, die Berechtigungen für bestimmte Dateien oder Verzeichnisse zu ändern, weshalb chmod
nichts geschieht.
Darüber hinaus verfügt gcsfuse über zusätzliche Zugriffsbeschränkungen, die den Zugriff auf den Benutzer beschränken, der das Dateisystem gemountet hat. Einzelheiten:
Als Sicherheitsmaßnahme beschränkt fuse selbst den Dateisystemzugriff auf den Benutzer, der das Dateisystem gemountet hat (vgl.Sicherung.txt). Aus diesem Grund zeigt gcsfuse standardmäßig alle Dateien als Eigentum des aufrufenden Benutzers an. Sie sollten gcsfuse daher als der Benutzer aufrufen, der das Dateisystem verwenden wird, und nicht als Root.
Wenn Sie wissen, was Sie tun, können Sie diese Verhaltensweisen überschreiben mit dem
allow_other
Mount-Option wird von Fuse unterstützt und mit den Flags--uid
und , die--gid
von gcsfuse unterstützt werden. Seien Sie vorsichtig, dies kann Auswirkungen auf die Sicherheit haben!
Aus diesem Grund können Sie als anderer Benutzer nicht auf die Einbindung zugreifen. Um anderen Benutzern den Zugriff auf die Einbindung zu ermöglichen, geben Sie dies allow_other
in Ihren Einbindungsoptionen an.
Antwort2
Ich konnte das Problem folgendermaßen lösen: Ich musste zu den Cloud API-Zugriffsbereichen gehen und unter der VM-Konfiguration überprüfen, ob Lese-, Schreib- oder Vollzugriff auf den Speicher besteht. Dazu musste ich in der gcloud-Konsole, in der meine Instanzen aufgelistet sind, auf „Bearbeiten“ klicken. Unten auf der Seite gab es die Speicherbeschränkung, die ich auf „Voll“ geändert habe. Das hat es geschafft.