Как проверить разрешения для конкретного каталога?
Я знаю, что использование ls -l "directory/directory/filename"
говорит мне о разрешениях файла. Как мне сделать то же самое в каталоге?
Я мог бы, очевидно, использовать ls -l
в каталоге выше в иерархии, а затем просто прокрутить, пока не найду его, но это такая боль. Если я использую ls -l
для реального каталога, он дает разрешения/информацию о файлах внутри него, а не о реальном каталоге.
Я попробовал это в терминале Mac OS X 10.5 и Linux (Ubuntu Gutsy Gibbon), и это тот же результат. Есть ли какой-нибудь флаг, который я должен использовать?
Ответы
Ответ 1
Вот краткий ответ:
$ ls -ld directory
Вот что он делает:
-d, --directory
list directory entries instead of contents, and do not dereference symbolic links
Вы можете быть заинтересованы в manpages. Вот откуда все люди здесь получают свои хорошие ответы.
обратитесь к онлайн-страницам руководства
Ответ 2
Вы также можете использовать команду stat
, если вам нужна подробная информация о файле/каталоге. (Я точно это говорю, как вы говорите, что вы учитесь ^^)
Ответ 3
Существует также
getfacl /directory/directory/
который включает ACL
Хорошее введение в Linux ACL здесь
Ответ 4
$ls -ld каталог
(ls) указывает список файлов и директорий.
(-) указывает, что файл является обычным файлом.
(l) указывает длинный список.
(d) указывает, что файл является каталогом, который в основном представляет собой особый вид файла.
Ответ 5
В GNU/Linux попробуйте использовать ls
, namei
, getfacl
, stat
.
Для Dir
[[email protected] ~]$ ls -ldh /tmp
drwxrwxrwt. 23 root root 4.0K Nov 8 15:41 /tmp
[[email protected] ~]$ namei -l /tmp
f: /tmp
dr-xr-xr-x root root /
drwxrwxrwt root root tmp
[[email protected] ~]$ getfacl /tmp
getfacl: Removing leading '/' from absolute path names
# file: tmp
# owner: root
# group: root
# flags: --t
user::rwx
group::rwx
other::rwx
[[email protected] ~]$
или
[[email protected] ~]$ stat -c "%a" /tmp
1777
[[email protected] ~]$ stat -c "%n %a" /tmp
/tmp 1777
[[email protected] ~]$ stat -c "%A" /tmp
drwxrwxrwt
[[email protected] ~]$ stat -c "%n %A" /tmp
/tmp drwxrwxrwt
[[email protected] ~]$
Для файла
[[email protected] ~]$ ls -lh /tmp/anaconda.log
-rw-r--r-- 1 root root 0 Nov 8 08:31 /tmp/anaconda.log
[[email protected] ~]$ namei -l /tmp/anaconda.log
f: /tmp/anaconda.log
dr-xr-xr-x root root /
drwxrwxrwt root root tmp
-rw-r--r-- root root anaconda.log
[[email protected] ~]$ getfacl /tmp/anaconda.log
getfacl: Removing leading '/' from absolute path names
# file: tmp/anaconda.log
# owner: root
# group: root
user::rw-
group::r--
other::r--
[[email protected] ~]$
или
[[email protected] ~]$ stat -c "%a" /tmp/anaconda.log
644
[[email protected] ~]$ stat -c "%n %a" /tmp/anaconda.log
/tmp/anaconda.log 644
[[email protected] ~]$ stat -c "%A" /tmp/anaconda.log
-rw-r--r--
[[email protected] ~]$ stat -c "%n %A" /tmp/anaconda.log
/tmp/anaconda.log -rw-r--r--
[[email protected] ~]$
Ответ 6
В дополнение к вышеуказанным сообщениям я хотел бы указать, что "man ls" даст вам хорошее руководство о команде "ls" ( "Список".
Также, используя ls -la myFile, вы увидите список всех фактов об этом файле.
Ответ 7
В OS X вы можете использовать:
ls -lead
Параметр e показывает списки ACL. И ACL очень важны для понимания того, какие точные разрешения для вашей системы.
Ответ 8
ls -lstr
Это показывает нормальное представление ls с разрешениями и user: group, а также
Ответ 9
Это отображает файлы с его разрешениями
stat -c '%a - %n' directory/*