Меню Рубрики

Linux просмотр прав доступа к папке

Урок 17. Права доступа Linux к файлам и папкам

В 3-м уроке была рассмотрена команда ls -l , а также краткое описание к выводу команды. В выводе команды также присутствует информация о правах доступа к данному файлу:

Права доступа разделены на 3 группы:

  • владелец файла
  • группа владельцев файла
  • другие пользователи

Для указания уровня доступа к файлу или каталогу используются следующие атрибуты.

  • r (read) — чтение файла разрешено, то есть можно просматривать его содержимое, открывать в текстовом редакторе.
  • w (write) — запись файла разрешена, то есть можно его редактировать, переименовывать, удалять.
  • x (execute) — исполнение файла разрешено. Это касается исполняемых файлов.
  • r (read) — разрешено просматривать содержимое каталога, то есть можно воспользоваться командой ls и посмотреть какие файлы и каталоги содержаться в данном каталоге.
  • w (write) — используется совместно с атрибутом x (execute). Позволяет удалять и переименовывать файлы в каталоге.
  • x (execute) — при использовании совместно атрибутом r (read) позволяет увидеть атрибуты файла, то есть его размер, дату модификации, права доступа. Одним словом позволяет полноценно воспользоваться командой ls -l . При использовании совместно с атрибутом w (write) позволяет перейти в каталог командой cd , удалять и переименовывать файлы.

Рассмотрим вышесказанное на примерах.

У нас в системе имеются 2 пользователя: teacher (учитель) и student (студент). У каждого из них имеется свой домашний каталог, в котором они могут хранить свои файлы.Так как пользователь student не является владельцем каталога /home/teacher и не относится к группе его владельцев, то для него будут действовать права доступа для категории остальных пользователей.

Домашний каталог пользователя teacher имеет следующие права доступа:

Пользователь student хочет посмотреть какие файлы имеются в данном каталоге:

Доступа нет. Попробуем хотя бы перейти в этот каталог:

Пользователь teacher решил всем разрешить просмотр его файлов в каталоге:

Попробуем узнать что у него хранится:

Мы узнали имена файлов, но абсолютно ничего не знаем какие это файлы и их атрибуты. То есть атрибут r (read) каталога позволяет просматривать имена (только имена) файлов с помощью ls , но не выдает о них дополнительную информацию. Попробуем перейти в этот каталог:

И снова неудача. Попробуем установить права записи, то есть атрибут w (write):

Теперь попробуем выполнить все те же действия, что и до этого:

Как видно атрибут w (write) сам по себе не работает. Удалим этот атрибут и установим x (execute):

доступ к данному каталогу у нас имеется при наличии установленных прав на чтение и исполнение.

Попробуем теперь удалить или переименовать любой файл:

Операция запрещена, так как у нас для каталога teacher/ не установлен атрибут w (write).

Но ведь сами файлы в каталоге имеют полный доступ для всех остальных пользователей.. Почему мы ничего не можем сделать с данными файлами?

Все верно, файлы имеют полный доступ для всех, однако система прежде всего смотрит на то, какие права доступа у каталога, так как файлов может быть очень много и менять права доступа каждого из них довольно утомительно и легко можно допустить ошибку. Гораздо проще установить определенные права доступа на каталоги и перемещать соответствующие файлы в эти каталоги. Кроме того, операции по удалению и перемещению файлов регламентируются правами доступа данного каталога, а не файла.

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

  • удалять файлы из каталога
  • перемещать/переименовывать файлы
  • создавать жесткие ссылки
  • создавать новые файлы и каталоги в данном каталоге

Однако данная политика не накладывает ограничения на редактирование и копирование файлов. Можно с легкостью отредактировать и сохранить файл. Кроме того, мы можем скопировать файл в свой каталог. Причем файл будет иметь совершенно иные атрибуты. Например, скопируем файл Worknotes.txt в каталог /home/student/:

Теперь у скопированного файла новый владелец и другие права доступа. Здесь данные операции регламентируется уже правами доступа самого файла.

А что можно делать с файлами, когда установлен атрибут x (execute)?

Можно делать следующее:

  • просматривать атрибуты файлов (совместно с атрибутом r ) с помощью команды ls -l
  • переходить в каталог командой cd
  • запуск исполняемых файлов
  • совместно с атрибутом w (write) можно удалять и перемещать файлы

Теперь установим атрибут w (write) для каталога /home/teacher/ и посмотрим, что произойдет:

Теперь можно делать абсолютно что угодно с файлами и каталогами.

То есть атрибут w (write) работает всегда в паре с x (execute)?

Все верно, но это в отношении каталогов. У файлов данные атрибуты независимы друг от друга.

А как быть, если пользователь student хочет предоставить доступ к своим файлам определенным пользователям и запретить остальным?

Для этого существует группа владельцев файла. Пользователю student достаточно поменять группу владельцев файла на teache r и предоставить соответствующие права, а всем остальным — запретить:

А как поменять группу?

С помощью команды chgrp [опции] группа файл .

Например, чтобы поменять группу владельцев файла Linux.txt на teacher введем chgrp teacher Linux.txt.

А если имеется много файлов, то как это сделать быстрее и проще?

Есть специальная опция -R ( —recursive ). Например, имеется каталог Homework/ с файлами:

Применим команду chgrp -R teacher Homework/ :

А можно поменять и самого владельца?

Конечно, существует команда chown [опции] владелец файл .

Однако в тех случаях, когда нам необходимо поменять сразу и группу и владельца, то приходится выполнять 2 команды и это не очень удобно. Поэтому команда chown позволяет менять одновременно и владельца и группу chown [опции] владелец:группа файл. Опция -R ( —recursive ) действительна и для данной команды.

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

Существуют 2 способа:

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

Права меняются с помощью команды chmod [опции] права_доступа файл. Например, файл notes.txt имеет следующие права доступа:

Запретим остальным пользователям редактирование данного файла:

Теперь разрешим группе владельцев исполнение данного файла:

То есть мы указываем объект ( u , g или о ), а затем с помощью символов управления назначаем или удаляем соответствующие права.

А можно одновременно выполнить вышеуказанные действия в одной команде?

Конечно, достаточно выполнить chmod o-w,g+x notes.txt и результат будет тот же.

А можно одновременно в одной команде выполнить следующее:

  • владельцу назначить rw-
  • группе назначить r-x
  • остальным назначить r— ?

Конечно можно. Для этого существует символ ” = ” : chmod u=rw,g=rx,o=r notes.txt.

А если нужно всем назначить одинаковые права, например r-x , то воспользуемся chmod a=rx notes.txt :

Существует и другой способ указать права доступа — с помощью восьмеричного представления. Не будем вдаваться в подробности булевы алгебры и двоично-восьмеричного преобразования. Просто запомним таблицу:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Как перейти с windows на mac os на macbook
  • Как перейти в папку в терминале mac os
  • Как переименовать пользователя в mac os
  • Как переименовать много файлов в mac os
  • Как перезапустить mac os