URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID15
Нить номер: 2115
[ Назад ]

Исходное сообщение
"Автоматическое присвоение прав пользователей на копируемые ф..."

Отправлено karapuzz , 03-Авг-08 05:41 
Начну по порядку. На десктопе стоит OpenSUSE 11 kernel 2.6.25.5, ФС - ext3. Есть два
пользователя (А и В) и оба состоят в группе users. В домашнем каталоге
пользователя А есть каталог "Моя музыка" для которого (и всего его
содержимого) необходимо сделать полный доступ для пользователей А и В, при
этом вновь создаваемые файлы и каталоги автоматически должны получать теже
права.
Я поступил следующим образом:
>find моя\ музыка -type d -exec chmod g+rwx {} \;
>find моя\ музыка -type f -exec chmod g+rw {} \;
>find моя\ музыка -type d -exec setfacl -m default:user::rwx {} \;
>find моя\ музыка -type d -exec setfacl -m default:mask:rwx {} \;

Что я получил в итоге? Getfacl моя\ музыка выдает:
>user::rwx
>group::rwx
>other::r-x
>default:user::rwx
>default:group::rwx
>default:mask::rwx
>default:other::r-x

Тоже и для существующих каталогов внутри "Моя музыка" и для внось создаваемых
каталогов.

Для создаваемых внутри "Моя музыка" файлов getfacl выдает:
>user::rw-
>group::rwx                      #effective:rw-
>mask::rw-
>other::r--

А вот если файл скопировать,  (не важно кто из А и В копирует и чей файл) то:
>user::rw-
>group::rwx                      #effective:r--
>mask::r--
>other::r--

В итоге полный доступ к файлу имеет только владелец, оставльные члены группы
обламываются (mask::r--). Хочу обратить внимание, что если копировать каталог, то ему
присваиваются теже права, что и на "Моя музыка", не работает именно с
файлами.
Пробывал umask 002, не помагает. Пробывал chmod -R g+s, тоже не помагает.
Подскажите пожалуйста, может я что-то не учел при раздаче прав, и как можно
решить мою проблему? Спасибо за ответ.


Содержание

Сообщения в этом обсуждении
"Автоматическое присвоение прав пользователей на копируемые ф..."
Отправлено angra , 07-Авг-08 04:24 
Вы бы сформулировали чего хотите, а не перечисляли что пробовали. Пока не увидел ничего что нельзя было бы решить стандартными юниксовыми правами, без всяких ACL.

"Автоматическое присвоение прав пользователей на копируемые ф..."
Отправлено karapuzz , 07-Авг-08 09:42 
>Вы бы сформулировали чего хотите, а не перечисляли что пробовали. Пока не
>увидел ничего что нельзя было бы решить стандартными юниксовыми правами, без
>всяких ACL.

Я хочу чтоб копируемому в каталог "Моя музыка" файлу автоматически присваивались права rw-rw-r--. На практике такие права присваиваются только создаваемому.


"Автоматическое присвоение прав пользователей на копируемые ф..."
Отправлено karapuzz , 26-Сен-08 16:00 
Я так и не смог найти решение. Подскажите куда копать?


"Автоматическое присвоение прав пользователей на копируемые ф..."
Отправлено SubGun , 11-Мрт-09 12:56 
>Я так и не смог найти решение. Подскажите куда копать?

-dm


"Автоматическое присвоение прав пользователей на копируемые ф..."
Отправлено karapuzz , 11-Мрт-09 13:35 
>-dm

а чем опция -dm отличается от -m default:итд?
setfacl -dm user::rwx и setfacl -m default:user::rwx дает один и тот же результат.



"Автоматическое присвоение прав пользователей на копируемые ф..."
Отправлено vic , 11-Мрт-09 15:22 
>>Вы бы сформулировали чего хотите, а не перечисляли что пробовали. Пока не
>>увидел ничего что нельзя было бы решить стандартными юниксовыми правами, без
>>всяких ACL.
>
>Я хочу чтоб копируемому в каталог "Моя музыка" файлу автоматически присваивались права
>rw-rw-r--. На практике такие права присваиваются только создаваемому.

Факт простого копирования в какой-то каталог не означает что пользователь хочет его расшарить, утилита копирования не телепат, надо явно сказать какие права ставить, например используя утилиту install вместо cp, ну или связку cp file1 file2 && chmod 664 file2


