Ein großes Lob an Jamessan, weil er uns gezeigt hat, g = u. Auf meinem System scheint das zu funktionieren:
chmod -R g=u dir
Gibt es einen Unix-Befehl, um der Gruppe dieselben Berechtigungen zu erteilen, die der Benutzer derzeit dateiweise für eine Verzeichnisstruktur rekursiv hat? Das heißt, wenn eine Datei für den Benutzer schreibgeschützt ist, sollte sie für die Gruppe schreibbar sein, andernfalls sollte sie nicht für die Gruppe schreibbar sein und so weiter.
Ein großes Lob an Jamessan, weil er uns gezeigt hat, g = u. Auf meinem System scheint das zu funktionieren:
chmod -R g=u dir
find dir -type f -exec chmod g=u '{}' \+
Ich kann mir keine einfache Möglichkeit vorstellen, dies mit vorhandenen Befehlen zu tun. Vielleicht würde ein solches Skript helfen:
#!/bin/bash DIR="$1" find "$DIR" -ls | while read a b perm c d e f g h i file; do uperm=$ uperm=$(echo "$uperm" | tr -d '-') chmod g=$uperm "$file" done
Beachten Sie außerdem, dass einige Dauerlizenzen für Benutzer möglicherweise nicht für Gruppen gelten und umgekehrt.
Ich weiß nicht, ob ein solcher Befehl existiert, aber mithilfe von find und mehrmals aufrufen, können Sie beispielsweise erreichen,
was Sie versuchen
Zum Beispiel:
% find . -type f -perm -u+w -and ! -perm -g+w -exec chmod g+w {} \;
Der obige Befehl durchläuft das aktuelle Verzeichnis ".", Sucht alle Dateien, die über Schreibberechtigungen für
den Benutzer verfügen , jedoch keine Schreibberechtigungen für die Gruppe, und ändert die Berechtigung, so dass die Gruppe beschreibbar ist.
Auf ähnliche Weise verwenden Sie die Variante "invocation", um die Dateiberechtigungen für den Lese- und Ausführungsmodus für die Gruppe zu ändern .