Наследование прав в linux
Наследование прав в linux
- Наследование прав доступа, Deus, 08:26 , 25-Окт-07, (1)
- Наследование прав доступа, angra, 09:56 , 25-Окт-07, (2)
- Наследование прав доступа, ShyLion, 20:11 , 25-Окт-07, (3)
- Наследование прав доступа, angra, 09:23 , 26-Окт-07, (4)
- Наследование прав доступа, Golub Mikhail, 10:21 , 26-Окт-07, (5)
- Наследование прав доступа, ShyLion, 13:34 , 26-Окт-07, (7)
- Наследование прав доступа, angra, 06:45 , 27-Окт-07, (9)
- Наследование прав доступа, angra, 09:23 , 26-Окт-07, (4)
- Наследование прав доступа, ShyLion, 20:11 , 25-Окт-07, (3)
- Наследование прав доступа, tux2002, 11:31 , 26-Окт-07, (6)
- Наследование прав доступа, konst, 23:06 , 26-Окт-07, (8)
- Наследование прав доступа, tux2002, 08:20 , 29-Окт-07, (10)
- Наследование прав доступа, tux2002, 08:28 , 29-Окт-07, ( 11 )
- Наследование прав доступа, konstantine, 11:41 , 03-Мрт-09, ( 12 )
- Наследование прав доступа, tux2002, 08:28 , 29-Окт-07, ( 11 )
- Наследование прав доступа, tux2002, 08:20 , 29-Окт-07, (10)
- Наследование прав доступа, konst, 23:06 , 26-Окт-07, (8)
- Наследование прав доступа, andrew, 03:59 , 03-Сен-09, ( 13 )
- Наследование прав доступа, abtop, 16:41 , 27-Фев-10, ( 14 )
недостаточно информации, как сливают, по какому протоколу? ftp или samba?
у ftp и samba есть параметры которые позволяют назначить права на файлы.
если пользователь владелец файла или папки, он может задать на нем любые разрешения, в том числе и 777
Вы бы хоть вопрос прочитали бы для начала.
В ftp — umask .
В самба не помню.
В вопросе метод помещения файла в папку не указывался. В общем случае пользователю сменить разрешения на собственном файле ничего не мешает.
Таки не прочитали. Задача состоит в АВТОМАТИЧЕСКОЙ установке прав в 777, без ведома/действий пользователя. В ОБЩЕМ случае она не решаема. В частных случаях очень даже решаема.
Кроме того есть ряд случаев когда пользователь НЕ может изменить права на свой файл. Можете на досуге поискать примеры 🙂
Пользователи создают файлы с правами на основании своего значения umask.
Как наследовать права я не знаю — наверное никак.
Можно наследовать например группу папки (владельца не получится) — устанавливать на папку 42XXX
Если бы у меня стояла такая тупая задача, как дать всем файлам/папкам в опред. дир-рии права 777, я бы просто раз */3 мин рабочего времени запускал бы chmod -R 777
Я пытался донести до спрашивающего вариант с umask 002 и общей группой, в которую данные пользователи входят. Её же установить на папку.
У меня 1Ска на линухе терминальная дык пришлось каждому пользователю пр заходе автоматом ставить umask 0002. Жалко что не знаю как сделать чтобы создаваемый файл наследовал группу и владельца дирректории так было бы удобнее.
Не по человечески:
добавьте в crontab на каждую минуту chmod.
Для вопрошающих зачем пример: есть почтовик Thunderbird. Есть некий ящик, который читают несколько пользователей. Так вот, при создании новой папки, или сжатии существующей, права на соответствующий mailbox файл выставляются в 700. После такого другой пользователь вместо почты видит болт.
# наследовать владельца (вышестоящей директории)
inherit owner = yes
# наследовать ACL
inherit acls = yes
# наследовать права
inherit permissions = yes
# позвоялет редактору прав из винды корректно обрабатывать
# наследуемые права
map acl inherit = yes
www.opennet.ru
Наследование прав на папку в линуксе
Бит setgid и команда umask
В продолжение статьи о бите setuid решил написать подобную и о бите setgid, тем более, что пример, который я здесь приведу был нашим домашним заданием на курсах Linux. Хотя задание на мой взгляд было простое справилось с ним только двое из шести слушателей. Я с задачей справился и хочу рассказать как именно.А задача была следующая: создать общую папку PUB для двух пользователей, для их совместной работы. Пользователи должны иметь возможность создавать файлы в папке и редактировать файлы друг друга. Другие пользователи доступа к папке не имеют.
Для решения этой задачи нам понадобится бит setgid. Напомню, что если этот бит установлен для каталога, то создаваемые в нем объекты будут получать группу владельца каталога, а не пользователя. Пояснение: есть пользователь igor. Он создает в каталоге (бит setgid не установлен) файл. Владелец данного файла будет igor, группа-владелец основная группа пользователя igor (по умолчанию igor). Если есть каталог, владелец которого root, а группа-владелец share, и бит setgid установлен, то владелец созданного объекта будет igor, а группа-владелец не igor, а share (как и у каталога). Далее в примере будет еще понятнее.
Сначала создаю сам каталог PUB:
После этого создаю группу PUB, которая будет группой-владельцем данного каталога:
$ sudo addgroup pub
Одним пользователем буду я (igor), а второго создаю:
$ sudo adduser olya
Теперь добавляю пользователей в группу pub:
$ sudo addgroup igor pub
[email protected]:
$ sudo addgroup olya pub
Проверяю, что пользователи добавились в группу pub:
$ less /etc/group | grep pub
pub:x:1002:igor,olya
Теперь изменяю группу-владельца каталога /PUB с root на pub:
$ sudo chown root:pub /PUB/
$ ls -l / | grep PUB
drwxr-xr-x 2 root pub 4096 2009-10-24 20:19 PUB
Теперь устанавливаю права на каталог /PUB и бит setgid и проверяю результат:
$ sudo chmod g+ws,o= /PUB/
[email protected]:
$ ls -l / | grep PUB
drwxrws— 2 root pub 4096 2009-10-24 20:19 PUB
Бит setgid установлен, прав у остальных пользователей нет.
Кажется все сделал. Проверяю. Захожу с учетной записью olya и создаю файл file.txt:
Из консоли пользователя igor пробую изменить файл:
$ echo Hello! > /PUB/file.txt
bash: /PUB/file.txt: Permission denied
и получаю сообщение, что доступ запрещен. Проверяю права на файл:
$ ls -l /PUB/
ls: невозможно открыть каталог /PUB/: Permission denied
Вероятно нужно выйти и зайти в консоль повторно, так как она еще не знает, что я добавлен в группуpub. Выхожу из системы захожу еще раз, проверяю права:
$ ls -l /PUB/
итого 0
-rw-r–r– 1 olya pub 0 2009-10-24 22:01 file.txt
Вижу, что для группы pub файл имеет разрешения только на чтение. Вспоминаю о правах по умолчанию, шаблоне и команде umask. Для всех пользователей, шаблон задающий права для создаваемых объектов, установлен в 0022 (чтобы убедиться в этом можно набрать команду umask без параметров), что дает объекту файлу права 644 (или -rw-r–r–). Необходимо изменить этот шаблон для пользователей igor и olya, чтобы права для создаваемых файлов были -rw-rw—- . Для этого случая шаблон будет равен 0017. В Ubuntu этот шаблон задается в файле .profile, который расположен в домашнем каталоге каждого пользователя. Изменяю этот шаблон в файле .profile пользователей igor иolya. Необходимо найти строку со словом umask и изменить в ней значение на нужное. Захожу в систему повторно и проверяю полученный результат:
$ touch /PUB/file.txt
[email protected]:
$ echo Hello! > /PUB/file.txt
[email protected]:
$ cat /PUB/file.txt
Hello!
[email protected]:
$ touch /PUB/file2.txt
[email protected]:
$ echo Hello Igor! > file2.txt
[email protected]:
$ ls -l /PUB/
итого 8
-rw-rw—- 1 igor pub 12 2009-10-24 22:43 file2.txt
-rw-rw—- 1 olya pub 7 2009-10-24 22:38 file.txt
Вот теперь все в порядке. В каталоге /PUB создаются файлы, которые доступны для редактирования обоим пользователям. Задача довольно распространенная и теперь я знаю как ее можно решить, зная, что есть бит segid и команда umask.
debuntu.ru
Samba и наследование ACL
Возникла необходимость в разграничении прав доступа на файловом сервере (Debian, Samba) виндовым пользователям.
Стало ясно, что лучше раскурить это дело с помощью acl Разобрался, прописал в самбе необходимые параметры для работы с acl
inherit acls = Yes inherit permissions = Yes inherit owner = Yes map acl inherit = Yes
все пользователи в группе aclUsers
Есть личные папки пользователей, куда писать могут только они, а остальные пользователи (из группы aclUsers, у всех пользователей это основная группа) — только читать. Владельцы личных папок — сами пользователи
/storage/share — расшаренная папка
chown user1:aclUsers -R /storage/share/folder1 chmod 6750 -R /storage/share/folder1 setfacl -Rdm u::rwx,g::rx,o:- /storage/share/folder1
есть и такие папки, куда необходим доступ сразу 2 пользователям
chown user2:aclUsers -R /storage/share/folder2 chmod 6750 -R /storage/share/folder2 setfacl -Rdm u::rwx,g::rx,o:-,u:user1:rwx /storage/share/folder2 setfacl -Rm u:user1:rwx /storage/share/folder2
т.е. понятно, что мне необходимо наследование прав в таких папках если там создает папку или файл тот, кто имеет на это право, то у папки бы устанавливались следующие права owner: rwx group: rx other: —
если 2 пользователя имеют право, то такие права (просто добавляется ещё 1 пользователь с полными правами) owner: rwx group: rx other: — user:user1:rwx
Казалось бы, всё просто, но не тут-то было. После добавления в acl еще одного пользователя папки и файлы создаются с полными правами для группы, хотя в acl явно указано, что только чтение и выполнение что за ересь?
Не очень хочется из-за этого заводить Windows, а разграничение доступа нормальное ой как нужно
Надеюсь на помощь гуру
Как сделать правильное наследование? пока всё держится на костылях, скрипт в кроне, который подправляет права на вновь создаваемые файлы и каталоги
www.linux.org.ru
и снова права доступа [acl]
Помогите советом, совсем запутался уже.
Поставил ACL + eiciel на Ubuntu 9.10 , настроил права доступа, научил новые файлы наследовать права папки благодаря:
Но вот теперь встал вопрос, как выкрутится в таком случае, если юзер заливает файл в папку, НО потом не должен иметь возможности его удалить или изменить. (пойдет вариант и с не возможностью его открыть, после загрузки)
ЗЫ: Гугл изрыл на вопросы наследования и распределения прав доступа. Понял, что Selinux лучше чем acl, но не осилил пока.
А если посмотреть в сторону chattr +i на каталоги
Если в рамках классического unix — завести пользователя uploader с доступом в каталог назначения, дать поработать простому пользователю в контексте uploader для заливки файлов в этот каталог (например через sudo). Сам пользователь може не иметь туда прав. Всё это можно автоматизировать через самописный скрипт заливки — внутри с использованием sudo -u uploader действие и раздачу прав на этот скрипт в /etc/sudoers. Чисто acl|posixправами это не сделать за исключением варианта когда пользователь имеет права на запись в каталог, но работает с umask 777, тогда созданный им файл доступен только root.
>ЗЫ: Гугл изрыл на вопросы наследования и распределения прав доступа. Понял, что Selinux лучше чем acl, но не осилил пока.
Грустный вывод.
Хм..Принципе то решение, но опять костыли.. =( буду думать, спасибо.
ЗЫ: если подскажешь по selinux будет радостней 🙂 я просто сколько не копал, под убунту все банально — apt-get install selinux, а дальше никто не разжевал как его настраивать. на ночь глядя покурил маны, но как-то безрезультатно. =\
Это не костыли :), это нормально ИМХО.
хех, да не, решение то нормальное! 🙂 Просто в рамках поставленной серверу задачи это выглядит как костыль (для конечного пользователя) Там просто картина такая, что есть некий терминальный сервер, с файло помойкой, жестко ограниченной по доступам внутри себя. И вот вроде ACL все смог разрулить, но вот с удалением и изменением файлов встал вопрос. А писать, какие либо, скрипты — будет уже лишний геморой для админа. Конечно, если решения другого не найдется, то он мягко пойдет на те слова, что на заборах пишут 🙂 Но все же хочется в рамках более простого решения решить.
Хотя вот кстати по совету AnyKey, почти годный результат вышел, правда с флагом:
сейчас попробую с нуля все развернуть, надеюсь заработает.
Вообщем я не понял ПОЧЕМУ, НО работает после таких манипуляций:
Создаю папку. Чрез ACL выставляю нужные её атрибуты. Далее:
Да-да, бред какой-то, НО после этих команд, разрешенным пользователям можно загрузить файл в папку, он открывается только для чтения и не удаляется!
Не, это был глюк. Ребут и все с начала. Вопрос остается открытым. =((
incron + find /path/to/directory -type f -print0 | xargs -0 chattr +i
ругается на не корректный синтаксис использования команды chattr вообще я не совсем понял, что будет результирующим использования этой команды. =(
Спасибо, но это не совсем то. по ссылке идет речь о невозможности удаления файла другими пользователями, мне же нужна невозможность удалить или изменить любой файл, закаченный любым пользователем. Или я не верно понял линк?
не уж то совсем нет решения, кроме как selinux?
перечитал ман про chattr, там ясно написанно:
Для файла с установленным атрибутом `a’ разрешено лишь добавлять записи. Только суперпользователь или процесс, обладающий возможностью CAP_LINUX_IMMUTABLE, может установить или очистить этот атрибут.
Но после добавления этого атрибута я таке не могу ничего записать в папку.
Что я не так делаю? =(
> вообще я не совсем понял, что будет результирующим использования этой команды. =(
immutable на каждый файл по крону.
> Но после добавления этого атрибута я таке не могу ничего записать в папку.
Вообще логично — immutable на директорию запрещает запись в директорию.
А вот в винде дроп-фолдер просто делается — там есть специальный ACL CREATOR-OWNER, которому можно назначить какие угодно права, даже запретить чтение файла после того, как юзер его запишет.
www.linux.org.ru
Linux и права доступа
Используйте sgid:
chmod g+s /dir
Например:
mkdir Test
ls -l | grep Test
drwxrwxr-x 2 zombic zombic 4096 2011-10-12 13:36 Test
ls -l
итого 0
-rw-rw-r— 1 zombic zombic 0 2011-10-12 13:37 file.txt
sudo touch file2.txt
ls -l
итого 0
-rw-r—r— 1 root root 0 2011-10-12 13:37 file2.txt
sudo touch file3.txt
ls -l
итого 0
-rw-r—r— 1 root root 0 2011-10-12 13:37 file2.txt
-rw-r—r— 1 root zombic 0 2011-10-12 13:38 file3.txt
-rw-rw-r— 1 zombic zombic 0 2011-10-12 13:37 file.txt
Это можно реализовать набором команд setfacl, например:
Допустим у нас есть группа sales.
Создадим директорию Sales для доступа на чтение и запись пользователям, входящим в группу sales.
mkdir -m 700 Sales
setfacl -m d:g:sales:rwx,g:sales:rwx Sales
Первая команда первая команда создает директорию с правами только для root, вторая установит те же права для группы sales.
все что будет создано пользователями группы и даже рутом будет наследовать атрибуты доступа.
В интернете много информации по этому материалу
Если я все правильно понял, то вам лучше всего воспользоватся ACL.
setfacl -m default:user:iivanov:rw managerdata
Для файлов и директорий, создаваемых в директории managerdata, добавить право чтение/записи для пользователя iivanov.
toster.ru