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