В доступе отказано, но групповые разрешения на Redhat выглядят хорошо

11

У меня есть пользователь ftpadmin:

-bash-3.2$ id ftpadmin
uid=10001(ftpadmin) gid=2525(fsg) groups=2525(fsg),10005(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
не работал смотрите мое последнее обновление
Тони

Ответы:

9

Хотел дать mpez0 +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 (для просмотра информации о пользователе вы можете использовать finger 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 / Сайты

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, время от времени нужно напоминание.

Как было указано, недостаточно просто дать правильные разрешения для каталога, в котором находятся файлы, вам также необходимо убедиться, что все каталоги, ведущие к этому каталогу, имеют правильные разрешения, особенно возможность для «других» «искать» и искать каталог и файлы. Вряд ли интуитивно понятно, когда x означает «выполнить», верно.

Моя структура подкаталога была: / 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». Надеюсь, что это помогает другим, это было хорошим освежающим напитком для меня.

CBPHP
источник
3
У меня была похожая проблема во FreeBSD и OpenBSD. Ключевым моментом для меня была эта часть: помните, что вы должны выйти и войти снова, чтобы новые «групповые» разрешения были связаны с идентификатором учетной записи. Конечно, документация FreeBSD гласит: `-G grouplist ... изменения членства в группе не вступают в силу для текущих сеансов входа в систему пользователя, требуя, чтобы пользователь повторно подключился, чтобы быть затронутыми изменениями.
iboisver
6

Вы должны иметь права доступа к каталогу, содержащему файл, чтобы получить к нему файл. Какие разрешения у / home / git? (да, Zoredache, я дал вам +1 за указание на это)


Последующие действия: вам необходимо установить бит выполнения (x) для группы, чтобы эта группа могла войти в каталог. Думайте об этом как о грубом аналоге настройки окна «Каталог перемещений». Без этого доступ будет запрещен для группы. Если вы в отчаянии, вы можете сделать:

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
Тони
и на последнем «отказе в разрешении» установлен бит group-execute? Не имеет значения, если у вас есть разрешение на ребенка, если родитель не имеет разрешения также.
Эйвери Пейн
Проверьте мое последнее обновление. Я положил туда разрешения и установил бит group-exec
Тони
Я вижу , у вас есть результаты /home/gitи , /home/git/fsgно каковы были результаты для /home?
Эйвери Пейн
4

После изменения групп пользователя X через root-доступ вы должны выйти из системы и войти снова с этим пользователем X, иначе новые группы не будут приняты во внимание

Марко Марсала
источник
3

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

erjiang
источник