Не вдається отримати доступ до каталогу, я є членом групи


10

На своєму веб-сервері у мене каталог "www", який має дозвіл drwxrwxr--та користувача: групується, root:www-dataщоб Apache мав доступ до нього.

Тепер я додав свій обліковий запис до групи www-data за допомогою

sudo usermod -g www-data myuser

і якщо я все- groupsтаки www-dataє серед них, але коли я намагаюся просто вписати в нього, я отримую "Дозвіл відмовлено".

Якщо я зміню користувача на "myuser" або призначу групу на якусь іншу групу, до якої я є член, я можу ввійти.

Я щось пропускаю?

Відповіді:


14

У вашому процесі список груп встановлений під час входу, тому вам потрібно буде знову увійти, щоб зміни набрали чинності.

Я також пропоную вам додати www-dataяк додаткову групу, а не як первинну (яка встановлена ​​лише для групи, до якої ви є членом. Ви повинні зробити це за допомогою наступних команд:

# Reset to your original primary group
sudo usermod -g myuser myuser
# Add an extra supplementary group
sudo usermod --append -G www-data group

Якщо ви хочете, щоб створені вами файли читали інші члени www-dataгрупи, відповідно налаштуйте свій umask:

umask 002

Оскільки ваше основне членство в групі - це особиста група, це не повинно впливати на безпеку створених вами файлів.

Також варто встановити setgidбіт на каталоги, в яких ви будете створювати файли: це призведе до того, що файли успадкують групове право власності на батьківський каталог:

chmod g+s www/

1
увійти назад, зробив трюк, такий дурний. Також дуже корисний serverfault.com/questions/6895/…
dazz

Дякуємо, що згадали про цей Dazz. Я ніколи не розумів, чому це не працює для мене xD. Тепер я можу спокійно відпочити.
f4der

0

Для мене це була інша річ, що спричинила цю помилку

те саме ім’я користувача з двома різними UID

У мене користувач "apache" налаштований локально з UID = 123 і в каталозі NIS з тим самим іменем ("apache"), але різним UID = 456. Залежно від порядку запуску та залежності від послуги, локальний користувач може бути використаний до того, як користувач NIS стане доступним. Це також означає, що при відображенні імен користувачів це буде заплутаним, обидва будуть виглядати як "апаш". Тільки коли ви переглянете числові UID (наприклад, виконуючи їх, ls -lnви побачите різницю. Приклад: [root@mymachine]# ls -l drwxr-x--- 4 apache ggg1 88 May 31 17:12 file1 drwxr-x--- 4 apache ppp2 88 May 31 17:12 file2 див. UID відрізняється для file2 (456 замість 123): [root@mymachine]# ls -ln drwxr-x--- 4 123 48 88 May 31 17:12 file1 drwxr-x--- 4 456 48 88 May 31 17:12 file2

інша група, визначена в конфігурації Apache

Ще однією проблемою, з якою у мене виникли невідповідність користувача та виникла помилка дозволу, була те, коли я обмежував доступ до файлів за допомогою групи "httpd". Це була основна група користувачів "apache" (що відображалося за допомогою idабо getent). Apache починається як root, потім переходить на налаштованого користувача та видаляє дозвіл. Користувач перемикається в визначається з /etc/httpd/conf/httpd.confдопомогою Userпараметра. Ось ця проблема, хоча - група (GID), в якій буде працювати процес, оскільки НЕ є основною групою цього користувача. Група визначається в одному конфігураційному файлі за Groupпараметром.

Тож у моєму випадку це було ( /etc/httpd/conf/httpd.conf ): User apache Group apache

І до каталогу було надано такий доступ: drwxr-x--- 4 someuser httpd 88 May 31 17:12 mydir

Оскільки httpd (GID = 444) була основною групою цього користувача: [root@somemachine]# id apache uid=48(apache) gid=444(httpd) groups=444(httpd)

Це призвело до деякого часу налагодження, поки я не зрозумів, що Groupу файлі config був "apache", а не "httpd".

Помилка з / var / log / httpd / error_log : [Fri May 31 17:13:40.070343 2019] [authz_core:debug] [pid 2527] mod_authz_core.c(809): [client 11.22.32.21:53824] AH01626: authorization result of Require all granted: granted [Fri May 31 17:13:40.070367 2019] [authz_core:debug] [pid 2527] mod_authz_core.c(809): [client 11.22.32.21:53824] AH01626: authorization result of <RequireAny>: granted [Fri May 31 17:13:40.070396 2019] [core:error] [pid 2527] (13)Permission denied: [client 11.22.32.21:53824] AH00132: file permissions deny server access: /var/www/html/somedir/otherdir/css/file1.txt

Я сподіваюся, що це допомагає.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.