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