← Все вопросы

Не пойму права доступа в Linux: что значит rwxr-xr-x?

Задан 7 месяцев назад696 просмотров2 ответа
7

Зашёл на сервер по SSH, набрал ls -l и увидел такое:

-rwxr-xr-x 1 user group 4096 Jun 18 10:00 script.sh
drwxr-x--- 2 user group 4096 Jun 18 10:01 secret

Что означают все эти буквы rwxr-xr-x? И как проверить/поменять права, чтобы, например, разрешить выполнение скрипта?

2 ответа

12
✓ Принятый ответ — помог автору

Эта строка читается по кусочкам. Возьмём -rwxr-xr-x:

-   rwx   r-x   r-x
|    |     |     |
тип  владелец группа  остальные
  • Первый символ — тип: - обычный файл, d каталог, l ссылка.
  • Дальше три блока по 3 символа: права для владельца, группы, остальных.

Буквы внутри блока:

  • r — read (чтение),
  • w — write (запись/изменение),
  • x — execute (выполнение; для каталога — возможность зайти внутрь).
  • - на месте буквы означает, что права нет.

Итак, rwxr-xr-x = владелец может всё (rwx), группа и остальные — только читать и выполнять (r-x), но не менять.

Как проверить: просто ls -l имя_файла.

Как разрешить выполнение скрипта:

chmod +x script.sh        # добавить право x всем
chmod u+x script.sh       # только владельцу (u=user)

Есть и цифровая запись, где r=4, w=2, x=1 (складываем):

chmod 755 script.sh   # rwx (7) для владельца, r-x (5) для группы и остальных
chmod 644 file.txt    # rw- владельцу, r-- остальным

u = владелец, g = группа, o = остальные, a = все.

5

Полезный лайфхак, как быстро считать цифры: r=4, w=2, x=1, сложи нужные.

  • rwx = 4+2+1 = 7
  • r-x = 4+0+1 = 5
  • rw- = 4+2+0 = 6

Поэтому chmod 755 и означает rwxr-xr-x. А drwxr-x--- (твой каталог secret) — это 750: владелец всё, группа читает/заходит, остальные вообще никак.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект