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


12

Чи є команда unix для надання групі тих же дозволів, які користувач наразі має на основі файлів за файлом, рекурсивно для дерева каталогів? Тобто, якщо файл призначений для запису користувача, він повинен стати груповим для запису, інакше він не повинен бути груповим для запису тощо.

chmod 

Відповіді:


21

Kudos to jamessan за показ нам g = u. У моїй системі це, здається, працює:

chmod -R g=u dir

1
Це також змінює дозволи довідників. У вихідному запитанні вказані файли.
jamessan

@jamessan, які каталоги є.
Майк Грем

@Mike, лише тому, що * nix дозволяє вам обробляти майже все як файл, не означає, що каталоги насправді є файлами. Навіть якщо можна було визнати, що вони однакові, існує чітка функціональна різниця між зміною дозволів усіх файлів у дереві каталогів та зміною дозволів усіх файлів та каталогів у дереві каталогів.
Jamessan

Ще раз знайдеться безперечне вирішення моєї проблеми. Чому я не здивований?
рзеттерберг


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

Також майте на увазі, що деякі ліцензії для користувачів можуть не застосовуватися до груп, і навпаки.


0

Я не знаю, чи існує така команда, але скориставшись знахідкою та посиланням на неї кілька разів, ви можете досягти
того, що намагаєтесь зробити, наприклад

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

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

Аналогічно ви використовуєте варіант вище виклику, щоб змінити дозволи файлів для режиму читання та виконання для групи.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.