У дозволі відмовлено, але групові дозволи виглядають добре на Redhat


11

У мене є користувач ftpadmin:

-bash-3.2$ id ftpadmin
uid=10001(ftpadmin) gid=2525(fsg) groups=2525(fsg),10005(git)

Важлива група, яку слід зазначити, - "git"

Тоді у мене є сховище git:

ls -al
drwxrwxr-x   7 git      git          4096 Apr 20 14:17 fsg

Тож ftpadmin є членом git, і git дав усі дозволи людям у групі. Чому я бачу це, коли входжу як ftpadmin:

-bash-3.2$ ls -al /home/git/
ls: /home/git/fsg: Permission denied
...

Здається, я повинен мати дозвіл ...

Оновіть дозволи на / home / git

drwxrw-rw-   6 git      git          4096 Apr 26 09:20 git

все ще добре виглядає ...

Оновити нові дозволи на / home / git:

drwxrwxrw-   6 git      git          4096 Apr 26 09:20 git

Дозволи на / home / git / fsg:

drwxrwxr-x   7 git      git          4096 Apr 20 14:17 fsg

Однак я все одно отримую

ls: /home/git/fsg: Permission denied
ls: /home/git/fsg: Permission denied

1
На яких дозволах /home/git?
Зоредаче

drwxrw-rw- 6 git git 4096 26 квітня 09:20 git
Тоні

має бути, drwxrwxr-xякщо ви хочете, щоб це було лише для читання для не членів групи, але змінювалося членами групи повинно бути, drwxrwx---якщо ви хочете, щоб в ньому були лише члени групи.
Евері Пейн

4
Вам потрібно встановити біт групи "x" у каталозі, щоб дозволити груповий пошук . Дозволи "rw-" дозволяють відкривати файл із зазначенням його імені (r) або створювати файл (w), але не перераховувати або шукати файли (x).
mpez0

не працювало. дивіться моє останнє оновлення
Tony

Відповіді:


9

Хотів надати mpez0 +1 +1 для його відповіді "Вам потрібен біт групи" x ", встановлений у каталозі, щоб дозволити груповий пошук. Дозволи" rw- "дозволяють відкрити файл із зазначенням його імені (r) або створити файл (w), але не перераховуючи та не шукаючи файли (x). "

Його так просто забути, і його рішення поховано посередині. Це, безумовно, проблема для нових користувачів Linux щодо дозволів на файли / каталоги для користувачів та груп.

Все, що сказав Евері, було правильним щодо грошей, і знову хочу, щоб я міг також дати вам +1.

Інший більш детальний приклад може допомогти новим користувачам Linux ( не шукаючи жодного кредиту, просто надаючи інший приклад для ясності ). На власному ПК я хотів створити додаткового користувача для конкретного проекту розвитку. Тестував деякі проблеми SSH, SFTP між моєю машиною та спільно розташованим сервером в Інтернеті. Отримала таку ж помилку "Дозвіл відхилено" після налаштування всього ... і так, це виглядало правильно, за винятком проблеми пошуку на основі дозволів для інших, на які вказував mpez0.

Примітка. Для нових користувачів Linux права доступу є користувачами, групами, іншими або rwx, rwx, rwx відповідно і виглядатимуть приблизно так

drwxr-xr--   

user has read + write + execute, rwx 
group has only read and execute, r-x
other has only read acces r--

Для "іншого" ми пам'ятаємо, його НЕ достатньо для пошуку / пошуку каталогу, таким чином, повідомлення про помилку.

Ось що я зробив (зіткнувся з повідомленням про помилку на кроці 6)

1) створив користувача, hoiuser (щоб побачити інформацію про користувача, ви можете скористатися пальцем cmd, "finger hoiuser" або прочитати файл "cat / etc / passwd")

2) створив групу, hoidevs (додав користувача "hoiuser" до групи)

root@zareason-breeze:/etc# cat group | grep hoidevs 
hoidevs:x:1010:userz,hoiuser 

Пам'ятайте, що вам потрібно вийти з системи та увійти знову, щоб нові дозволи "групи" були пов'язані з ідентифікатором облікового запису.

3) chgrp hoidevs для каталогу / home / userz / data / Sites / hoi та створив місце для файлів

hoiuser@zareason-breeze:/home/userz/data/Sites/hoi$ ls -alF
total 16
drwxr-xr-x  4 userz hoidevs  4096 2012-02-27 13:34 ./
drwxr-xr-x  2 userz userz 4096 2012-02-29 17:00 odt/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

4) Відкрив вікно терміналу, користувач userz був активним

5) su - hoiuser (перейшов на користувача hoiuser)

6) Спроба cd / home / userz / data / Sites

hoiuser@zareason-breeze:/home/userz/data$ cd Sites
-su: cd: Sites: Permission denied    (voila, the problem)


userz@zareason-breeze:~/data/Sites$ ls -alF
total 60
drwxr-xr--  11 userz userz  4096 2012-02-24 16:20 ./
drwxr-xr-x   4 userz hoidevs   4096 2012-02-27 13:34 hoi/

