Дать полные права на папку. Изменение прав на файлы или папки в Linux

Изменить владельца и права доступа на файлы и папки в Linux и *BSD системах

Представленная ниже информация будет полезная начинающим Linux и *BSD системным администраторам. По большому счету, в любой операционной системе, будь то Linux, Windows или FreeBSD, корректная работа приложений, сервисов и безопасность системы в целом напрямую зависит от прав доступа на файлы и папки. Используя ниже приведённые средства, можно решить практически 90% проблем, возникающих при настройке прав доступа.

Сменить владельца для всех папок и файлов . Для этих целей в Unix используется команда chown . Она обладает рядом параметров:

  • Опции. Например, для того, чтобы изменения коснулись не только данной директории, но и всех поддиректорий, нужно применить команду рекурсивно, т.е. с параметром «-R».
  • Владелец или группа владельцев («user:group» или «user»).
  • Пути до папок / файлов, к которым нужно применить команду. Например, «/mnt/pool1/dts1/backup».

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

sudo chown -R user:group /home/user/dir/

Изменить права доступа на файл или папку в Linux и *BDS системах можно командой chmod . Стоит отметить, что в Unix имеются свои особенности в работе данной команды и принципа разделения прав. Так, кроме владельца файла или папки, можно настроить, какие операции может выполнять этот самый владелец и группа, а также все остальные пользователи. В Unix идёт разделение возможностей следующим способом — владелец, группа владельцев и другие. Также присутствует следующее разделение прав:

  • Право на запуск файла (для папок — проход по директории).
  • Право на изменение файла (создание и удаление файлов и папок в директории)
  • Право на чтение файла (для папок — это право на просмотр содержимого директории)

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

  • запуск — 1
  • изменение — 2
  • чтение — 4

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

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

chmod 640 /media/fileshare/file.txt

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

chmod 622 /media/fileshare/messages/

Чтобы все могли запускать какую-либо программу, но никто, кроме владельца, не мог её редактировать:

chmod 711 /media/share/exec

Для изменения прав на все вложенные файлы и папки (т.е. рекурсивно) используется опять же ключ «-R».

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

Изменение прав только на файлы или только на папки — команда find . При этом файлы обозначаются как file (f), а директории, соответственно — d. Например:

С каждым объектом, который находится в ведении Mac OS X, связан опреде­ленный набор прав доступа (в unix-среде используется термин привилегии до­ступа), который полностью определяет, кто является владельцем этот объекта и что с ним могут делать разные пользователи.

Эти права можно просмотреть в окне свойств объекта – команда Файл>>Свойства , раздел Общий доступ и права доступа.

Кому назначаются права доступа

В окне свойств объекта, в колонке Имя указаны пользователи или точнее, ка­тегории пользователей, которые обладают какими-то специфическими права­ми на этот объект: зарегистрированный пользователь обозначен силуэтом одного человека, группа – два силуэта и все остальные – три силуэта. Рассмо­трим их подробнее.

Зарегистрированный пользователь . По умолчанию первым таким пользо­вателем указан владелец - тот, кто создал этот объект. Им может быть любой зарегистрированный пользователь или root (в Finder root фигурирует под име­нем system).

Группа . В окне свойств обычно указывается ее имя, в нашем примере это staff. Само понятие группы используется для того, чтобы так-то отделить от «всех остальных» некий определенный круг людей, которым нужно дать осо­бые права доступа к этому объекту.

Например, если речь идет о каком-то важном документе в пределах организа­ции, - скажем, рабочем расписании, - то доступ к нему с правом чтения могут иметь все сотрудники этой структуры, а право изменять его - только строго определенный круг лиц. Администратор, определяющий привилегии доступа к этому файлу, объединит людей, имеющих право вносить коррективы в файл, в отдельную группу и даст ей нужные права.

В Mac OS по умолчанию заданы и используются такие группы: Admin - все зарегистрированные администраторы, и в том числе tool, Wheel - все зареги­стрированные системные администраторы, по умолчанию это только root, и Staff – все зарегистрированные пользователи и root, группы можно создавать в панели Учетные зашей в Системных настредтках.

