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