"Автоматическое присвоение прав пользователей на копируемые ф..."
Отправлено Karapuzz , 12-Мрт-09 02:37 
>Факт простого копирования в какой-то каталог не означает что пользователь хочет его
>расшарить, утилита копирования не телепат, надо явно сказать какие права ставить,
>например используя утилиту install вместо cp, ну или связку cp file1
>file2 && chmod 664 file2

А разве setfacl -m default не является явным указанием прав? Тем более копируемому каталогу присваиваются нужные мне права автоматом, не работает именно с файлами. Такое поведение мне не понятно. Возможно такая политика связана с безопасностью, кто знает что там за файл, но это лишь мои догадки.



"Автоматическое присвоение прав пользователей на копируемые ф..."
Отправлено vic , 12-Мрт-09 12:34 

>А разве setfacl -m default не является явным указанием прав? Тем более
>копируемому каталогу присваиваются нужные мне права автоматом, не работает именно с
>файлами. Такое поведение мне не понятно. Возможно такая политика связана с
>безопасностью, кто знает что там за файл, но это лишь мои
>догадки.

логи действий в студию:
атрибуты и acl копируемого каталога, атрибуты и acl целевого каталога, umask, команда копирования, ls -l и getfacl на все до и после.


"Автоматическое присвоение прав пользователей на копируемые ф..."
Отправлено karapuzz , 12-Мрт-09 14:08 
>логи действий в студию:
>атрибуты и acl копируемого каталога, атрибуты и acl целевого каталога, umask, команда
>копирования, ls -l и getfacl на все до и после.

ok, поехпли. Создаю каталог ~/1
ls -l
>drwxr-xr-x    2 jura users       4096 Мар 12 19:57 1

getfacl 1
># file: 1
># owner: jura
># group: users
>user::rwx
>group::r-x
>other::r-x

umask
>0022

Далее присваиваю права
>chmod g+rwx 1
>setfacl -m default:group::rwx 1
>setfacl -m default:mask:rwx 1

Смотрим что получилось
getfacl 1
>group::rwx
>other::r-x
>default:user::rwx
>default:group::rwx
>default:mask::rwx
>default:other::r-x

umask
>0022

ls -l
>drwxrwxr-x+   2 jura users       4096 Мар 12 20:11 1

Теперь копируем файл и каталог. Так как это десктоп и пользуюсь не только я, но и жена, то копирование делается средствами DE, точнее kde.
Копируем каталог folder в каталог 1 и смотрим что получилось.
getfacl folder
>group::rwx
>group:users:rwx
>mask::rwx
>other::r-x
>default:user::rwx
>default:group::rwx
>default:mask::rwx
>default:other::r-x

ls -l
>drwxrwxr-x+ 2 jura users 4096 Мар 12 20:22 folder

Если копировать cp -r folder ~/1, то
getfacl folder
>user::rwx
>group::rwx                      #effective:r-x
>mask::r-x
>other::r-x
>default:user::rwx
>default:group::rwx
>default:mask::rwx
>default:other::r-x

ls -l
>drwxr-xr-x+ 2 jura users 4096 Мар 12 20:55 folder

umask для folder в обоих случаях дает 0022


Копируем файл cp file ~/1 или при помощи DE, не важно, результат один
getfacl file
># file: file
># owner: jura
># group: users
>user::rw-
>group::rwx                      #effective:r--
>mask::r--
>other::r--

umask
>0022

ls -l
>-rw-r--r--+ 1 jura users    2 Мар 12 20:52 file


"Автоматическое присвоение прав пользователей на копируемые ф..."
Отправлено vic , 12-Мрт-09 14:26 
а теперь ls -l и getfacl еще и для исходного folder, плз, а то только результат привели, но не исходные атрибуты.

"Автоматическое присвоение прав пользователей на копируемые ф..."
Отправлено karapuzz , 12-Мрт-09 14:47 
>а теперь ls -l и getfacl еще и для исходного folder, плз,
>а то только результат привели, но не исходные атрибуты.

Да, прошу прощения.
ls -l
>drwxr-xr-x 2 jura users 4096 Мар 12 21:36 folder

getfacl folder
># file: folder
># owner: jura
># group: users
>user::rwx
>group::r-x
>other::r-x

umask
>0022

И для исходного file
ls -l
>-rw-r--r-- 1 jura users    2 Мар 12 21:40 file

getfacl file
># file: file
># owner: jura
># group: users
>user::rw-
>group::r--
>other::r--


"Автоматическое присвоение прав пользователей на копируемые ф..."
Отправлено vic , 12-Мрт-09 17:35 
ок, убедились в исходных атрибутах.

