Как получить разрешение папки" drwx---r-x+ " с помощью CHMOD? - Bash-скрипт [закрыт]

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

В настоящее время у меня есть папки с этими разрешениями drwxrwxrwx. Мне нужно запустить скрипт bash, который изменяет разрешения на drwx- - - r-x+

ACL должен быть там.

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

chmod-R ugo=rx "file"

но это кажется, меняется на dr-xr-xr-x, чего недостаточно...

Итак, вопрос в том, какую команду я должен запустить для достижения drwx---r-x+ ??

спасибо заранее.

PS. Эта команда должна выполняться в MacOSX Maveriks, поэтому команда "setfacl" не поможет.

1 ответов


разрешения drwx---r-x+ разбить следующим образом:

  • d - каталог, конечно.
  • rwx означает, что он читаемый, записываемый и доступный user. Эти три бита могут быть представлены восьмеричным числом 7.
  • --- означает, что три вышеупомянутых бита не установлены для group, назначенный каталогу. Биты не установлены, поэтому восьмеричное число 0.
  • r-x означает, что пользователи, которые не соответствуют первым двум категориям, т. е. все остальные, или "other " -- может читать и получать доступ к содержимому каталога, но не может писать в него. Биты здесь находятся в столбце ones и столбце fours, поэтому восьмеричное число, представляющее это разрешение, -5.
  • + указывает, что с этим каталогом связана "расширенная информация о безопасности", которая не отображается в стандарт ls "длинном формате". Например, список управления доступом.

чтобы установить основные разрешения этого каталога, вы можете использовать восьмеричную короткую руку:

$ chmod 705 directoryname

или вы можете использовать "символические" представление:

$ chmod u+rwx,g-rwx,o+rx-w directoryname

очевидно, стенография ... укорачиваться.

для расширенной информации о безопасности, обозначенной +, вам нужно будет узнать, что настроено для его репликации. The ls команда имеет -e возможность показать расширенные настройки безопасности.

на самом деле set ваши ACLs из командной строки, вы бы использовали chmod'a =a, -a и +a параметры. Документация об этом доступна в OSX от man chmod. С этой страницы:

         Examples
          # ls -le
          -rw-r--r--+ 1 juser  wheel  0 Apr 28 14:06 file1
            owner: juser
            1: admin allow delete
          # chmod =a# 1 "admin allow write,chown"
          # ls -le
          -rw-r--r--+ 1 juser  wheel  0 Apr 28 14:06 file1
            owner: juser
            1: admin allow write,chown