У меня есть пользователь 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
Хотел дать mpez0 +1, в частности, за его ответ: «Вам нужен бит группы« x », установленный в каталоге, чтобы разрешить групповой поиск. Разрешения« rw- »позволяют открывать файл по его имени (r) или создавать файл (w), но не перечисление или поиск файлов (x) ".
Это так легко забыть, и его решение похоронено посередине. Это определенно проблема для новых пользователей Linux в отношении прав доступа к файлам / каталогам для пользователей и групп.
Все, что сказал Эйвери, было правильным, снова жаль, что я не могу поставить вам +1.
Еще один более подробный пример может помочь новым пользователям Linux (не ищу кредита, просто приведу еще один пример для ясности). На моем компьютере я хотел создать дополнительного пользователя для конкретного проекта разработки. Тестировал некоторые проблемы с SSH, SFTP между моей машиной и совместно расположенным сервером в Интернете. Получил ту же ошибку "Permission denied" после настройки всего ... и да, это выглядело правильно, за исключением проблемы поиска, основанной на разрешениях для других, на которые указал 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 / 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, время от времени нужно напоминание.
Как было указано, недостаточно просто дать правильные разрешения для каталога, в котором находятся файлы, вам также необходимо убедиться, что все каталоги, ведущие к этому каталогу, имеют правильные разрешения, особенно возможность для «других» выполнять «поиск» и найдите каталог и файлы. Вряд ли интуитивно понятно, когда 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/
Обратите внимание, что единственным изменением были разрешения r-x для «другого» для каталога «Сайты». Надеюсь, это поможет другим, для меня это было хорошим обновлением.
Для доступа к файлу у вас должны быть разрешения на каталог, содержащий файл. Какие разрешения у / home / git? (да, Зоредаш, я поставил тебе +1 за указание на это)
Последующие действия: вам необходимо установить бит выполнения (x) для группы, чтобы эта группа могла войти в каталог. Думайте об этом как о грубом аналоге настройки Windows «Перемещение каталога». Без него группе будет отказано в доступе. Если вы в отчаянии, вы можете сделать:
chmod g+x /home/git
chmod g+x /home/git/fsg
Попробуйте сделать следующее и опубликуйте сообщение от каждого:
cd /home
cd /home/git
cd /home/git/fsg
Каждый из них должен быть доступен ftpadmin
. Если хоть один из них не, тогда вы не попадете в /home/git/fsg
.
Попробуйте войти снова или запустить su - ftpadmin
для входа в текущую оболочку. Поскольку группы устанавливаются при входе в систему, возможно, вы просто добавили в группу то-то и то-то, но старые настройки группы все еще используются.
После изменения групп пользователя X через root-доступ, вы должны выйти и снова войти в систему с этим пользователем X, иначе новые группы не будут приняты во внимание.