Найти тему
Line Feed

Linux. Основы: chmod

Unix-подобные системы созданы для нескольких пользователей. Именно поэтому в таких системах существует возможность разграничить доступ до файлов и директорий.

Существует три вида разрешений:

  • r - чтение
  • w - запись
  • x - исполнение (execute)

Каждое разрешение контролируется на трех уровнях:

u - пользователь

g - группа пользователей

o - другие

Если мы применим команду ls -l и нам откроется список файлов и директорий, мы увидим вот такое обозначение в первой колонке:

-rwxrwxrwx

Где - обозначает, что это файл, а остальные буквы обозначают права доступа до него всех уровней.

В данном случае, мы видим, что у файла есть доступы на всех уровнях к чтению, записи и исполнению.

Чтобы изменить ситуацию, используется команда chmod (change mode).

Пример использования команды:

ls -l text.txt

chmod g-w text.txt

Это означает, что мы убрали возможность записи для первой группы (user)в этот файл и его обозначение будет такое:

-r--rw-rw-

Если убрать таким образом все права на запись у всех групп, то обозначение будет следующим:

-r--r--r--

Если необходимо убрать права на запись для всех уровней, то команда выглядит так:

chmod a-r text.txt

Тогда мы увидим вот такое обозначение в первой колонке:

----------

Если вы это видите, это не значит вы ничего больше с этим файлом сделать не можете. Если Вы его создали, то можете его удалить.

Как вернуть все доступы?

chmod u+rw text.txt

Если в начале Вы видите букву d - это значит, что перед вами не файл, а директория.

drwxr-xr-x

А что же означает тогда буква x? Разве директория может быть исполняемой?

Буква x обозначает, что в эту директорию можно зайти.

Если эта буква отсутствует, значит доступ до директории закрыт.

chmod a-x название директории/

Вот этой командой можно закрыть доступ до директории.

А вот этой, снова его открыть:

chmod a+x название директории/

Линукс - это интересно) Подписывайтесь, разберемся!