теперь сравним результат копирования для каталога с помощью DE и с помощью cp:
DE:
>ls -l
>drwxrwxr-x+ 2 jura users 4096 Мар 12 20:22 folder

cp:
>ls -l
>drwxr-xr-x+ 2 jura users 4096 Мар 12 20:55 folder

DE в отличии от cp действует как-то своеобразно, не устанавливая атрибуты исходного каталога для скопированного, да-да, это не автоматика, а такая работа кода DE. Поэтому мы видим w для группы. Видимо программисты DE что-то делают не так.

теперь сравним acl атрибуты:
DE добавляет новую запись group:users:rwx к скопированному каталогу, а его просили?
cp этого не делает, и getfacl дает коммент #effective:r-x, т.е. с учетом маски эффективный режим доступа r-x. Что логично, т.к. открывать доступ к объекту следует явно во избежание неожиданностей.

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

ЗЫ Представьте себе ситуацию в которой файл дважды скопирован (через некий каталог с "автоматическим" изменением атрибутов). Каково будет удивление владельца файла если права rw-r--r-- превратятся волшебным образом в rw-rw-rw- после копирования? Поэтому политика такова что целевой файл должен получать атрибуты исходного (если явно не сказано иное), или более урезанные согласно маске.


"Автоматическое присвоение прав пользователей на копируемые ф..."
Отправлено Karapuzz , 13-Мрт-09 06:43 
Спасибо Вам за пояснения, теперь стало понятней. Но как же мне быть? Выносить общее для обоих пользователей на fat, а как же dvd исошки более 4 ГГб? Сказать жене "копируй фотографии с фотоаппарата вот этой командой а не удобной digikam", тоже не выход. Дать крону задачу, чтоб делал периодически find folder -type -f -exec chmod g+rw {} \; вообще изврат. Больше пока ни чего не придумал :)


"Автоматическое присвоение прав пользователей на копируемые ф..."
Отправлено vic , 13-Мрт-09 12:12 
>Спасибо Вам за пояснения, теперь стало понятней. Но как же мне быть?
>Выносить общее для обоих пользователей на fat, а как же dvd
>исошки более 4 ГГб? Сказать жене "копируй фотографии с фотоаппарата вот
>этой командой а не удобной digikam", тоже не выход. Дать крону
>задачу, чтоб делал периодически find folder -type -f -exec chmod g+rw
>{} \; вообще изврат. Больше пока ни чего не придумал :)
>

а как монтируется фляшка? какая маска у digikam? могет поправить там, чтобы файлы сразу rw-rw-r-- были?


"Автоматическое присвоение прав пользователей на копируемые ф..."
Отправлено pavel , 14-Авг-09 11:22 
>файлами.
>Пробывал umask 002, не помагает. Пробывал chmod -R g+s, тоже не помагает.

Я поборол проблему так: Перед тем, как что либо сделать, в самом начале скрипта я объявляю umask 002, дальше уже работаю.
umask действует только в рамках сессии.

Или Вы про другое?


"Автоматическое присвоение прав пользователей на копируемые ф..."
Отправлено karapuz , 14-Авг-09 14:26 
>>файлами.
>>Пробывал umask 002, не помагает. Пробывал chmod -R g+s, тоже не помагает.
>
>Я поборол проблему так: Перед тем, как что либо сделать, в самом
>начале скрипта я объявляю umask 002, дальше уже работаю.
>umask действует только в рамках сессии.
>
>Или Вы про другое?

Да, про другое. Попробуйте скопировать файл с диска в каталог с umask 002. Права у файла останутся r--r--r--



"Автоматическое присвоение прав пользователей на копируемые ф..."
Отправлено pavel , 14-Авг-09 17:23 
>[оверквотинг удален]
>>>Пробывал umask 002, не помагает. Пробывал chmod -R g+s, тоже не помагает.
>>
>>Я поборол проблему так: Перед тем, как что либо сделать, в самом
>>начале скрипта я объявляю umask 002, дальше уже работаю.
>>umask действует только в рамках сессии.
>>
>>Или Вы про другое?
>
>Да, про другое. Попробуйте скопировать файл с диска в каталог с umask
>002. Права у файла останутся r--r--r--

# cp /etc/motd .
# getfacl motd
#file:motd
#owner:0
#group:80
user::rw-
user:appdata:rwx                # effective: r--
group::rwx              # effective: r--
group:appdata:rwx               # effective: r--
mask::r--
other::r--

Так не работает... А вот так:

# rm motd
# cat /etc/motd | cat > motd
# getfacl motd
#file:motd
#owner:0
#group:80
user::rw-
user:appdata:rwx                # effective: rw-
group::rwx              # effective: rw-
group:appdata:rwx               # effective: rw-
mask::rw-
other::r--