7) Змінено дозволи для Сайтів

userz@zareason-breeze:~/data/Sites$ chmod 755 .
userz@zareason-breeze:~/data/Sites$ ls -alF
total 60
drwxr-xr-x  11 userz userz  4096 2012-02-24 16:20 ./

І проблема вуаля виправлена ​​.... ось доказ

hoiuser@zareason-breeze:/home/userz/data$ id
uid=1009(hoiuser) gid=1009(hoiuser) groups=1009(hoiuser),1010(hoidevs)

hoiuser@zareason-breeze:/home/userz/data$ cd Sites        (<- yea no error message)
hoiuser@zareason-breeze:/home/userz/data/Sites$ cd hoi
hoiuser@zareason-breeze:/home/userz/data/Sites/hoi$ ls -alF
total 16
drwxr-xr-x  4 userz hoidevs  4096 2012-02-27 13:34 ./
drwxr-xr-x 11 userz userz 4096 2012-02-24 16:20 ../
drwxr-xr-x  2 userz userz 4096 2012-02-29 17:00 odt/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

Навіть досвідчені користувачі Linux / Unix потребують нагадування раз і знову.

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

Моя структура підкаталогу була: / home / userz / data / Sites / hoi / html /

Починаючи з дому

userz@zareason-breeze:~$ pwd
/home

Це була моя структура каталогів ПЕРЕД chmod

drwxr-xr-x  13 root root     4096 2012-02-29 14:51 home/
drwxr-xr-x 88 userz userz 4096 2012-02-29 17:07 userz/
drwxr-xr-x 476 userz userz    20480 2012-02-26 16:08 data/
drwxr-xr--  11 userz userz     4096 2012-02-24 16:20 Sites/    (<-- Do you see it, other is r--)
drwxr-xr-x   4 userz hoidevs   4096 2012-02-27 13:34 hoi/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

Це була моя структура каталогу ПІСЛЯ chmod

drwxr-xr-x  13 root root     4096 2012-02-29 14:51 home/
drwxr-xr-x 88 userz userz 4096 2012-02-29 17:07 userz/
drwxr-xr-x 476 userz userz    20480 2012-02-26 16:08 data/
drwxr-xr-x  11 userz userz     4096 2012-02-24 16:20 Sites/      (<-- Fixed by the chmod > 755 ., now r-x)
drwxr-xr-x   4 userz hoidevs   4096 2012-02-27 13:34 hoi/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

Зауважте, єдиною зміною були дозволи rx для "other" для каталогу "Sites". Сподіваюся, це допомагає іншим, це було гарним освіженням для мене.


3
У мене були подібні проблеми на FreeBSD та OpenBSD. Ключовою для мене була ця частина: Пам’ятайте, що ви повинні вийти з системи та знову увійти, щоб нові дозволи «групи» були пов’язані з ідентифікатором облікового запису. Впевнено, документація FreeBSD зазначає: `-G grouplist ... Зміни членства в групі не набувають чинності для поточних сеансів входу користувачів, вимагаючи, щоб користувач повторно підключився, щоб ці зміни впливали на зміни.
iboisver

6

Ви повинні мати дозволи в каталозі, який містить файл, щоб потрапити в файл. Які дозволи на / home / git? (так, Зоредаче, я дав вам +1, щоб вказати на це)


Подальші дії: Вам потрібно встановити біт Execute (x) для групи для того, щоб ця група увійшла до каталогу. Подумайте про це як грубому аналозі налаштування Windows "Traverse Directory". Без цього групі буде заборонено доступ. Якщо ви відчайдушно, можете зробити:

chmod g+x /home/git
chmod g+x /home/git/fsg

Спробуйте наступне та опублікуйте повідомлення від кожного:

cd /home
cd /home/git
cd /home/git/fsg

Кожен із них повинен бути доступним ftpadmin. Якщо хтось із них не буде , то це не дозволить вам потрапити /home/git/fsg.


drwxrw-rw- 6 git git 4096 26 квітня 09:20 git
Тоні

має сенс, мені все одно отримують дозвіл відмовлено в / home / git / fsg, який є drwxrwxr-x 7 git git 4096, кві 20, 14:17 fsg
Тоні

і на тому останньому "дозволі відмовлено", чи встановлено біт виконання групи? Не має значення, якщо у вас є дозвіл на дитину, якщо батько також не має дозволу.
Евері Пейн

Перевірте моє останнє оновлення. Я помістив дозволи там і встановлено біт групи-exec
Tony

Я бачу , у вас є результати /home/gitі , /home/git/fsgале які були результати для /home?
Avery Payne

4

Після зміни груп користувача X через доступ root, ви повинні вийти з системи та знову увійти з цим користувачем X, інакше нові групи не будуть враховані


3

Спробуйте знову увійти або запустіть su - ftpadminдля входу всередину поточної оболонки. Оскільки групи встановлюються під час входу в систему, можливо, ви просто додали групу так, інакше, але старі налаштування групи все ще використовуються.

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