Существует ли команда Unix, чтобы дать группе те же полномочия, как пользователь в настоящее время имеет на основе файла файлом рекурсивно для дерева каталогов? Т.е. если файл является пользователем, записываемым, это должно стать записываемой группой, иначе это не должна быть группа, записываемая и так далее.
Благодарность jamessan для показа нам g=u. В моей системе это, кажется, работает:
chmod -R g=u dir
Я не могу думать о простом способе сделать это с существующими командами. Возможно, сценарий как это помог бы:
#!/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
Кроме того, имейте в виду, что некоторый перманент для пользователей не мог бы относиться к группам, и наоборот.
Я не знаю, существует ли такая команда, но использование находят и вызов его несколько раз, можно достигнуть
что Вы пытаетесь сделать, например
Например:
% find . -type f -perm -u+w -and ! -perm -g+w -exec chmod g+w {} \;
Вышеупомянутая команда пересекает текущий каталог ".", находит все файлы, которые имеют разрешение записи для
пользователь, но никакие полномочия записи для группы и изменений там разрешение быть перезаписываемой группой.
Так же Вы используете вариант выше вызова, чтобы изменить полномочия файла для чтения и выполнить режим для группы.