Online video hd

Смотреть жесткое видео

Официальный сайт zakonoproekt2010 24/7/365

Смотреть видео бесплатно

04.03.2009 06:48

karapuz — Практика распределния прав пользователей на Linux десктопе

Когда я окончательно перешел на Linux, я соответственно перенес все документы, музыку, фото и etc с NTFS разделов на ext3. Следующим шагом я создал две учетные пользовательские записи, для себя и жены, по банальной причине, разошлись во взглядах по поводу оформления рабочего стола :). Естественно весь перенесенный с Windows контент я поместил в своем домашнем каталоге. Жена активно использует каталог с фото и соответственно необходимо было дать ей права на запись в данный каталог, причем я не должен был терять полный доступ на созданные женой каталоги и файлы.

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

Итак, задача



Дано:

1.Три пользователя с учетными записями «А», «В», и «С».

2.Все три пользователя состоят в группе users.

3.Каталог «Фото», в котором содержится сложная иерархия подкаталогов и файлов, и для которого необходимо раздать права.

4.Владелец каталога «Фото» пользователь «А».

Неосновное условие:

1.Так как каталог «Фото» со всем содержимым был перенесен с NTFS раздела, то все файлы (более 500) помечены как исполняемые.



Задача:

1.Дать полный доступ на каталог «Фото» и все подкаталоги и файлы пользователю «В».

2.Для новых каталогов и файлов должны автоматически выставляться права на полный доступ для пользователей «А» и «В» независимо от того, кто является владельцем создаваемых элементов.

3.Пользователь «С» должен иметь доступ только на чтение.

4.Снять метку «исполняемый» со всех файлов в каталоге «Фото».



Краткая справка по используемым для решения задачи инструментам



Выполним в консоли команду



ls -l Фото



Увидим информацию о содержащихся внутри элементах примерно такого вида



drwxr-xr-x 1 А users 4096 Июл 20 00:30



В данной строке нас интересует та часть, где написано:



drwxr-xr-x А users.



В этой части содержится информация о правах доступа и означает следующее:

d — каталог.

Первые три символа rwx — права доступа для владельца. Чтение ( r ), запись (w) и выполнение (x), для каталога x — возможность его открывать.

Вторые r-x — права доступа для владеющей группы. Прочерк между r и x означает, что отсутствует возможность на запись. Отсутствует w.

Следующие r-x — права доступа для всех остальных.

А — владеющая учетная запись.

users — владеющая группа.



Можно сделать вывод. Владелец каталога, пользователь «А», имеет полный доступ, все остальные, в том числе и другие члены владеющей группы users, имеют доступ только на чтение.

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

chmod

setfacl

find




Команда chmod изменяет права доступа для владельца, владеющей группы и всех остальных.

Основные параметры команды chmod:

u — владелец,

g — владеющая группа,

o — другие пользователи, не входящие во владеющую группу,

a — все. Идентично ugo,

и соответственно знакомые rwx.

Например, команда



chmod g+rwx Фото #без ковычек



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

Подробней смотри man chmod.



Команда setfacl устанавливает расширенные права доступа (access control list или ACL).

Основные параметры команды setfacl:

-m — установить ACL,

-x — удалить ACL,

-b — удалить все установленные параметры ACL.

Например, команда



setfacl -m user:B:rwx



добавляет доступ на чтение, запись и выполнение для пользователя «В».

Подробней смотри man setfacl. Также смотри man acl и man getfacl.



Команда find осуществляет поиск файлов. Имеет большое количество параметров. Основной прелестью данной команды является то, что поиск может осуществляться со многими условиями. Например команда



find Фото -type d -exec chmod g+rwx {} \;



находит содержащиеся в каталоге «Фото» все каталоги (-type d) и выполняет для них (-exec) команду chmod g+rwx

Подробней смотри man find.



Решение задачи



Здесь я приведу два способа решения задачи.

Способ 1



Все команды выполняются от имени владельца каталога «Фото».

Сначала уберем метку «исполняемый» со всех фалов в каталоге «Фото».



cd ~/Фото

find Фото -type f -exec chmod a-x {} \;




Все три пользователя члены одной группы. Разрешим группе полный доступ к каталогу «Фото», всем подкаталогам и файлам. Тем самым мы дадим полный доступ всем трем пользователям.



find Фото -type f -exec chmod g+rw {} \; #полный доступ для файлов.

find Фото -type d -exec chmod g+rwx {} \; #полный доступ для каталогов.




Пользователь «С» имеет полный доступ к каталогу «Фото». Исправим это путем явного указания прав для пользователя «С».



find Фото -type d -exec setfacl -m user:C:rx {} \;

find Фото -type f -exec setfacl -m user:C:r {} \;




Теперь необходимо, чтобы для всех вновь создаваемых файлов и каталогов внутри каталога «Фото» выставлялись те же права доступа, которые мы установили выше.



find Фото -type d -exec setfacl -m default:user:C:rx {} \;



Все. Теперь пользователи «А» и «В» имеют полный доступ к каталогу «Фото», ко всем подкаталогам и файлам, даже к вновь созданным. Пользователю «С» все это доступно только для чтения.

В этом случае, если в группе users появляется еще один пользователь, и если явно не прописать права для него, то он автоматически получает полный доступ к каталогу «Фото». Это не всегда приемлемо. Рассмотрим второй способ, где данный недочет (если можно так сказать) устранен.

