Настройка глобальных разрешений для просмотра для подкаталогов (rx), но делает файлы недоступными для всех, кроме владельцев и членов группы

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

Я вижу некоторые связанные вопросы, которые точно не соответствуют тому, что я хочу:

  • Этот вопрос использует umask . Не применяется, поскольку эти файлы уже созданы.

  • Этот вопрос использует ACL. Я хочу использовать здесь permissionsions UNIX.

Обычно я использую команду find но я знаю, что у нее есть некоторые слабости. Я отправлю его в качестве потенциального ответа, и я думаю, что может быть лучший способ.

  • назначение привилегий чтения / записи для папки пользователю в CentOS 7
  • shell-скрипт для имени файла chmod, но только для новых файлов с момента последнего запуска скрипта
  • Почему я не могу chmod эти файлы, которые я мог ранее?
  • выполнить бит в каталогах, но не файлы
  • Как разрешения для Linux работают, когда процесс выполняется как определенная группа?
  • chmod рекурсивное разрешение на тысячи файлов
  • Сбросить бит setgid с числовым режимом chmod
  • Выпущен chmod 666 * в домашнем каталоге, проблемы с разрешениями, вызванные всеми файлами
  • 3 Solutions collect form web for “Настройка глобальных разрешений для просмотра для подкаталогов (rx), но делает файлы недоступными для всех, кроме владельцев и членов группы”

    Обычно я использую следующее:

     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 

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

    Ну, просто не устанавливайте одинаковые разрешения для каталога и файлов внутри него:

     $ chmod g+rx directory/ $ chmod g= directory/* 

    Здесь члены группы могут вводить и просматривать каталог, но они не смогут читать файлы внутри него.

    Изменить: в отношении вашего нового названия я бы предложил:

     $ chmod a+rx directory/ $ chmod u=rwX,g=rX,o= * 

    Для уже созданных каталогов и файлов:

    find / start_directory -type d -exec chmod 755 {} \;

    find / start_directory -type f -exec chmod 660 {} \;

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

    Interesting Posts

    Определение точности временной метки файловой системы

    найти все слова, содержащие подстроку, и отобразить их в разных строках

    Копирование большого количества файлов рекурсивно приводит к проблемам с нагревом на моем внешнем жестком диске

    Как я могу запустить процесс с любым именем, которое ничего не делает?

    Как init определяет, какие устройства должны modprobe?

    solaris 10 + отображать 2 строки после матча grep?

    Несколько экземпляров Firefox над X11

    Как просмотреть несколько групп пользователей с помощью sssd?

    Выделение синтаксиса Bash подоболочек

    Как я могу добавить комментарий в список установки yum?

    У Busybox ASH внутри initrd есть проблема, когда трубопроводный тройник

    Как отредактировать файл .gpg с vi?

    перемещение всех домашних каталогов вокруг

    Переименуйте все файлы в каталоге, сохраняя любое расширение файла

    Должен ли я закончить мои текстовые / скриптовые файлы с помощью новой строки?

    Linux и Unix - лучшая ОС в мире.