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

15

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


источник

Ответы:

24

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

chmod -R g=u dir
Джои Адамс
источник
1
Это также меняет разрешения каталогов. В оригинальном вопросе указаны файлы.
Jamessan
@jamessan, какие каталоги есть.
Майк Грэм,
@Mike, то, что * nix позволяет вам рассматривать практически все как файл, не означает, что каталоги на самом деле являются файлами. Даже если допустить, что они одинаковы, существует четкая функциональная разница между изменением разрешений всех файлов в дереве каталогов и изменением разрешений всех файлов и каталогов в дереве каталогов.
Jamessan
Еще раз есть прямое решение моей проблемы. Почему я не удивлен?
rzetterberg
0

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

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

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

ℝaphink
источник
0

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

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

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

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

Sateesh
источник