Не удается прочитать файл, хотя он находится в моей группе и установлены разрешения для чтения группы


14

Я сталкиваюсь со странной проблемой на машине Unix / Linux:

Я являюсь членом группы, назовем ее группой A, и определенный файл (у которого другой владелец) также принадлежит группе A. Разрешения этого файла

-rw-rw----

поэтому я ожидал, что смогу открыть этот файл, но это не так: я получу сообщение об ошибке «Отказано в доступе» при попытке просмотреть содержимое файла (используя cat).

Поскольку разрешения кажутся правильными, что еще может быть причиной этого? Существуют ли «первостепенные» ограничения разрешений? Если так, как я узнаю?


2
Как насчет прав доступа к каталогу?
Карлсон

Если вы в нескольких группах, ваша текущая группа установлена ​​на A?
Code-Guru

2
@ Карлсон, если бы проблема была с правами доступа к каталогам, вы бы не смогли увидеть права доступа к файлу.
CJM

Покажите нам полный путь и имя файла, пожалуйста.
Джиппи

Это в /home/theotheruser/somefolder/bla.txt Я в нескольких группах.
Лагербаер

Ответы:


8

Вы вышли из системы и снова вошли в систему с момента добавления в группу A?

Если нет, то ваши текущие процессы входа в систему будут иметь только членство в группах, которое имело место во время входа в систему, а не изменения с тех пор. И любые дочерние процессы этого входа будут иметь одинаковое членство в группе (т. Е. Если вы вошли в X, то каждое приложение, включая ваш эмулятор терминала и оболочку)

Вы можете проверить это, войдя снова в другую консоль или через ssh, или что-то в этом роде exec sudo -u $(id -u -n) -i(чтобы эффективно убить и заменить текущую оболочку новой оболочкой - любые фоновые процессы, принадлежащие этой оболочке, будут потеряны)


Нет, это не было проблемой; Я вышел из системы и вернулся, но это не помогло.
Лагербаер

3

В NFS это зависит от того, какой режим безопасности вы используете, но в традиционном, список групп, к которым принадлежит пользователь, отправляется клиентом на сервер, и существует ограничение на количество групп, которые могут быть отправлены (это было 16 в последний раз я проверял).

Итак, клиент говорит: я uid 1234 и, кстати, я член групп 12, 13, 14 ... Если вы находитесь в более чем 16 группах, этот список будет сокращен, и будут группы для который сервер не знает, вы являетесь его участником.

Это, вероятно, объяснение этому. Только системный администратор локальной и / или удаленной машины может что-то сделать с этим, либо изменив модель безопасности или настройку сервера NFS, либо уменьшив количество групп, в которые вы входите.


У меня есть сильное чувство, что это причина, потому что группа, которую я нахожусь в положении 19 в выводе команды "groups". Я покажу этот ответ системному администратору и посмотрим, поможет ли это. :)
Lagerbaer

Как бы вы изменили «модель безопасности» в NFS, чтобы решить эту проблему?
Дэнни

2

Как вы заметили в комментарии, у вас нет прав на чтение /home/username. Но читать /home/username/path1/path2/file, вам нужно выполнить разрешения для всего пути.

Чтобы отладить это, запустите namei -l /home/username/path1/path2/fileот имени пользователя, который читает файл.


Это была проблема в моем случае. Я хотел дать другому пользователю права на работу с подпапкой моего домашнего каталога, но у моего домашнего каталога есть доступ 700, поэтому они получили «Отказано в доступе» для любой команды.
Цербер

1

Может быть ACL. Видеть

getfacl the-file

Возможно, по какой-то причине группы, в которые вы должны входить, установлены неправильно. Проверить с

id -a

Как насчет

namei -xl "$(readlink -f the-file)"

getfattr -dm- the-file

sudo lsattr the-file

В каком типе файловой системы она находится?

Какой-либо apparmor, SELinux или любой другой обязательный контроль доступа в системе?

Вы уверены, что файл не содержит текст «Отказано в доступе», верно ;-)?


Нет, специального ACL нет, он просто повторяет то, что говорят мне стандартные флаги, а id -a говорит, что я нахожусь в группе этого файла
Lagerbaer

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

Файловая система выглядит как nfs4. namei дает мне / и дом, принадлежащий root, root. / home / имя пользователя, принадлежащее имени пользователя и группе X (участником которого я не являюсь), остальное - / home / username / path1 / path2 / file, где path1 принадлежит имени пользователя и группе X, а path2 принадлежит имени пользователя, и группа А, членом которой я являюсь.
Лагербаер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.