chmod Langform übergeben


  • Gesperrt

    Hi, kann man chmod anstatt einer Zahl (zum Beispiel 644) auch die ausgeschriebene Form übergeben (zum Beispiel rw-r--r--)? Ich kann mit dem Zahlenwert nicht wirklich etwas anfangen, zumal die Ausgabe von ls/ll auch die für Menschen besser lesbare Langform ist...

    Dann zweite Frage... für apache2 müssen die Files entweder einen speziellen Besitzer haben - oder Andere müssen lesen können: https://ibb.co/nzxTpnz

    Verzeichnisse hingegen müssen zudem für alle "ausführbar" sein (755/rwxr-xr-x). (Es kann aber auch sein, dass ich apache2 bislang nicht volls. verstanden habe). 😞

    chmod kann alle Files und Directories aber nicht rekursiv modden. Abhilfe kann durch diese zwei Anweisungen geschaffen werden:
    find . -type d -exec chmod 755 -- {} +
    find . -type f -exec chmod 644 -- {} +

    Das finde ich aber sehr umständlich. Gibt es da vielleicht einen eleganteren Weg?



  • Es gibt auch den "Symbolic Mode" (welche auch in der manpage von chmod beschrieben ist: https://man7.org/linux/man-pages/man1/chmod.1.html)

    Eine übersichtliche Beschreibung findet man hier
    https://ss64.com/bash/chmod.html



  • @EinNutzer0 Wobei der Zahlenmode super simpel ist.
    r = 4
    w = 2
    x = 1
    Dann einfach addieren.


  • Gesperrt

    @Tyrdal sagte in chmod Langform übergeben:

    @EinNutzer0 Wobei der Zahlenmode super simpel ist.
    r = 4
    w = 2
    x = 1
    Dann einfach addieren.

    Es mag sein, dass er für dich einfach erscheint, aber entspricht nicht der Ausgabe von ls/ll, und wenn ich vorher selber addieren muss, dann birgt das eine potentielle Fehleranfälligkeit.

    Diese Inkonsistenzen gehen mir auf den Sack.

    Erfreulicherweise habe ich aber vorhin herausgefunden, dass chmod eine -R-Option hat. Bedauerlicherweise lässt sich der Element-Typ aber nicht mitangeben, was schade ist, weil +x bei Files etwas Anderes bedeutet als bei Directories. Da hätten die Unix-Leute mehr nachdenken können.


  • Mod

    @EinNutzer0 sagte in chmod Langform übergeben:

    Erfreulicherweise habe ich aber vorhin herausgefunden, dass chmod eine -R-Option hat. Bedauerlicherweise lässt sich der Element-Typ aber nicht mitangeben, was schade ist, weil +x bei Files etwas Anderes bedeutet als bei Directories. Da hätten die Unix-Leute mehr nachdenken können.

    Hat keine Ahnung, liest die Anleitung nicht, aber ganz klar: Die anderen sind dumm 🙄

    man chmod:

    …The letters rwxXst select file mode bits for the affected users: read (r), write (w), execute (or search for directories) (x), execute/search only if the file is a directory or already has execute permission for some user (X),…

    Wenn das ein Versuch war, Cunningham's Law zu beschwören: Gratuliere zum Erfolg! Aber irgendwie glaube ich's nicht.


  • Gesperrt

    @SeppJ Ja, du hast recht.

    @EinNutzer0 sagte in chmod Langform übergeben:

    find . -type d -exec chmod 755 -- {} +
    find . -type f -exec chmod 644 -- {} +

    Der Command hierfür sieht folgendermaßen aus:

    chmod --verbose -R a+rwX,g-w,o-w .

    (Dirs 755 und Files 644...)

    ABER: Ich habe auch zum Teil recht, denn das erscheint mir nicht mehr intuitiv bzw. leicht nachvollziehbar.


  • Gesperrt

    Pardon, ich lag doch falsch:

    X würde Files nicht ändern, die bereits (aus welchen Gründen auch immer) "ausführbar" sind - somit sind beide Commands nicht exakt semantisch gleich.

    Meine Einschätzung: a) Man hat nicht daran gedacht oder b) man hat diesen Use-Case für unwahrscheinlich gehalten.


    Edit: Mit chmod --changes -R a-x+rwX,g-w,o-w . funktioniert es. Beide Commands sollten jetzt äquivalent sein.

    Thema gelöst, denke ich. Vielen Dank euerer Antworten.


  • Gesperrt

    Hallo noch mal, ich bin mir doch unsicher, ob es für jeden Zahlenmode auch einen entsprechenden "Symbolic Mode" gibt, der dabei zwischen Files und Directories unterscheiden kann.

    Das müssten: (7*7*7)^2 = 117649 unterschiedliche Kombinationsmöglichkeiten sein (wenn ich mich nicht vertue):

    000 000
    000 001
    ...
    000 007
    000 010
    ... 
    

    Wie kann programmatisch zu jedem Zahlenmode den entsprechenden "Symbolic Mode" finden - um diesen mit (mindestens) 49 unterschiedlich gemodeten Files und Directories testen zu können? Diese Seite https://chmodcommand.com/chmod-755/ ist schon gut, aber hat keine Unterscheidungsmöglichkeit zwischen Files/Dirs dabei. Traue der Sache noch nicht ganz.

    @SeppJ Hast du da eine Idee?


  • Mod

    @EinNutzer0 sagte in chmod Langform übergeben:

    @SeppJ Hast du da eine Idee?

    Ja, du kannst nicht rechnen.


  • Gesperrt

    @SeppJ sagte in chmod Langform übergeben:

    Ja, du kannst nicht rechnen.

    Ich bin ja auch kein Mathematikus. 😋

    Der springende Punkt ist doch, dass mit dem Zahlenmode nicht zwischen Files und Dirs unterschieden werden kann. Demzufolge muss ich sogar den "Symbolic Mode" verwenden. Oder anders gesagt: Der "Symbolic Mode" kann mehr als der Zahlenmode.


  • Mod

    Ja, mit beliebig vielen Buchstaben kann man tatsächlich mehr Information codieren als mit 3 Zeichen zwischen 0 und 7…


  • Gesperrt

    @SeppJ sagte in chmod Langform übergeben:

    Ja, mit beliebig vielen Buchstaben kann man tatsächlich mehr Information codieren als mit 3 Zeichen zwischen 0 und 7…

    Es ist nicht nur der (stark begrenzte) Zeichensatz, sondern allein das Faktum, dass ich mit dem "Symbolic Mode" zwei "Elementaroperationen" auf einmal erledigen kann.

    Das Problem dürfte aber dabei sein, dass ich zwar die Lese- und Schreibrechte entziehen kann, aber nur die Ausführungsrechte anschließend partial (also verzeichnisweise) wiederherstellen kann. Mit den Lese- und Schreibrechten geht das hingegen nicht - ein großes R bzw. W wurde nicht vorgesehen.

    IMHO hat man hier seine Hausaufgaben nur teilweise gemacht.

    Du kannst das aber natürlich gerne anders sehen, und die Erfinder in Schutz nehmen und mir Unkenntnis und Unverständnis vorwerfen... 🤷♂ auch, wenn das nicht die Umgangsform ist, die ich mir gerne wünsche.


  • Gesperrt

    Was ist denn nun? Ist der "Symbolic Mode" ein "gleichmächtiges Äquivalent"/gleichrangig (sorry, mir fällt der korrekte Begriff gerade nicht ein...) zum "Zahlenmode" - oder nicht?

    ... Wehe, jetzt kommen wieder "Ich bin dumm"-Sprüche. 🤫 🥊



  • @EinNutzer0 Da du es offensichtlich nach wie vor nicht geschafft hast mal in die manpage zu schauen, bleibt ein hauch von "Ich bin dumm" definitiv in der Luft.

    Die symbolic notation erlaubt offensichtlich mehr kontrolle als die octal notation, wie du selbst bereits festgestellt hast...also was soll die Frage?


  • Gesperrt

    Ich habe da reingeguckt (oder wenigstens: "quergelesen"), aber hätte gerne eine Bestätigung meiner Hypothese von einer Person, die davon mehr versteht als ich...

    Könnte mich ja auch irren... 😭

    Der 🥊-Handschuh war natürlich nicht wortwörtlich zu verstehen. Ich hatte nicht vor, jemanden zu schlagen oder zu verletzen oder zu schädigen. Ich bin ganz liiiep. 😊


Anmelden zum Antworten