Остальные (everyone) – это все иные пользователи, которые не являются владельцами этого элемента и не входят в группу, обладающую особыми права­ми по отношению к этому объекту.

Какие бывают права доступа

Что касается прав, связанных с определенным объектом, то в Finder вы сможе­те задать такие из них:

  • Только чтение обозначает, что пользователь может, если это файл, откры­вать его, а если папка – открывать и копировать ее содержимое. Обычно такие права имеют документы и папки, предназначенные лишь для просмотра. Поль­зователь с правом «только чтение» не сможет как-то изменять или удалять эти объекты. Визуальным обозначением папки, содержимое которой вы не можете изме­нять, служит значок «перечеркнутый карандаш», который появляется В левом нижнем углу окна Finder.
  • Только запись (почтовый ящик) обозначает, что пользователь может со­хранять в этой папке свои файлы. При этом если в паре с пей не идет право «чтение», то он. даже не сможет видеть, что находится внутри этой папки. По­лучается такой «черный ящик», в который можно только что-либо бросить.
  • Чтение и запись – пользователь имеет все права: он может- и открывать этот элемент, и изменять его, и удалять. Обычно такие права доступа имеют создан­ные вами папки и документы.
  • Нет доступа полное отсутствие каких-либо прав по отношению к этому объекту. Пользователь сможет только видеть его иконку – и все. Так, если вы откроете личную папку другого пользователя, то папки, которые вы не можете открывать, будут обозначены дорожным знаком «Проезд запрещен».
  • Настройка прав доступа к объекту

    Когда вы создадите в своей личной папке новую папку или сохраните сюда соб­ственный файл, этот объект получит такие права доступа: владелец имеет все права – может и записывать в нее файлы, и открывать содержащиеся объекты; члены группы staff (то есть зарегистрированные пользователи), могут просматривать ее содержимое; все остальные (то есть те, кто подключился к вашему Маку с гостевыми правами) - тоже просматривать ее содержимое.

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

    В окне выбора пользователей и групп есть объект Адресная книга. Выделив его, вы получите доступ к списку людей, чьи контакты хранятся в вашей Адресной книге. Пользователи, которых вы. добавите туда, будут автоматически регистрироваться па вашем Маке только для сетевого доступа.

    Пользователи или группы, которые в окне свойств находятся в верхней части списка пользователей, имеют преимущество перед нижними. Например, если вы добавите в список группу kids и дадите им права чтения и записи, то они уже не будут ограничены правами группы staff, хоть и будут входить в ее число.

    Учтите, что свободно изменять права доступа к объектам могут только админи­страторы. Если обычный пользователь, например, попробует «чужой» документ сделать «своим», ему придется ввести пароль администратора.

    Групповая настройка прав доступа

    Как быть, если необходимо изменить права доступа к нескольким объектам? Конечно, вам не придется перебирать их по одному. Есть несколько вариантов решения этой задачи.

  • Нужно изменить права доступа к нескольким объектам , которые находятся в одной папке, но не ко всему содержимому этой папки. Выделите нужные объ­екты. Это должны бьть однородные объекты, то есть, только файлы или толь­ко папки. Дальше, удерживая нажатой клавишу Alt, выберите Файл>Показать инспектор. Откроется общее окно свойств, в котором вы, развернув раздел Общий доступ и прав доступа, сможете изменить нрава доступа к всем вы­деленным объектам.
  • Нужно изменить права доступа к папке (диску) и всем объектам, которые на­ходятся внутри. Может случиться, что из-за ваших неправильных действий или некорректной работы каких-то программ были изменены права доступа к вашей личной папке или ее содержимому Это может повлиять на работу программ, хранящих свои файлы в вашей личной папке (например, Mail и Адресной кни­ги).

    Если при попытке запустить такую программу вы получите сообигение, что «Программа не отвечает» или что-то в этом роде, проверьте, правильно ли за­даны привилегии доступа к папке -/Библиотеки/.

  • Вы должны быть единственным пользователем с правами чтения и записи. Все остальные должны иметь категорию «нет доступа».

  • Игнорировать права доступ на диске (томе) , В окне свойств незагрузочно­го диска, в разделе Общий доступ и пра&а доступа, есть опция Игнорировать владельцев в этом томе. Если она отключена, то есть права доступа на этом томе принимаются во внимание, вы можете столкнуться с ситуацией, что вам недоступны ваши же документы, которые находятся в старой личной папке (из которой вы давно «переехали»).
  • В таком случае включите Игнорировать владельцев в этом томе и спокойно открывайте все документы. Иногда для этого, может потребоваться перезагру­зить компьютер.

    «Скорая помощь» для прав доступа

    Советую очень осторожно относиться к изменению прав доступа, особенно к папкам, содержащим системные и программные компоненты. После некото­рых, казалось бы, совершенно безобидных изменений – например, запрещения всем остальным пользователям иметь доступ к системным папкам – возможна неправильная работа системы и остальных программ.

    Поэтому лучше ограни­читься настройкой прав для своих собственных папок, которые вы хотели бы скрыть от всеобщего доступа.

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

  • Установщики программ сторонних производителей могут некорректно уста­навливать права для своих папок и файлов, и даже для папки /Программы/, Симптомом таких нарушений становится появление вопросительного знака вместо иконок программ в Доке и, возможно, проблемы с подключением к Интернету.
  • Перезагрузившись с другого системного диска и включив опцию Игнориро­вать владельцев в этом томе, вы фактически получаете права суперпользова­теля по отношению ко всем файлам Mac OS X, которые находятся на жестком диске – можете переносить, удалять и изменять даже ее системные компонен­ты. Чтобы избежать дальнейших проблем в работе такой системы, лучше не вы­полнять никаких действий С незнакомыми элементами, даже не открывать их.
  • Решить проблемы в работе системы, связанные с неправильно установленны­ми правами, можно с помощью программы Дисковая утилита (/Программы/ Служебные программы/). В левом окне профаммы вылелите диск (или раздел диска), где находится «проблемная» Mac OS, в правом – откройте закладку Первая помощь (First Aid). Что можно сделать:

    Проверить права доступа . Программа проверит, нет ли конфликтов в правах доступа на этом диске. Вы получите отчет о проверке, на основании которого сможете решить, нужно ли их исправлять или нет.

    Восстановить права доступа . Если в ходе проверки прав доступа были обнаружены какие-то проблемы, можете попробовать их исправить. На сообщения типа «ACL обнаружен, но не ожидается», можно не обращать внимания. Наличие ACL не нарушает работы системных компонентов и Дисковая утилита их, как правило, не удаляет.

    В Леопарде восстанавливать права доступа можно без перезагрузки с установочного диска, как того требовали предыдущие версии Mac OS. Права доступа ко всем компонентам операционной системы и программам Apple будут сброшены в состояние «по умолчанию». Программы Apple в процессе установки записывают информацию о своих компонентах в папку /Библиотеки/Receipts/. Эти данные дисковая утилита и использует для восстановления прав. Если содержимое папки со сведениями об этих пакетах было уничтожено, утилита восстановит только системные права.

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

    Средства обмена данными между пользователями

    До сих пор мы рассказывали как Mac OS защищает данные пользователей от постороннего доступа. Но есть множество ситуаций, когда наоборот - многие данные, такие как медиатека iTunes или фотоснимки iPhoto должны стать до­ступными всем пользователям одного Мака. Рассмотрим, какие есть средства организацгии обмена файлами всех зарегистрированных пользователей.

    Папка Общий доступ . Находится в папке /Пользователи/. Информация вну­три этой папки доступна всем пользователям, – они могут копировать из нее существующие объекпл и записывать свои.

    Папка Общие . Находится в вашей личной папке. Информация в этой папке доступна остальным пользователям только с правом чтения. Все могут могут открывать ее, просматривать файлы и что-либо из нее копировать.

    Папка Почтовый ящик . Находится в папке -/Общие/). Только вы будете иметь к ней полный доступ. Все остальные могут в нее только что-либо запи­сывать, без права даже просматривать ее содержимое.

    Итак, если вам нужно предоставить файл или папку для всеобщего пользования – поместите ее в папку /Пользователи/Общий доступ/. Только не спешите копировать туда свою медиатеку или фототеку. Чтобы разместить в ней файлы каких-то программ, лучше обратиться к справке этих программ – здесь могут быть нюансы относительно того, какие компоненты лучше туда скопировать и как остальным пользователям «подключиться» к общим данным. Но если музыкальные файлы или изображения хранятся у вас за пределами медиатеки или фототеки, можете смело переносить их в папку Общий доступ – они тут же станут доступными для всех пользователей.

    Если хотите, чтобы все могли пользоваться вашими файлами, но не могли их удалять или добавлять свои - запишите эти файлы в папку -/Общие/. И, наконец, чтобы передать файл кому-либо лично, бросьте его в Почтовый ящик этого пользователя.

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

    Работая в Linux (равно как и во FreeBSD и Windows), нужно не забывать о правах доступа на файлы и папки. Часто это касается директории Web серверов на OS Linux когда необходимо правильно выставить права на директории и файлы с точки зрения безопасности. Выставлять права отдельно на каждый файл или папки не совсем правильное решение когда этих файлов и папок десятки, а то и сотни.

    Ниже приведенные примеры помогут удобно и быстро выставить права файлов или папок в кратчайшие сроки.

    Изменить владельца для папки и всех файлов лежащих в этой папке

    Чтобы сменить владельца, в Unix используется команда chown . Первая группа параметров данной команды — опции. Для того, чтобы изменения коснулись не только данной директории, но и всех поддиректорий, нужно применить команду рекурсивно — с параметром «-R».

    Вторая группа параметров — это владелец и группа владельцев, разделённые двоеточием (можно не устанавливать группу — тогда это просто логин владельца) — «user:group» или «user».

    Третья же группа параметров — это пути до папок / файлов, к которым нужно применить команду. Например, «/home/user/dir/».

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

    Sudo chown -R user:group /home/user/dir/

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

    Изменить права доступа на файл или папку

    Помимо владельца, можно настроить, что же может этот самый владелец и группа, а также все остальные. В Unix идёт разделение возможностей именно таким образом — есть 3 группы прав: владелец , группа владельцев и другие . И права, что можно присвоить каждой группе:

    • Право на запуск файла. Оно же — право на проход по директории (если устанавливаем права на директории).
    • Право на изменение файла. Оно же — право на создание и удаление файлов и папок в директории (опять же, если устанавливается для папки).
    • И право на чтение файла. Для папок — это право на просмотр содержимого папки.

    Кодируются эти права следующим образом: запуск — 1, изменение — 2, чтение — 4. Складывая их мы получим набор прав, предоставляемый владельцу/группе/другим.

    Права на доступ изменяются командой chmod .

    • Изменять файл имеет право только владелец, группа владельце может читать, остальные — ничего не могут: chmod 640 /media/share/file.txt
    • Создавать файлы в папке могут все, но видит их только владелец: chmod 622 /media/share/messages/
    • Есть программа, которая не хочет запускаться — не хватает прав на исполнение. Нужно, чтобы все могли её запустить, но никто, кроме владельца, не мог её редактировать: chmod 711 /media/share/exec

    Для рекурсивного изменения прав используется опять же ключ «-R». Например, chmod -R 700 /home/user — доступ к файлам и папкам /home/user останется только у владельца.

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

    Изменение прав только на файлы или только на папки

    Вышеприведённый пример рекурсивного изменения прав на файлы и папки в /home/user/ не так уж и хорош, как может показаться. Мы сделали, чтобы теперь и обычные файлы могли запускаться. Это может привести к проблемам, если среди фалов были примеры программ, на которые специально были выставлены права без запуска, дабы случайно не исполнить хранимые программы. Если бы мы поставили права 600 — мы бы потеряли доступ к подпапкам и файлам, лежащим в них, ибо без права «на исполнение» (оно же — «право перехода по папке»), мы бы не смогли до них добраться.

    Так что мухи — отдельно, котлеты — отдельно: зададим права сначала для одних, потом — для других. В этом нам поможет команда find .

    Find /home/user -type f -exec chmod 600 {} \;

    Немного магии, но если присмотреться, всё понятно: найти в /home/user все объекты, типа file (f) и выполнить для них chmod 600.

    Или же для директорий:

    Find /home/user -type d -exec chmod 700 {} \;

    Крайне полезны могут быть утилиты find, grep для поиска и фильтрации работы команд. chown и chmod также умеют больше, чем здесь описано. Есть ещё chattr — для смены атрибутов папок и файлов (про атрибуты — в другой раз). Все выше перечисленные утилиты имеют хорошую документацию.

    Команда сhmod (ch ange mod e) служит для изменения прав доступа к файлам и папкам.

    Синтаксис

    Команды chmod имеет следующий синтаксис:

    $ chmod permissions file[s]

    • -R, —recursive; изменять файлы и директории рекурсивно
    • -f, —silent, —quiet; не выводить сообщения об ошибках

    Показать текущие права на файл / директорию можно с помощью команды ls :

    $ ls -l MyFile.txt -rw-r--r-- 1 john admin 0 2012-12-02 04:30 MyFile.txt $ ls -ld MyDir drwxr-xr-x 2 john admin 4096 2012-12-02 04:29 MyDir

    или используя команду stat :

    $ stat -c "%A %a %n" MyFile.txt -rw-r--r-- 644 MyFile.txt $ stat -c "%A %a %n" MyDir drwxr-xr-x 755 MyDir

    Классы доступа

    Классы доступа используются для того, чтобы определить какому пользователю назначаются права. Если класс доступа не указан, то по умолчанию используется класс “all”. Классы доступа представлены одной или несколькими из ниже перечисленных букв:

    Операторы

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

    Права доступа

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

    [X ] сам по себе не является правом доступа, но тем не менее, может использоваться вместо x . Он на самом деле полезен только в случае использования оператора ‘+’ в сочетании с опцией -R, для того чтобы предоставить группе или остальным пользователям права доступа к дереву каталога, не давая прав на исполнение обычных файлов (например текстовых), что случится при применении команды ‘chmod -R a+rx’. Таким образом вместо нее можно использовать ‘X’, и соответственно выполнить ‘chmod -R a+rX’.

    Числовые права доступа

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

    Числовая форма для прав доступа:

    • Первая user (пользователь)
    • Вторая цифра используется для обозначения group (группа)
    • Третья цифра используется для обозначения others (остальные)

    10 Простых Примеров:

    1. Добавить всем права на чтение файла:

    $ chmod a+r file

    2. Забрать права на исполнение файла у всех:

    $ chmod a-x file

    3. Добавить всем права на чтение и запись:

    $ chmod a+rw file

    4. Установить права на чтение и запись для владельца и забрать права у всех остальных:

    $ chmod u=rw,go= file

    5. Для директории и всего ее содержимого добавить права на запись для владельца, и забрать права на запись для всех остальных:

    $ chmod -R u+w,go-w directory

    6. Забрать у всех все права:

    $ chmod file

    7. Дать всем права на права на чтение, запись и выполнение файла:

    $ chmod 777 file

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

    $ chmod 664 file

    9. Назначить права ‘-rwx’ для владельцев директорий, добавить права ‘rw’ для владельцев файлов, ‘—‘ для всех остальных:

    $ chmod -R u+rwX,g-rwx,o-rwx directory

    10. Забрать у всех права на исполнение файлов в директории и поддиректориях, но в то же время, разрешить всем просматривать содержимое директорий.



    Есть вопросы?

    Сообщить об опечатке

    Текст, который будет отправлен нашим редакторам: