Как вы просматриваете права доступа к файлам?

80

Я хочу знать, как просмотреть разрешения, которые есть у конкретного файла. Какую команду я должен набрать в терминале? Однако я не хочу это менять.

КЕНТАВР
источник
Если это не дубликат, отметьте это как Защищенное. Это важный вопрос.
evilMinion

Ответы:

112

Если вы хотите увидеть разрешение файла, вы можете использовать ls -l /path/to/fileкоманду.

Например

   ls -l acroread 
   -rwxr-xr-x 1 10490 floppy 17242 May  8  2013 acroread


Что это значит ?

Первый -представляет обычный файл. Это дает вам подсказку о типе объекта, который это. Может иметь следующие значения.

  • д (каталог)
  • с (символьное устройство)
  • л (символическая ссылка)
  • p (именованная труба)
  • с (гнездо)
  • б (блочное устройство)
  • Д (дверь)
  • - (обычный файл)


rпредставляет разрешение на чтение.
wпредставляет разрешение на запись и
xпредставляет разрешение на выполнение.

Первая комбинация rwxпредставляет разрешение для владельца .
Вторая комбинация rwxпредставляет разрешение для группы .
Третья комбинация rwxпредставляет разрешение для другого файла.


Восьмеричное обозначение

Разрешение файла также может быть представлено в восьмеричной записи.
В восьмеричной записи

Чтение или rпредставлено 4,
Запись или wпредставлено 2
Выполнить xпредставлено 1.

Сумма этих трех используется для представления разрешения.

stat команда может быть использована для просмотра разрешения файла в восьмеричной записи

  stat -c "%a %n" /path/of/file

Например

   stat -c "%a %n" acroread 
   755 acroread

Здесь вы можете увидеть

Для владельца это 4 + 2 + 1 = 7 (111 в двоичном коде).
Для группы это 4 + 0 + 1 = 5 (101 в двоичном виде), а
для других - 4 + 0 + 1 = 5 (101 в двоичном).

G_p
источник
19

Вы можете использовать любой длинный список:

ls -l [filename]

Или стат:

stat [filename]

Стат более всеобъемлющий; он показывает вам время доступа, изменения и изменения, а также информацию об Inode и размере, которая может быть полезной для вас.

Viv Diwakar
источник
Примечание: «это зависит», эта команда покажет стандартные разрешения, однако ваш доступ может быть ограничен другими средствами, acl, apparmor и selinux могут все ограничить доступ за пределами того, что показано ls -l.
Пантера
7

Независимо от того, используете ли вы на самом деле разрешения ACL, если у вас установлен aclпакет, вы можете использовать его, getfacl <path>чтобы получить довольно приличную разбивку разрешений для этого файла.

$ getfacl /root/
# file: root/
# owner: root
# group: root
user::rwx
group::---
other::---

Если вы делаете использовать разрешение ACL, то расскажут вам о разрешениях, lsи statпросто не может.

$ sudo setfacl -m u:oli:r /root
$ getfacl /root/
# file: root/
# owner: root
# group: root
user::rwx
user:oli:r--
group::---
mask::r--
other::---
Оли
источник