8

Я использую CentOS, и я хотел бы знать, как изменить разрешения для папки с несколькими файлами в ней.

Я использовал следующие команды для папки от имени пользователя root (скажем, folder = A):

chmod 777 (главная / директория / A)

chmod g+r (A)

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

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

Спасибо!

2 ответа2

13

Чтобы установить разрешения для папки и всех вложенных папок / файлов, вам необходимо использовать рекурсивный параметр в вашей команде:

chmod 777 -R /path/to/directory

Для получения дополнительной информации, используя chmod, смотрите здесь.

ОБНОВИТЬ:

Отказ от ответственности: Использование chmod 777 сделает вашу папку исполняемой для всех. Пожалуйста, смотрите ниже для просмотра настроек

Ваши разрешения установлены с использованием трех чисел.

100 для владельца файла
400 читать
200 написать
100 выполнить

10 для группы файла
40 читать
20 написать
10 выполнить

1 для всех
4 читать
2 записи
1 выполнить

В вашем примере вы даете владельцу, группе и всем полные права на ваш файл. Например, если вы хотите предоставить владельцу и группе полные права, а все остальные - только права на чтение и выполнение, вы должны использовать 775.

Если вы хотите использовать буквенное представление вместо цифр, смотрите здесь

1

Вы можете использовать chmod, чтобы изменить биты прав доступа. Опция -R предназначена для рекурсивного использования - используется для каталогов. Биты объясняются как rwx, т.е. чтение, запись и выполнение. Если r = 1, w = 1 и x = 1. Двоичное число 111 означает 7 в десятичном виде. Итак, вы видите 7. Теперь поля определяются как u = пользователь, группа и другие. Итак, если вы хотите дать разрешение всем, тогда вы выполняете команду chmod -R 777 dir_name. Также вы можете сказать chmod -R a+rwx dir или если вы хотите удалить какое-то разрешение, то вы можете сказать, что chmod -R ax dir - это удалить исполняемое разрешение.

Кроме того, вы можете сделать man на chmod, чтобы узнать больше деталей.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .