GNU/Linux >> LINUX-Kenntnisse >  >> Linux

os.MkDir und os.MkDirAll Berechtigungswert?

Sie können direkt die Oktalnotation verwenden:

os.Mkdir("dirname", 0700)


Berechtigungsbits

+-----+---+--------------------------+
| rwx | 7 | Read, write and execute  |
| rw- | 6 | Read, write              |
| r-x | 5 | Read, and execute        |
| r-- | 4 | Read,                    |
| -wx | 3 | Write and execute        |
| -w- | 2 | Write                    |
| --x | 1 | Execute                  |
| --- | 0 | no permissions           |
+------------------------------------+

+------------+------+-------+
| Permission | Octal| Field |
+------------+------+-------+
| rwx------  | 0700 | User  |
| ---rwx---  | 0070 | Group |
| ------rwx  | 0007 | Other |
+------------+------+-------+

Eine Einführung in Unix-Berechtigungen


Häufige Nutzung von Berechtigungen

0755 Wird häufig auf Webservern verwendet. Der Besitzer kann lesen, schreiben, ausführen. Alle anderen können die Datei lesen und ausführen, aber nicht ändern.

0777 Jeder kann lesen, schreiben und ausführen. Auf einem Webserver ist es nicht ratsam, die Berechtigung „777“ für Ihre Dateien und Ordner zu verwenden, da dies jedem erlaubt, bösartigen Code zu Ihrem Server hinzuzufügen.

0644 Nur der Eigentümer kann lesen und schreiben. Alle anderen können nur lesen. Niemand kann die Datei ausführen.

0655 Nur der Besitzer kann die Datei lesen und schreiben, aber nicht ausführen. Alle anderen können die Datei lesen und ausführen, aber nicht ändern.

www.maketecheasier.com/file-permissions-what-does-chmod-777-means/


Verzeichnisberechtigungen unter Linux

Beim Anwenden von Berechtigungen auf Verzeichnisse unter Linux haben die Berechtigungsbits eine andere Bedeutung als bei normalen Dateien. (Quelle)

Bit lesen Der Benutzer kann die im Verzeichnis enthaltenen Dateinamen lesen.
Bit schreiben Der Benutzer kann Dateinamen {hinzufügen, umbenennen, löschen}, WENN auch das Ausführungsbit gesetzt ist.
Bit ausführen Der Benutzer kann das Verzeichnis betreten und auf die darin enthaltenen Dateien zugreifen.

https://unix.stackexchange.com/a/21252

Berechtigungsrechner

Ein praktischer Berechtigungsrechner.


@Daniels Aussage in seiner Antwort ist nicht wirklich korrekt, und es wird auch von einer Dezimalzahl gesprochen und dann eine Oktalzahl verwendet, wie @SashaCrofter in seinem Kommentar richtig darauf hingewiesen hat.

In Wirklichkeit spielt es keine Rolle, in welcher Form Ihr Berechtigungswert ist in, solange er vernünftige Unix-Berechtigungen darstellt.

Da Berechtigungsbits auf POSIX-Dateisystemen in drei Bits vorliegen – drei Bits für den Zugriff von Eigentümern, Gruppen und anderen, plus drei Bits für Modifikatoren (wie Sticky Bits) – ist es üblich, Oktalzahlen zu verwenden, um Berechtigungen als jedes darzustellen Ziffer in einer Oktalzahl stellt einen Drei-Bit-Wert dar.

Wenn Sie also 0700 im Go-Code verwenden, wird die führende 0 entfernt und dient nur dazu, dem Parser mitzuteilen, dass er ein Oktalzahl-Literal sieht, und die folgenden drei Buchstaben stehen in dieser Reihenfolge für die Berechtigungen des Eigentümers, der Gruppe und anderer. Wenn Sie beispielsweise auch das Gruppen-Sticky-Bit setzen und das Dateisystemobjekt gruppenlesbar und ausführbar machen möchten, geben Sie 02750 an und so weiter.

Beachten Sie, dass die tatsächlichen Berechtigungen, die das Dateisystemobjekt erwirbt, weiter durch den aktiven umask moduliert werden des Prozesses, der das Objekt erzeugt.

Um diese Themen besser in den Griff zu bekommen, lesen Sie am besten den chmod Handbuchseiten und allgemeine Literatur zu Unix-ähnlichen Betriebssystemen.


Sie können die umask auf 0 zurücksetzen. Ich würde dies als erstes in meiner Hauptdatei aufrufen

syscall.Umask(0)

Beispiel

_ = os.MkdirAll("/tmp/dirs/1", 0664)
syscall.Umask(0)
_ = os.MkdirAll("/tmp/dirs/2", 0664)

Ergebnis

/tmp/dirs$ stat -c '%A %a %n' *
drw-r--r-- 644 1
drw-rw-r-- 664 2

Linux
  1. Einführung in den Linux-Befehl chmod

  2. Lesen und Korrigieren von SELinux-Ablehnungsmeldungen

  3. Howto MySQL:Erstellen Sie einen Benutzer und erteilen Sie einer Datenbank die Berechtigung

  4. Tput:Kein Wert für $term und kein -t angegeben?

  5. Unix - Pfad von Ordnern und Dateien erstellen

4 nützliche Tipps zu mkdir-, tar- und kill-Befehlen unter Linux

Was bedeutet null in Linux und Computing

Clinews – Lesen Sie Nachrichten und aktuelle Schlagzeilen von Commandline

Ein Windows-Typ in einer Linux-Welt:Benutzer- und Dateiberechtigungen

mkdir- und rmdir-Befehlsbeispiele unter Linux

Journalctl:So lesen und bearbeiten Sie Systemd-Protokolle