Wie kann ich in Python einen Ordner OHNE Schreibschutz erstellen?
Ich habe auf dem Raspberry Pi 3 in Python ein Programm gescchrieben, das unter anderem einen Ordner anlegen soll. Dieser wird mit
os.makedirs("/home/pi/Test")
angelegt, was auch funktioniert. Jedoch ist dieser Ordner dann schriebgeschützt/ich habe kieine Zugriffsberechtigung. Das heißt: - ich kann den Ordner nicht löschen - ich kann keine Dateien in den Ordner kopieren/im Ordner anlegen usw. (außer über die Kommandozeile mit sudo...)
Was kann ich dagegen tun?
Vielen Dank schon mal im Voraus!
3 Antworten
Hallo
angelegt, was auch funktioniert. Jedoch ist dieser Ordner dann schriebgeschützt/ich habe kieine Zugriffsberechtigung.
Der Benutzer der das Verzeichnis anlegt hat selbstverständlich auch alle Berechtigungen darin zu schreiben oder auch das komplette Verzeichnis zu löschen. Wenn das bei Dir aber anders ist, dann wurde das Verzeichnis nicht vom aktuellen Benutzer erstellt.
Was kann ich dagegen tun?
- Es mit dem richtigen Benutzer tun.
Falls Du das Verzeichnis als root angelegt hast oder das Überverzeichnis schon root gehört, dann kannst Du logischerweise als "normaler" Benutzer nichts tun außer den Inhalt ansehen.
mkdir DIRNAME
reicht um ein Verzeichnis anzulegen. Mittels
chown -r USER:GRUPPE DIRNAME
kann man das Verzeichnis nebst allem was sich darin befindet einem Benutzer und seiner Gruppe zuordnen, sofern man Berechtigung hat, also das Verzeichnis erstellt hat oder root ist.
- Warum eigentlich in Phyton?
Linuxhase
kleine Korrektur:
für die rekursive Änderung Großbuchstabe R, also
chown -R ...
schreiben ... aber wenn das Verzeichnis gerade erst angelegt wurde, mach eine rekursive Bearbeitung keinen Sinn.
Ich würde in solchen Beispielen auch immer mit absoluten Verzeichnisnamen arbeiten ... so wäre der Kontext immer eindeutig.
zum Beispiel
mkdir -p /home/User/Test/Beispiel
chown -R User.Gruppe /home/User/Test/Beispiel
Du kannst mit chmod die Rechte ändern
Ist doch sehr gut dokumentiert:
kleine Korrektur:
für die rekursive Änderung Großbuchstabe R, also
chown -R ....
schreiben.
Ich würde in solchen Beispielen auch immer mit absoluten Verzeichnisnamen arbeiten ... so wäre der Kontext immer eindeutig.