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 название директории/
Линукс - это интересно) Подписывайтесь, разберемся!