Как изменить разрешения для всех файлов в каталоге и при добавлении новых файлов использовать значения по умолчанию?
У меня есть папка /home/userName/Public/Media
в котором я храню все медиа на машине; эта папка предназначена для доступа всем остальным пользователям машины, если только им не нужно самостоятельно загружать / копировать одни и те же мультимедийные файлы.
Есть ли способ, которым я могу изменить разрешения на:
owner: userName /* my own user */
Access: read and write
group: users
Access: read only /* I'm not entirely sure I trust all my users enough to give them powers of delete */
Others
Access: read only
В идеале я хотел бы, чтобы другие могли добавлять свои собственные носители, но для разрешений для любых носителей / файлов / каталогов, добавленных мной по умолчанию к перечисленным выше. Разрешения для файлов, добавляемых моими пользователями, я бы хотел использовать по умолчанию с теми, которые указаны выше, за исключением того, что пользователи сохраняют право собственности.
Я предполагаю, что можно использовать inotify и umask; но - и я могу только извиниться за это - я понятия не имею, как использовать их для достижения решения.
Спасибо за любую помощь, которую вы можете оказать. Однажды я надеюсь, что смогу использовать Ubuntu без недоумения... =)
1 ответ
chown -R userName:groupname folderName
chmod -R 744 folderName
umask 022 (in .login or .profile)
chmod изменяет права доступа к файлам. Это немного странно, если вы к этому не привыкли, но в двух словах:
Использование (для восьмеричного): chmod ABC (целевой файл / папка)
"A" - это разрешения для Владельца, "B" - это разрешения для Владельца группы, а C - это разрешения для каждого.
Разрешения разбиваются следующим образом
1 = Выполнить 2 = Запись 4 = Читать
Добавьте их, чтобы определить уровень разрешений. Например, чтобы дать чтение и запись, но не выполнить, вы используете (2+4) = 6. Для чтения, записи и выполнения вы используете (1+2+4) = 7. Только для выполнения, используйте 1.
Таким образом, "chmod -R 744 имя_папки" означает:
Установите права доступа для Чтения для Владельца на Чтение + Запись + Выполнить (7) Установите права доступа для Чтения для группы Владельцев (4) Установите права доступа для Чтения для всех (4)
Примените эти разрешения к folderName и оттуда примените их рекурсивно (-R) ко всем файлам в папке.
Это довольно просто; Есть и другие способы использования chmod, и другие свойства, которые вы можете установить с ним и т. д., но это хорошее начало.
Теперь умаск
Umask - это способ установить права по умолчанию для создания файлов и каталогов. Обычно он устанавливается для каждого пользователя в файле.profile или.login, но вы можете установить его для себя в разное время, просто набрав umask 022 или что-то еще... Это останется до тех пор, пока вы не измените его или не выйдете из системы.
Разрешения (восьмеричные) umask противоположны разрешениям chmod. Я знаю, что это странно. Но если вы хотите, чтобы все файлы в каталоге создавались с правами доступа 777 (чтение + запись + выполнение для владельца, группы и всех), вы должны установить значение umask 000.
Таким образом, чтобы все ваши пользователи создавали файлы размером 644 (чтение / запись, чтение, чтение), вы должны установить значение umask 022 (что кажется неправильным, но файлы по умолчанию не исполняются, поэтому вновь созданные файлы будут будет 644, а вновь созданные каталоги будут 755).
Надеюсь, это не слишком запутанно.