Работает.
Самое интересное, что даже через скрипт

# cat vv.sh
#!/usr/local/bin/bash

umask 002
cp /etc/motd .

Не работает при копировании, только при создании новых файлов или каталогов.


"Автоматическое присвоение прав пользователей на копируемые ф..."
Отправлено karapuzz , 15-Авг-09 04:30 
Я для себя нашел другое решение, основанное на использовании средств мониторинга ФС (fam или gamin). Об этом я писал на хабре. Комментарии тоже могут быть интересные. http://habrahabr.ru/blogs/linux/64868/


"Автоматическое присвоение прав пользователей на копируемые ф..."
Отправлено anonymous , 15-Авг-09 14:44 
2 пользователя test1 и test2 находятся в приватных группах и дополнительно в группе sharer. umask 002. Создан каталог test, в котором предполагается хранить общие файлы.
Вид /home (немного подредактированный) с правами

drwsrwsr-x  3 root  sharer  4096 2009-08-15 14:29 test
drwx------ 24 test1 test1   4096 2009-08-15 14:34 test1
drwx------ 22 test2 test2   4096 2009-08-15 14:24 test2

Результат тестирования (копирование и создание каталогов - gnome и kde3)
[root@seed ~]# ls -laR /home/test
/home/test:
total 24
drwsrwsr-x 3 root  sharer 4096 2009-08-15 14:29 .
drwxr-xr-x 8 root  root   4096 2009-08-15 14:03 ..
-rw-rw-r-- 1 test1 sharer 3177 2009-08-15 14:06 2009-08-15-Note-14-06.xoj
-rw-rw-r-- 1 test2 sharer 3948 2009-08-15 14:23 2009-08-15-Note-14-23.xoj
drwxrwsr-x 2 test1 sharer 4096 2009-08-15 14:28 created by test1
-rw------- 1 test1 sharer 3177 2009-08-15 14:06 xxx.xoj

/home/test/created by test1:
total 12
drwxrwsr-x 2 test1 sharer 4096 2009-08-15 14:28 .
drwsrwsr-x 3 root  sharer 4096 2009-08-15 14:29 ..
-rw-rw-r-- 1 test1 sharer  239 2009-08-15 14:05 preferred-mail-reader.desktop

Файл xxx.xoj специально был создан с правами 600 и затем скопирован в test

Такой вариант устраивает?


"Автоматическое присвоение прав пользователей на копируемые ф..."
Отправлено anonymous , 15-Авг-09 14:46 
PS: это все в linux, как другие ОС интерпретируют sgid я не знаю

"Автоматическое присвоение прав пользователей на копируемые ф..."
Отправлено karapuzz , 31-Авг-09 16:25 
Чего-то не пойму. Я конечно сделал немного проще, ибо для тестов не было желания создавать приватные группы, в общем вот:
Есть два пользователя, оба члены группы users и группы video.

1. Делаю #umask 002.
2. Создаю каталог 1, его права rwxrwxr-w ибо umask 002
3. sudo chown root:video 1
4. sudo chmod a+s 1
5. ls -l
drwsrwsr-x  2 root video 4096 Авг 31 23:08 1
6. touch 123 /В другом каталоге.
7. ls -l
-rw-rw-r--  1 jura users    0 Авг 31 23:11 123 /группа rw потому как umask 002
8. chmod g-w 123 && ls -l
-rw-r--r--  1 jura users    0 Авг 31 23:11 123
9. cp 123 ~/Desktop/1
10. cd ~/Desktop/1 && ls -l
-rw-r--r-- 1 jura video 0 Авг 31 23:14 123

Итог, кроме владеющей группы ни чего не изменилось. Суть вашего решения я понял так, все файлы имеют полные права для владеющей группы, вопрос в том, какая группа владеет файлом. Для этого и созданы приватные группы, дабы исключить возможность полного доступа одного пользователя к файлом другого.


"Автоматическое присвоение прав пользователей на копируемые ф..."
Отправлено anonymous , 01-Сен-09 11:50 
Вроде как изначально была проблема организации совместного доступа. Она решается постановкой sgid на каталог, владельцем которого является общая для пользователей группа. Естественно, что это работает только если umask=002.
Если пользователь не хочет, чтбы файл был доступен и намеренно удаляет права для группы, то никто помешать ему это сделать не сможет.

PS: искренне считал, что приватные группы (а следовательно и umask=002) уже давно везде