Как получить разрешение папки" 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
