Дать полные права на папку. Изменение прав на файлы или папки в 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. Забрать у всех права на исполнение файлов в директории и поддиректориях, но в то же время, разрешить всем просматривать содержимое директорий.