Войти

Показать полную графическую версию : [решено] Пользователю даны разрешения на файл, но по факту их нет


__sa__nya
26-01-2016, 05:04
Доброе время суток. Есть 2 пользователя alice и andy, оба входя в дополняющую группу ateam:
http://s018.radikal.ru/i526/1601/da/d10257db62a7.jpg
Есть файл andyfile3, у которого для группы ateam установлены разрешения на чтение и изменение:
http://s019.radikal.ru/i635/1601/f4/826ea7d42e7b.jpg (http://radikal.ru/big/fef105fcbdb24c7e8444f51073f26d28)
Но когда пользователь alice пытается изменить файл, выходит запрет доступа:
http://s016.radikal.ru/i334/1601/7b/4b6cd339dc55.jpg
- Вопрос, что не так ?

ruslandh
26-01-2016, 06:42
- Что выдаёт команда id у каждого из пользователей.
- Что выдают
ls -ld /home/ateam-test
ls -l /home/ateam-test/*


И да - выделите мышкой текст и вставьте его средней кнопкой мыши в своём ответе. Картитнки неудобны - их нельзя не проанализировать, ни текст из них скопировать.

NickM
26-01-2016, 11:25
__sa__nya, явно видно, что у файла отсутствуют права общей группы. Да и... правильней наверное относительный путь указывать -./file

__sa__nya
26-01-2016, 17:42
ruslandh,
ID для пользователей:


alice:
id uid=512(alice) gid=512(alice) groups=512(alice),40001(ateam) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
andy:

id uid=511(andy) gid=511(andy) groups=511(andy),40001(ateam) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023


вывод команд ls-ld и ls -l :



[root@centos-server ~]# ls -ld /home/ateam-test
drwxrwx---. 2 root ateam 4096 Jan 6 00:52 /home/ateam-test

[root@centos-server ~]# ls -l /home/ateam-test/*
-rw-rw-r--. 1 alice alice 5 Jan 6 00:52 /home/ateam-test/alicefile
-rw-rw-r--. 1 andy andy 0 Jan 6 00:44 /home/ateam-test/andyfile3



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

- Да, действительно, это и было причиной. Но почему у файла andyfile3 не было разрешений на группу ateam (вместо нее andy) - он был создан в папке atem-test уже после того, как для папки была выставлена группа ateam, почему файл не наследовал разрешения папки где он был создан ?

ruslandh
26-01-2016, 18:04
А он никогда и не наследуется а берётся по основной группе пользователя, создавшего файл.

__sa__nya
26-01-2016, 19:07
А в каких-нибудь политиках определяется, чтобы поведение файловой системы, в частности наследование разрешений было аналогичным с NTFS ?

ruslandh
26-01-2016, 20:12
Я такого не знаю.

NickM
26-01-2016, 21:14
А в каких-нибудь политиках определяется, чтобы поведение файловой системы, в частности наследование разрешений было аналогичным с NTFS ? »

Почитайте за sticky bit, suid для группы, может это то, что Вам нужно?

Upd: это конечно в контексте каталога, не файловой системы.

Биты setuid и setgid, установленные для каталогов, имеют совсем другой смысл.

Бит setgid для директории (chmod g+s) заставляет только новые каталоги и файлы, созданные в ней, наследовать ID группы этой директории вместо ID группы пользователя, создавшего файл. Новые поддиректории также наследуют бит setgid. Это позволяет создать общее рабочее пространство для группы без неудобств членам группы явно менять их текущую группу для создания новых файлов и каталогов.

Наследование устанавливается только для новых файлов и каталогов. Уже существующим файлам и каталогам этот бит нужно устанавливать вручную, например:

find /path/to/directory -type d -exec chmod g+s {} \;
Бит setuid, установленный для директорий игнорируется в большинстве версий Unix

__sa__nya
27-01-2016, 07:56
NickM, , гляну, спасибо.

zai
27-01-2016, 14:15
в каких-нибудь политиках определяется, чтобы поведение файловой системы, в частности наследование разрешений было аналогичным с NTFS ? »
samba4

oloiphut
27-01-2016, 22:17
Да, действительно, это и было причиной. Но почему у файла andyfile3 не было разрешений на группу ateam (вместо нее andy) - он был создан в папке atem-test уже после того, как для папки была выставлена группа ateam, почему файл не наследовал разрешения папки где он был создан ? »
Потому что файлы и директории в линуксе создаются с правами и правилами umask пользователя, которым создаются.
А в каких-нибудь политиках определяется, чтобы поведение файловой системы, в частности наследование разрешений было аналогичным с NTFS ? »
Не очень разбираюсь в политиках прав Windows, но исходя из предыдущего, у вас есть желание, чтобы у создаваемых файлов и директорий в определённой директории наследовались права доступа этой директории. Это возможно средствами ACL, системы расширенного контроля доступа, которая по умолчанию в большинстве дистрибутивов не задействована.

Итак

1. Убеждаемся, что на нужном разделе включена поддержка ACL, для примера, на корневом:

$ mount | grep " / "
/dev/sda1 on / type ext4 (rw,errors=remount-ro,acl)

1.1 Если в опциях монтирования отсутствует acl, то тогда следует её добавить, отредактировав соответствующую запись в /etc/fstab и перемонтировав:

$ sudo mount -o remount,rw /

1.2 Также возможно, что в системе не установлен пакет с утилитами ACL (setfacl, getfacl), установите его из стандартного репозитория, обычно он так и называется - acl.

2. Устанавливаем полные права доступа к директории /home/ateam-test/ для членов группы ateam с рекурсивным наследованием по умолчанию:

$ setfacl -Rdm "g:ateam:rwx" /home/ateam-test/

3. Курим маны setfacl, getfacl, чтобы понять досконально, как оно работает.
4. PROFIT !!!

zai
28-01-2016, 09:46
chmod+chown

З.Ы. __sa__nya, твоя проблема - это GUI, избавься от него и вопросов будет на порядок меньше




© OSzone.net 2001-2012