Как пользоваться командами chown и chmod в Linux?

Продолжаем подробно рассказывать вам о пользователях и группах в Linux и сегодня поговорим о том как пользоваться командами chown и chmod.

Если вы перешли к нам из поисковика Google или Яндекс, то прежде чем вы начнете изучать эту статью, прочитайте вначале пользователи, Группы в Linux: создать, добавить, убрать.

CHOWN

Chown — от английского change own. И так, как вы знаете в Linux есть пользователи и группы. У каждого пользователя есть свои файлы, созданные или загруженные. Каждый пользователь находится в собственной группе и может быть объеден c другими пользователями в другие группы.

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

ls -l

Если вы хотите поменять или сменить владельца (пользователя) файла тогда вам поможет команда:

sudo chown userName text.txt

В данном примере мы присвоили файл text.txt пользователю userName.

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

sudo chgrp groupName text.txt

Для того чтобы не вводить 2 разные команды делают так:

sudo chown userName:groupName text.txt

Вначале указывается владелец файла, а после группа:

sudo chown имя_владельца:имя_группы text.txt

Если вам нужно поменять в директории владельца и группу, а там множество файлов и папок тогда используйте ключ -R:

sudo chown -R userName:groupName /var/www/site/

CHMOD

И так мы знаем, что существуют пользователи, группы. Теперь поговорим о правах доступа. Для чего этого необходимо? Например у вас есть директория в которой находятся личные файлы. Чтобы вы, владелец, например могли редактировать, просматривать файлы, группа, только видеть данные, файлы, а остальные пользователи которые не входят ни в одну из групп и не являются владельцами, вообще не могли ничего сделать, вот поэтому и необходимы права доступа.

Права на файл могут обозначаться цифрами и буквами:

ЦифрамиБуквами
Чтение4r
Запись2w
Выполнение1x
0

 

Значения прав в цифрах суммируются:

  • полные права (rwx) 7 = 4 + 2 +1
  • чтение и запись (rw-) 6 = 4 + 2 + 0
  • чтение и выполнение (r-x) 5 = 4 + 0 + 1
  • только чтение 4 (r—) = 4 + 0 + 0
  • только запись 2 (-w-) = 0 + 2 + 0
  • права отсутствуют (—) 0 = 0 + 0 + 0

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

ВладелецГруппаОстальные
ugo
права доступа буквыправа доступа цифры
rwxrwxrwx777читают, записывают, выполняют все
rwxr-xr-x755читает, записывает, выполняетчитать и запускать
rw-r—r—644чтение и записьтолько четние
r———400читает только владец

Изменять права доступа на файл или директорию командой chmod можно как числами, так буквами.

Назначение прав доступа цифрами

Для того чтобы изменить права файлу или директорию командой chmod используя цифры, введите команду:

sudo chmod 755 text.txt

Для директорий необходимо после chmod добавить ключ -R.

Чуть ниже полезная команда, как массово поменять права во всех папках и под папках.

Для папок:

 find /ваш_путь -type d -exec chmod 755 {} \;

Для файлов:

 find /ваш_путь -type f -exec chmod 644 {} \;

Назначение прав доступа буквами

Для новичков изменять права доступа буквами будет слегка сложней, но данные знания пригодятся.

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

uuserВладелец
ggroup
Пользователи, входящие в группу
oothersОстальные пользователи
aallВсе пользователи

 

Права доступа можно назначать, убирать или присваивать:

+
добавить права
удалить права
=
установить права

 

Установить права на файл «rwxr-xr-x» (755):

sudo chmod u=rwx,g=rx,o=rx text.txt

Добавить права на выполнение владельцу, удалить выполнение для группы, удалить запись и выполнение для остальных:

sudo chmod u+x,g-x,o-wx text.txt

Добавить возможность всем (пользователь, группа, остальные) читать:

sudo chmod a+r text.txt

Для изменения прав доступ директориям необходимо использовать ключ -R:

sudo chmod -R a+r imya_papki

У вас еще остались вопросы? Пишите их в комментариях, рассказывайте, что у вас получилось или наоборот!

Вот и все! Больше полезных статей и инструкций читайте в разделе Статьи и Хаки Linux. Оставайтесь вместе с сайтом Android +1, дальше будет еще интересней!

  • Андрей

    Как сразу всем файлам и подпапкам в папке, установить РАЗНЫЕ права?

    • https://plus.google.com/105635296216871600282 Виталий Шипилов

      Папки
      find /ваш_путь -type d -exec chmod 755 {} ;

      Файлы
      find /ваш_путь -type f -exec chmod 644 {} ;

      • Андрей

        Спасибо! А с помощью только chmod возможно это сделать? Хотя бы одинаковые разрешения все подпапкам и файлам в них, ну в общем, абсолютно всему что есть в папке. Просто не верится, что он на это не способен.

Комментарии для сайта Cackle