%2C%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%B8%20%D1%8D%D1%82%D0%BE%D0%BC%20%D1%84%D0%B0%D0%B9%D0%BB%D1%8B%20%D0%BD%D0%B5%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BD%D1%8B%20%D0%B2%D1%81%D0%B5%D0%BC%2C%20%D0%BA%D1%80%D0%BE%D0%BC%D0%B5%20%D0%B2%D0%BB%D0%B0%D0%B4%D0%B5%D0%BB%D1%8C%D1%86%D0%B0%20%D0%B8%20%D1%87%D0%BB%D0%B5%D0%BD%D0%BE%D0%B2%20%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D1%8B.png)
Обычно у меня есть каталог, который я хочу, чтобы все пользователи могли просматривать, но файлы в нем должны быть нечитаемыми и неисполняемыми.
Я вижу несколько связанных вопросов, которые не совсем соответствуют тому, что я хочу:
Этот вопросиспользует
umask
. Не применяется, так как эти файлы уже созданы.Этот вопросиспользует ACL. Я хочу использовать здесь разрешения UNIX.
Обычно я использую find
команду, но я знаю, что у нее есть некоторые слабости. Я опубликую ее как потенциальный ответ немного позже вместе с тем, почему я думаю, что может быть лучший способ.
решение1
Я обычно использую следующее:
find . -type f -print0 | xargs -0 sudo chmod 440
find . -type d -print0 | xargs -0 sudo chmod 555
Однако это не учитывает исполняемые файлы. Я думал сделать что-то вроде этого для файлов:
find . -type f -print0 | xargs -0 sudo chmod ug+r ug-w o-rwx
Но это все еще две команды, и я не уверен, что это лучший способ. Может быть, у кого-то есть лучшее предложение.
решение2
Ну, просто не устанавливайте одинаковые права доступа для каталога и файлов в нем:
$ chmod g+rx directory/
$ chmod g= directory/*
Здесь члены группы могут входить в каталог и просматривать его, но они не смогут читать находящиеся в нем файлы.
Редактировать: относительно вашего нового названия я бы предложил:
$ chmod a+rx directory/
$ chmod u=rwX,g=rX,o= *
решение3
Для уже созданных каталогов и файлов:
find /start_directory -type d -exec chmod 755 {} \;
find /start_directory -type f -exec chmod 660 {} \;
Если ваши пользователи должны иметь возможность создавать новые файлы и/или подкаталоги, пожалуйста, предоставьте более подробную информацию, поскольку решение зависит от конкретных требований.