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


15

Я натрапив на дивну проблему на машині unix / linux:

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

-rw-rw----

тому я очікував, що мені вдасться відкрити цей файл, але це не так: я отримаю повідомлення про помилку "Дозвіл відмовлено", коли я спробую переглянути вміст файлу (використовуючи cat).

Оскільки дозволи здаються правильними, що ще може спричинити це? Чи існують "переважні" обмеження дозволів? Якщо так, то як би я дізнався?


2
А як щодо дозволів каталогів?
Карлсон

Якщо ви в декількох групах, чи ваша поточна група встановлена ​​на A?
Code-Guru

2
@Karlson, якби проблеми з довідками для каталогу не були, ви не зможете побачити дозволи файлу в першу чергу.
cjm

Покажіть нам повний шлях та ім’я файлу, будь ласка.
jippie

Це в /home/theotheruser/somefolder/bla.txt Я в декількох групах.
Lagerbaer

Відповіді:


8

Ви вийшли з системи та знову ввійшли в систему знову після того, як вас додали до групи А?

Якщо ні, то ваші поточні процеси входу матимуть лише ті членські групи, які були у нього під час входу, а не з тих пір жодних змін. І будь-які дочірні процеси цього входу матимуть однакове членство в групі (тобто, якщо ви ввійшли в X, то кожна програма, включаючи емулятор термінала та оболонку терміналу)

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


Ні, це не було проблемою; Я вийшов із системи та знову ввійшов, і це не вирішило.
Lagerbaer

3

З NFS залежить, який режим захисту ви використовуєте, але в традиційному списку груп, до яких належить користувач, клієнт відправляє на сервер, і існує обмеження на кількість груп, які можна надіслати (це було 16 востаннє перевіряв).

Отже, клієнт каже: я uid 1234, і до речі, я є членом груп 12, 13, 14 ... Якщо ви є у більш ніж 16 групах, цей список буде усічений, і будуть групи для якого сервер не знає, що ви його учасник.

Це, мабуть, пояснення до цього. Тільки системний адміністратор локальної та / або віддаленої машини може щось з цим зробити, змінивши модель захисту або налаштування сервера NFS або зменшивши кількість груп, членами яких ви є.


У мене є сильне відчуття, що це є причиною, тому що група, в якій я з'являється, знаходиться у позиції 19 у висновку команди "групи". Я покажу цю відповідь адміністратору sys і побачу, чи допоможе це. :)
Lagerbaer

Як би ви змінили "модель безпеки" на NFS, щоб вирішити це?
Денні

3

Як ви зазначаєте в коментарі, ви не маєте прав на читання /home/username. Але для читання /home/username/path1/path2/fileвам потрібно виконати дозволи на весь шлях.

Щоб налагодити це, запустіть namei -l /home/username/path1/path2/fileяк користувач, який читає файл.


У цьому і була проблема в моєму випадку. Я хотів дати іншому користувачеві права працювати з підпапками домашнього dir, але мій домашній dir має доступ до 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 / username, що належать до імені користувача та групи X (я не є членом), тоді решта - home / username / path1 / path2 / файл, де path1 належить до імені користувача та групи X, а path2 належить імені користувача, і група А, членом якої я є.
Lagerbaer
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.