Назад | Перейти на главную страницу

Скопируйте разрешения владельца файла в разрешения группы

Как я могу скопировать права пользователя / владельца файла в разрешения группы?

Например, если права доступа 755, я хочу, чтобы они стали 775.

Разъяснение: 755 -> 775 123 -> 113 abc -> aac

Бонус, если я могу сделать это рекурсивно для всех файлов в каталоге.

(То есть для каждого файла права владельца копируются в разрешения группы. У каждого файла могут быть разные разрешения.)

ты можешь использовать g=u сделать групповые завивки такими же, как и пользовательские завивки

ls -l file
-rw------- 1 user users 0 Jun 27 13:47 file

chmod g=u file

ls -l file
-rw-rw---- 1 user users 0 Jun 27 13:47 file

и рекурсивно

chmod -R g=u *

или для некоторых файлов

find /patch/to/change/perms -name '*.txt' -exec chmod g=u {} +

в chmod man-страница твой друг.

Как говорят, изменение разрешений на файлы может быть опасным. С большой властью приходит большая ответственность и все такое. Это мой ответ:

файл / usr / bin / otog:

#!/bin/sh

f=$1
p=`stat -c "%a" $f`
chmod ${p:0:1}${p:0:1}${p:2:1} $f

Пример использования:

find . -exec otog {} \;

Использует стат чтобы получить числовые разрешения, использует chmod для изменения разрешений.

PS: Пожалуйста, посмотрите ответ Иэна, чтобы узнать, как это лучше сделать!

В первую очередь нужно указать свои права.

ls -l /your_directory/
-rwxr-xr-x  1   57 Jul  3 10:13  file1
-rwxr-xr-x  1   57 Jul  3 10:13  file2

чтобы перевести результат в числовое разрешение, используйте это: R = 4, W = 2, X = 1.

Итак, для этого 2 файла разрешение 755.

Получив право, вы должны использовать команду chmod, чтобы изменить его так, как вы хотите:

chmod 775 /your_directory/

Эта команда изменит только право на каталог, но не на файл внутри.

Если вы хотите также изменить правую часть внутри, выполните эту команду:

chmod 775 /your_directory/ -fR

-FR вызовет рекурсивность. (используйте его, только если вы уверены в праве, которое хотите применить, и в файле внутри каталога.)

Если вы хотите изменить только право на file1, тогда:

chmod 775 /your_directory/file1

И так крошится печенье!

/! \ Будьте осторожны, неправильное использование этой команды может уничтожить все разрешения вашей ОС и привести к ее неправильной работе. /! \

пс: посмотрите там чтобы узнать больше о chmod.

Надеюсь, что это поможет вам.