Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по Linux (http://forum.oszone.net/forumdisplay.php?f=9)
-   -   [решено] Пользователю даны разрешения на файл, но по факту их нет (http://forum.oszone.net/showthread.php?t=310784)

__sa__nya 26-01-2016 05:04 2599124

Пользователю даны разрешения на файл, но по факту их нет
 
Доброе время суток. Есть 2 пользователя alice и andy, оба входя в дополняющую группу ateam:

Есть файл andyfile3, у которого для группы ateam установлены разрешения на чтение и изменение:
[IMG][/IMG]
Но когда пользователь alice пытается изменить файл, выходит запрет доступа:

- Вопрос, что не так ?

ruslandh 26-01-2016 06:42 2599136

- Что выдаёт команда id у каждого из пользователей.
- Что выдают
Код:

ls -ld  /home/ateam-test
ls -l /home/ateam-test/*

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

NickM 26-01-2016 11:25 2599208

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

__sa__nya 26-01-2016 17:42 2599375

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

Цитата:

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

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

ruslandh 26-01-2016 18:04 2599380

А он никогда и не наследуется а берётся по основной группе пользователя, создавшего файл.

__sa__nya 26-01-2016 19:07 2599405

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

ruslandh 26-01-2016 20:12 2599425

Я такого не знаю.

NickM 26-01-2016 21:14 2599445

Цитата:

Цитата __sa__nya
А в каких-нибудь политиках определяется, чтобы поведение файловой системы, в частности наследование разрешений было аналогичным с 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 2599518

NickM, , гляну, спасибо.

zai 27-01-2016 14:15 2599624

Цитата:

Цитата __sa__nya
в каких-нибудь политиках определяется, чтобы поведение файловой системы, в частности наследование разрешений было аналогичным с NTFS ? »

samba4

oloiphut 27-01-2016 22:17 2599853

Цитата:

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

Потому что файлы и директории в линуксе создаются с правами и правилами umask пользователя, которым создаются.
Цитата:

Цитата __sa__nya
А в каких-нибудь политиках определяется, чтобы поведение файловой системы, в частности наследование разрешений было аналогичным с 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 2599945

chmod+chown

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


Время: 12:28.

Время: 12:28.
© OSzone.net 2001-