Файлы Chmod рекурсивно дают группе те же права, что и у пользователя

8999

Существует ли команда unix, чтобы дать группе те же права, которые пользователь в настоящее время имеет рекурсивно для каждого файла каталога файлов? Т.е. если файл доступен для записи пользователем, он должен стать доступным для записи в группе, в противном случае он не должен быть доступен для записи в группе и так далее.

12

4 ответа на вопрос

21
Joey Adams

Слава Jamessan за то, что показал нам g = u. В моей системе это работает:

chmod -R g=u dir 
Это также меняет разрешения каталогов. Исходный вопрос указан в файлах. jamessan 14 лет назад 1
@jamessan, какие каталоги есть. Mike Graham 13 лет назад 0
@Mike, just because *nix allows you to treat pretty much everything as a file, doesn't mean that directories actually are files. Even if one were to concede that they are the same, there is a distinct functional difference between changing the permissions of all files in a directory tree and changing the permissions of all files & directories in a directory tree. jamessan 13 лет назад 0
Еще раз есть простое решение моей проблемы. Почему я не удивлен? rzetterberg 12 лет назад 0
9
jamessan
find dir -type f -exec chmod g=u '{}' \+ 
0
ℝaphink

Я не могу придумать простой способ сделать это с помощью существующих команд. Может быть, такой скрипт поможет:

#!/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 

Кроме того, имейте в виду, что некоторые привилегии для пользователей могут не относиться к группам, и наоборот.

0
sateesh

Я не знаю, существует ли такая команда, но, используя функцию find и вызывая ее несколько раз, вы можете достичь
того, что пытаетесь сделать, например

Например:
% find . -type f -perm -u+w -and ! -perm -g+w -exec chmod g+w {} \;

Приведенная выше команда пересекает текущий каталог «.», Находит все файлы, которые имеют разрешение на запись для
пользователя, но не имеют разрешения на запись для группы, и изменяет там разрешение на запись в группу.

Аналогичным образом вы используете приведенный выше вариант для изменения прав доступа к файлу для режима чтения и выполнения для группы.