Автоматически устанавливается sudo chmod 777
Есть ли способ автоматически установить sudo chmod 777
для всех файлов, папок и подпапок в каталоге. sudo chmod 777
должен автоматически устанавливаться при создании папки или файла в родительском каталоге.
Есть способ сделать это?
2 ответа
В Bash выполнить umask 000
и тогда каждый создаваемый вами каталог будет иметь права доступа 777, а каждый создаваемый вами файл будет иметь права доступа 666. По умолчанию вы не можете создавать исполняемые файлы, вам нужно явно сделать их так, используя chmod. Это функция безопасности.
Обратите внимание, что umask является "побитовым xor" для желаемых прав доступа к файлу, и для получения наиболее разрешающего режима из 777 вам необходимо использовать umask 000.
В последних системах Ubuntu вы устанавливаете общесистемный umask в файле /etc/login.defs
, Старые системы используют /etc/profile
,
Пожалуйста, имейте в виду, что люди, которые создают операционные системы, знают кое-что о безопасности и выбрали umask 022 по определенной причине. Вы сделаете свой компьютер довольно небезопасным, если будете следовать этому совету.
Одним из способов, который приходит на ум, является setfacl
команда. Вот руководство Ubuntu о том, как включить ACL (списки контроля доступа) для точки монтирования. Подводя итог, установите соответствующий пакет
sudo apt-get install acl
затем добавьте опцию 'acl' в точку монтирования в /etc/fstab
UUID=07aebd28-24e3-cf19-e37d-1af9a23a45d4 /home ext4 defaults,acl 0 2
наконец, перемонтировать диск, чтобы изменения вступили в силу
sudo mount -o remount /home
После этого вы можете использовать setfacl
а также getfacl
установить параметры для любого каталога или файла в частности. Опции ACL для каталогов также включают возможность устанавливать разрешения по умолчанию для новых файлов и подпапок с помощью команд, подобных следующим:
setfacl -d -m u::rwx /folder/to/modify # Default permissions for owning user
setfacl -d -m g::rwx /folder/to/modify # Default permissions for owning group
setfacl -d -m o::rwx /folder/to/modify # Default permissions for others
Для справки вот справочная страница для setfacl. Кроме того, хотя эти разрешения будут по умолчанию применяться к вновь создаваемым подфайлам и папкам, setfacl все еще можно использовать для изменения прав после факта, если это необходимо. Наконец, после включения ACL вы можете увидеть, на какие файлы / папки есть ACL, полученный в результате ls -l
команда, ища +
Символ после разрешений. Например,
-rw-r--r--+ # Has ACL applied
-rw-r--r-- # No ACL applied