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

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

14
задан 15.12.2009, 18:46

4 ответа

Благодарность jamessan для показа нам g=u. В моей системе это, кажется, работает:

chmod -R g=u dir
23
ответ дан 07.12.2019, 11:13
find dir -type f -exec chmod g=u '{}' \+
9
ответ дан 07.12.2019, 11:13

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

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

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

0
ответ дан 07.12.2019, 11:13

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

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

Вышеупомянутая команда пересекает текущий каталог ".", находит все файлы, которые имеют разрешение записи для
пользователь, но никакие полномочия записи для группы и изменений там разрешение быть перезаписываемой группой.

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

0
ответ дан 07.12.2019, 11:13

Теги

Похожие вопросы