Chmod-Dateien, um der Gruppe rekursiv dieselben Berechtigungen wie dem Benutzer zu erteilen


15

Gibt es einen Unix-Befehl, um der Gruppe die gleichen Berechtigungen zu erteilen, die der Benutzer derzeit für einen Verzeichnisbaum Datei für Datei rekursiv hat? Dh wenn eine Datei benutzerbeschreibbar ist, sollte sie gruppenbeschreibbar werden, andernfalls sollte sie nicht gruppenbeschreibbar sein und so weiter.

chmod 

Antworten:


24

Ein großes Lob an Jamessan, dass er uns g = u gezeigt hat. Auf meinem System scheint dies zu funktionieren:

chmod -R g=u dir

1
Das ändert auch die Berechtigungen von Verzeichnissen. Die ursprüngliche Frage spezifizierte Dateien.
Jamessan

@ Jamessan, welche Verzeichnisse sind.
Mike Graham

@Mike, nur weil * nix es Ihnen ermöglicht, so ziemlich alles als Datei zu behandeln, heißt das nicht, dass Verzeichnisse tatsächlich Dateien sind. Selbst wenn man zugeben würde, dass sie identisch sind, gibt es einen deutlichen funktionalen Unterschied zwischen dem Ändern der Berechtigungen aller Dateien in einem Verzeichnisbaum und dem Ändern der Berechtigungen aller Dateien und Verzeichnisse in einem Verzeichnisbaum.
Jamessan

Es gibt wieder eine einfache Lösung für mein Problem. Warum bin ich nicht überrascht?
Rzetterberg


0

Ich kann mir keine einfache Möglichkeit vorstellen, dies mit vorhandenen Befehlen zu tun. Vielleicht würde ein Skript wie dieses helfen:

#!/bin/bash

DIR="$1"

find "$DIR" -ls | while read a b perm c d e f g h i file; do
   uperm=${perm:1:3}
   uperm=$(echo "$uperm" | tr -d '-')
   chmod g=$uperm "$file"
done

Beachten Sie auch, dass einige Berechtigungen für Benutzer möglicherweise nicht für Gruppen gelten und umgekehrt.


0

Ich weiß nicht, ob ein solcher Befehl vorhanden ist, aber wenn Sie find verwenden und ihn einige Male aufrufen, können Sie beispielsweise das erreichen,
was Sie versuchen

Beispielsweise:
% find . -type f -perm -u+w -and ! -perm -g+w -exec chmod g+w {} \;

Der obige Befehl durchläuft das aktuelle Verzeichnis ".", Findet alle Dateien, die Schreibrechte für
den Benutzer, aber keine Schreibrechte für die Gruppe haben, und ändert dort die Berechtigung, gruppenschreibbar zu sein.

In ähnlicher Weise verwenden Sie die obige Variante, um die Dateiberechtigungen für den Lese- und Ausführungsmodus für die Gruppe zu ändern .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.