Способ 2



Зададим права доступа для пользователя «В» в явном виде. Напомню, что пользователь «А» является владельцем и уже имеет полный доступ.



find Фото -type f -exec setfacl -m user:B:rw {} \;

find Фото -type d -exec setfacl -m user:B:rwx {} \;




Теперь установим права по умолчанию для вновь создаваемых файлов и каталогов отдельно для пользователей «А» и «В», потому как нам неизвестно кто будет владельцем новых файлов и каталогов.



find Фото -type d -exec setfacl -m default:user:A:rwx {} \;

find Фото -type d -exec setfacl -m default:user:B:rwx {} \;




Пользователя «С» мы не трогаем, он является членом группы users, котрая имеет права rx, и соответственно пользователь «С» будет иметь права rx, что и необходимо было сделать.



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

На этом все.


Тэги: acl права пользователей
+ 10 -
Похожие Поделиться

spiff 04.03.2009 07:16 #
+ 1 -
большое спасибо. У самого такая же проблем (2 юзера). Все думал покапать в сторону setfacl, да руки не доходили... плюсанул вобщем.
exelens 04.03.2009 07:21 #
+ -2 -
А можно привести статью целиком? Конечно с сохранением ссылок на первоисточник.
karapuz 04.03.2009 07:51 #
+ 0 -
эээ, ну данный пост изначально задуман как ссылка на мой... ну пусть будет блог :). Если действительно есть необходимость, я сделаю как Вы просите, но не вижу смысла копипастить.
exelens 04.03.2009 08:03 #
+ -2 -
Это уже не копипастинг, а кросс пост с указанием источника.
karapuz 04.03.2009 10:43 #
+ 0 -
сделал как Вы просили
exelens 04.03.2009 13:19 #
+ -3 -
Спасибо
kavren 04.03.2009 07:29 #
+ 1 -
Спасибо, ваша статья помогла до конца разобраться с установкой прав.
l1feh4ck3r 04.03.2009 08:56 #
+ 1 -
Единственный вопрос: если потом переставить систему, оставив всех 3х пользователей, но не устанавливать пакет setfacl, то будут ли сохранены правила доступа к файлам и папкам?
Просто если нет, то не проще ли создать дополнительную группу, например media, добавить в нее пользователей A и B, выставить на всю папку "Фото" группу media и выставить правда "только для чтения" для всех остальных?
booley 04.03.2009 09:04 #
+ 0 -
выставить правда

Правду не выставляют.. :)
А так вы правы, это даже, имхо, более юникс-вей :)
karapuz 04.03.2009 09:08 #
+ 0 -
Я переставлял систему, естественно каталог home (отдельный раздел) не трогал, после переустановки права остались, единственное, нужно не забыть указать опцию монтировани acl.
А насчет группы media, я не уверен что пользователь А будет иметь полный доступ к созданному пользователем Б. Они же оба и так члены группы одной группы users и эта группа и так владелец каталога.
l1feh4ck3r 04.03.2009 09:10 #
+ 0 -
Немного не в том дело. Если ты выставишь права на каталог "запись и выполнение" для группы users, то вновь созданый юзверь тоже будет иметь полный доступ в каталог, а так только пользователи группы media.
К тому же по умолчанию ставиться "только для чтения" для группы, если я не ошибаюсь.
karapuz 04.03.2009 09:34 #
+ 0 -
И все это с выставленением acl для media. Понял, но лично для себя не вижу смысла, ибо третий пользователь в группе users в ближайшее время не намечается. ИМХО это все частности, понятно что способов больше чем 2 или 3, и Ваш способ тоже инетересен.
l1feh4ck3r 04.03.2009 10:16 #
+ 0 -
В статье было про трех пользователей ) A, B и С.
Dreams 04.03.2009 10:28 #
+ 1 -
хм... помоему проще было бы сделать доступ для всех к папке media =) всё равно это же ваш с женой комп :) кто там ещё будет лазить? ;)) ну а вообще, выставлять права на группу пользователей более рационально :) это если 2 пользователя, то ещё можно на каждого создавать, а если их 250+? =))
К тому же группы пользователей позволяют более гибко управлять правами доступа :)
Username 04.03.2009 10:43 #
+ -1 -
плюсанул за команду find с опцией -exec - не знал. А так, по существу - ммм написал бы просто про права юзеров.
sqrrl 04.03.2009 14:45 #
+ 1 -
Очень полезно. Спасибо. Особенно за -exec.
Murz 21.03.2009 10:53 #
+ 1 -
Спасибо за статью, понял как теперь acl для общей папки с женой настроить!
Единственная проблема осталась - с копированием файлов из другой папки и, соответственно, наоборот. Чтобы права ставились и убирались автоматом хотелось бы... А то создала она у себя в home, перенесла в общую, а я ничего с ним сделать не могу. Или наоборот - она создала файл в общей папке, перенесла к себе в home, а я всё-равно писать в него могу...
Вобщем пока остановился на наиболее простом и резком решении ;) На задании umask 0002 для всех пользователей, после чего я все файлы жены могу править, а она - мои. Только со скопированными файлами остается та же проблема ;(
karapuz 21.03.2009 11:15 #
+ 0 -
Буквально сегодня написал продолжение этой статьи, там как раз про копирование.

Смотреть видео онлайн

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн