Как проверить разрешения для конкретного каталога?

316

Я знаю, что использование ls -l "directory/directory/filename"сообщает мне права доступа к файлу. Как мне сделать то же самое в каталоге?

Я мог бы использовать ls -lкаталог выше в иерархии, а затем просто прокрутить, пока не найду его, но это такая боль. Если я использую ls -lреальный каталог, он дает разрешения / информацию о файлах внутри него, а не о реальном каталоге.

Я попробовал это в терминале Mac OS X 10.5 и Linux (Ubuntu Gutsy Gibbon), и это тот же результат. Есть какой-то флаг, который я должен использовать?

user42228
источник

Ответы:

419

Вот краткий ответ:

$ ls -ld directory

Вот что он делает:

-d, --directory
    list directory entries instead of contents, and do not dereference symbolic links

Вы можете быть заинтересованы в manpages . Вот откуда все люди здесь получают свои хорошие ответы.

обратитесь к онлайн-страницам руководства

Йоханнес Шауб - Литб
источник
24
Я думаю, что страница руководства плохо сформулирована. Я обыскивал его пять раз, прежде чем начал гуглить. Я не хочу, чтобы «записи» каталогов (что-то «входило» в каталоги? Как их файлы и подкаталоги?), Ни их «содержимое» (для меня они звучат как одна и та же концепция), я хочу сами каталоги .
user151841
2
это полностью стандартная терминология, сами каталоги являются записями каталогов, то есть записями в файловой системе
alldayremix
33
Это может быть стандартная терминология, но для кого-то, кто, вероятно, будет задавать такой вопрос, это, вероятно, сбивает с толку жаргон.
CatShoes
61

Вы также можете использовать statкоманду, если хотите получить подробную информацию о файле / каталоге. (Я уточняю это, когда вы говорите, что учитесь ^^)

Петр Лесницкий
источник
5
stat покажет вам среди многих прав: (0755 / drwxr-xr-x)
zzapper
3
это удобно , так что вы можете увидеть числовой формат разрешений , а также - ти
высадились
2
"stat -c% a directory" это будет отображаться числовым способом
Nerius Jok
2
Соответствующий на macOS есть stat -f %A dir_or_filename.
ILED
13

А также есть

getfacl /directory/directory/

который включает в себя ACL

Хорошее введение в Linux ACL здесь

Taylan
источник
11
$ ls -ld directory

ls это команда списка

- указывает на начало параметров команды.

l просит длинный список, который включает в себя разрешения.

dуказывает, что список должен касаться самого именованного каталога; не его содержание. Если имя каталога не указано, вывод списка будет относиться к текущему каталогу.

Мехул Яривала
источник
10

В GNU / Linux, попробуйте использовать ls, namei, getfacl, stat.

Для режиссера

[flying@lempstacker ~]$ ls -ldh /tmp
drwxrwxrwt. 23 root root 4.0K Nov  8 15:41 /tmp
[flying@lempstacker ~]$ namei -l /tmp
f: /tmp
dr-xr-xr-x root root /
drwxrwxrwt root root tmp
[flying@lempstacker ~]$ getfacl /tmp
getfacl: Removing leading '/' from absolute path names
# file: tmp
# owner: root
# group: root
# flags: --t
user::rwx
group::rwx
other::rwx

[flying@lempstacker ~]$ 

или

[flying@lempstacker ~]$ stat -c "%a" /tmp
1777
[flying@lempstacker ~]$ stat -c "%n %a" /tmp
/tmp 1777
[flying@lempstacker ~]$ stat -c "%A" /tmp
drwxrwxrwt
[flying@lempstacker ~]$ stat -c "%n %A" /tmp
/tmp drwxrwxrwt
[flying@lempstacker ~]$

Для файла

[flying@lempstacker ~]$ ls -lh /tmp/anaconda.log
-rw-r--r-- 1 root root 0 Nov  8 08:31 /tmp/anaconda.log
[flying@lempstacker ~]$ 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
[flying@lempstacker ~]$ 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--

[flying@lempstacker ~]$

или

[flying@lempstacker ~]$ stat -c "%a" /tmp/anaconda.log
644
[flying@lempstacker ~]$ stat -c "%n %a" /tmp/anaconda.log
/tmp/anaconda.log 644
[flying@lempstacker ~]$ stat -c "%A" /tmp/anaconda.log
-rw-r--r--
[flying@lempstacker ~]$ stat -c "%n %A" /tmp/anaconda.log
/tmp/anaconda.log -rw-r--r--
[flying@lempstacker ~]$

источник
7

Это отображает файлы с его разрешениями

stat -c '%a - %n' directory/*
Брэндон Агилар
источник
5

В дополнение к вышеупомянутым постам, я хотел бы отметить, что "man ls" даст вам хорошее руководство по команде "ls" (Список).

Также, используя ls -la, myFile выведет список и покажет все факты об этом файле.

Филип Экберг
источник
5

На OS X вы можете использовать:

ls -lead

Опция e показывает ACL. И списки ACL очень важны для знания точных разрешений в вашей системе.

Тони Топпер
источник
2

ls -lstr

Это показывает нормальное представление ls с разрешениями и user: group, а также

user2201302
источник