3. Основы терминала Linux. Команды изменяющие права доступа в Linux.
В данной статье мы рассмотрим такие важные команды, которые позволяют изменять права доступа. Каждому файлу или категории можно выставить свои права доступа.
Например если мы воспользуемся командой ls с ключом -l, который позволяет вывести список файлов и каталогов с указанием прав доступа то увидим следующую картину:
ls -l
Здесь стоит обратить внимание на первый столбец, который состоит из непонятного повторяющегося набора букв. Этими символами и обозначаются права доступа к файлу или каталогу.
Первая буква обозначает является ли объект каталогом. В данном случае один является каталогом 1, а 1.txt - файлом, что подтверждают первый символ прочерк.
Права на файлы и каталоги распространяться на три категории. За это отвечает 9 остальных символов. Каждой категории выделено по три символа: первая категория это владелец файла или каталога, вторая категория это группа пользователей и третья категория это остальные пользователи. Символы обозначается следующим образом: r это доступ на чтение, w этот доступ на запись, x это доступ на выполнения файла, прочерк - это отсутствие прав.
В итоге если объединить все знания, то получается то, что 1 это директория d, владельцу данной директории предоставлен доступ на чтение, запись и выполнение rwx, группе пользователей данной директории предоставлен такой же доступ, на чтение, запись и выполнение rwx, а всем остальным пользователям установлен доступ на чтение и выполнение r-x.
Так же следует обратить внимание на третий и четвертый столбец. В третьем столбце отображается имя владельца файла или каталога, а в четвертом столбце название группы.
Команда chmod
Первая команда, которая позволит нам изменять права доступа называется change mod. Она пишет следующим образом chmod. Для того, чтобы получить дополнительную информацию можно воспользоваться мануалом при помощи команды help:
chmod --help
Так же на википедии есть статья более подробно описывающая данную команду. Так же помимо символьного представления доступа можно воспользоваться цифровым. Для удобства можно воспользоваться данной таблицей:
двоичная | восьмеричная | символьная | права на файл | права на каталог |
---|---|---|---|---|
000 | 0 | --- | нет | нет |
001 | 1 | --x | выполнение | чтение свойств файлов |
010 | 2 | -w- | запись | нет |
011 | 3 | -wx | запись и выполнение | всё, кроме получения имени файлов |
100 | 4 | r-- | чтение | чтение имён файлов |
101 | 5 | r-x | чтение и выполнение | доступ на чтение файлов/их свойств |
110 | 6 | rw- | чтение и запись | чтение имён файлов |
111 | 7 | rwx | все права | все права |
Установим нашему файлу 1.txt такие же права, которые у него есть сейчас. А именно чтение и запись для владельца, чтение и запись для группы и только чтение для остальных пользователей.
Для начала воспользуемся цифровой вариацией. Для этого пишем chmod цифровое представление прав доступа, в нашем случае это 664 и в конце указываем название файла или папки, в нашем случае это 1.txt:
chmod 664 1.txt
Как мы видим права у файл 1.txt не изменились. Для наглядности установим все возможные права всем пользователям. Для этого поменяем наше число на 777:
chmod 777 1.txt
Как мы видим мы установили все права для данного файла. Теперь вернем исходная права при помощи символьного представления. Для пользователя укажем права на чтение и запись, для группы укажем такие же права, а для всех остальных только на чтение:
chmod u=rw,g=rw,o=r 1.txt
Так же можно добавлять или удалять права при помощи ключевых символов плюс и минус соответственно. Например добавим владельцу файла право на выполнение. Для этого добавим ключевое слово +x к нашему пользователю:
chmod u+x 1.txt
Как мы видим владельцу файла добавилось право на выполнение файла.
Теперь уберем это право при помощи ключевого слова -x:
chmod u-x 1.txt
Так же команду можно применить ко всем пользователям, а не отдельно к владельцу, группе и остальным. Для этого используется ключевой символ а.
Например добавим всем пользователям доступ на выполнения к файлу 1.txt. Для этого пропишем следующую команду:
chmod a+x 1.txt
Так же может возникнуть такая ситуация, когда необходимо установить права всему содержимому каталога. Для этого воспользуемся знакомым нам ключом -R и следующей командой мы установим права 777 всему содержимому каталога 1:
chmod -R 777 1/
Перейдем в каталог 1 и проверим:
cd 1/
ls -l
Для того, чтобы установить права только файлам и не затронуть категории, необходимо воспользоваться следующей командой:
find /home/ub/Загрузки/ -type f -exec chmod 644 {} \;
Здесь мы указываем что необходимо найти все файлы в папке загрузки и для них установить права доступа 644. Тоже самое можно сделать и для каталогов. Только в качестве типа укажем d место f.
find /home/ub/Загрузки/ -type d -exec chmod 755 {} \;
Данной командой мы установим права 755 для всех каталогов в папке загрузки.
Как мы видим наши каталоги имеет права 755, а наши файлы имеют права 644.
Команда chown
Следующая команда chown. Она позволяет сменить владельца файла или каталога или его группу. Например изменим владельца файла 1.txt. Для этого введем следующую команду:
chown root:ub 1.txt
Здесь вначале мы укажем нового владельца файла - это у нас root и через двоеточие укажем группу - это у нас ub. Так как в качестве владельца указывается пользователь root, то данную команду нужно выполнить от имени администратора:
sudo chown root:ub 1.txt
Данную команду можно выполнять так же рекурсивно. Для этого нужно воспользоваться ключом -R.
Команда chgrp
Теперь изменим группу нашего файла для этого воспользуемся командой change group. В сокращенном варианте она пишется следующим образом:
chgrp root 1.txt
Здесь через пробел укажем название группы и название файла. Эту команду так же необходимо выполнить от имени администратора.
sudo chgrp root 1.txt
Как мы видим наш файл принадлежит группе root.
Если вам понравилась статья, то поделитесь ею в социальных сетях: