Permissão negada, mas permissões de grupo ficam bem no redhat

11

Eu tenho um usuário ftpadmin:

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

O grupo importante a ser observado é "git"

Então eu tenho meu repositório git:

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

Portanto, o ftpadmin é um membro do git, e o git concedeu todas as permissões às pessoas do grupo. Por que vejo isso quando faço login como ftpadmin:

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

Parece que eu deveria ter permissão ...

Atualizar As permissões em / home / git são

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

ainda parece bom ...

Atualizar Novas permissões em / home / git são:

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

As permissões em / home / git / fsg são:

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

No entanto, eu ainda recebo

ls: /home/git/fsg: Permission denied
ls: /home/git/fsg: Permission denied
Tony
fonte
1
Quais são as permissões /home/git?
Zoredache
drwxrw-rw- 6 git git 4096 26 de abril 09:20 git
Tony
deve ser drwxrwxr-xse você desejar que ele seja somente leitura para não membros do grupo, mas alterável pelos membros do grupo; deve ser drwxrwx---se você deseja que apenas membros do grupo estejam nele.
Avery Payne
4
Você precisa do grupo "x" definido no diretório para permitir pesquisas em grupo . As permissões "rw-" permitem abrir um arquivo com o nome (r) ou criar um arquivo (w), mas não listar ou pesquisar os arquivos (x).
mpez0
não funcionou. veja minha atualização mais recente
Tony

Respostas:

9

Queria dar ao mpez0 um +1 especificamente, para sua resposta "Você precisa do bit" x "do grupo definido no diretório para permitir pesquisas em grupo. As permissões" rw- "permitem abrir um arquivo com o nome (r) ou criar um arquivo (w), mas não listando ou pesquisando os arquivos (x). "

É tão fácil de esquecer, e sua solução está enterrada no meio. Definitivamente, esse é um problema para os novos usuários do Linux no que diz respeito às permissões de arquivo / diretório para usuários e grupos.

Tudo o que Avery disse estava certo, mais uma vez gostaria de poder lhe dar um +1.

A figura outro exemplo mais detalhado pode ajudar os novos usuários do Linux ( sem procurar crédito, apenas fornecendo outro exemplo para maior clareza ). No meu próprio PC, eu queria criar um usuário adicional para um projeto de desenvolvimento específico. Estava testando alguns problemas de SSH e SFTP entre minha máquina e um servidor localizado na Web. Obteve o mesmo erro "Permissão negada" depois de configurar tudo ... e sim, parecia correto, exceto pelo problema de pesquisa com base nas permissões de outro que o mpez0 apontou.

Nota: Para novos usuários Linux, as permissões são usuário, grupo, outro ou rwx, rwx, rwx, respectivamente, e teriam a seguinte aparência:

drwxr-xr--   

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

Para 'other' somos lembrados que NÃO é suficiente encontrar / procurar o diretório, portanto a mensagem de erro.

Aqui está o que eu fiz (encontrou a mensagem de erro na etapa 6)

1) criou um usuário, hoiuser (para ver informações do usuário, você pode usar o finger cmd, "finger hoiuser" ou ler o arquivo 'cat / etc / passwd')

2) criou um grupo, hoidevs (usuário adicionado "hoiuser" ao grupo)

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

Lembre-se de que você precisa fazer logoff e logon novamente para que as novas permissões de "grupo" sejam associadas ao ID da conta.

3) chgrp hoidevs para o diretório / home / userz / data / Sites / hoi e criou um local para os arquivos

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) Abriu uma janela do terminal, o usuário userz estava ativo

5) su - hoiuser (alternado para hoiuser do usuário)

6) Tentativa de 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) Alteradas as permissões para sites

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 ./

E voila problema corrigido .... aqui está a prova

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/

Até nós, usuários experientes do Linux / Unix, precisamos de um lembrete de vez em quando.

Como foi apontado, não basta fornecer as permissões corretas para o diretório em que os arquivos estão, você também precisa garantir que todos os diretórios que levam a esse diretório tenham as permissões corretas, especialmente a capacidade de "outro" "pesquise" e procure o diretório e os arquivos. Dificilmente intuitivo quando x significa executar, certo.

Minha estrutura de subdiretório era: / home / userz / data / Sites / hoi / html /

Começando em casa

userz@zareason-breeze:~$ pwd
/home

Esta foi a minha estrutura de diretórios ANTES do 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/

Esta foi a minha estrutura de diretórios APÓS o 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/

Observe que a única alteração foram as permissões rx para 'other' no diretório 'Sites'. Espero que isso ajude os outros, foi uma boa atualização para mim.

CBPHP
fonte
3
Eu estava tendo um problema semelhante no FreeBSD e OpenBSD. A chave para mim foi esta parte: lembre - se de que você precisa fazer logoff e logon novamente para que as novas permissões de "grupo" sejam associadas ao ID da conta. Certamente, a documentação do FreeBSD declara: `-G grouplist ... as alterações de membros do grupo não
iboisver
6

Você precisa ter permissões no diretório que contém o arquivo para chegar ao arquivo. Quais são as permissões no / home / git? (sim, Zoredache, eu te dei um +1 por apontar isso)


Acompanhamento: você precisa do bit execute (x) definido para o grupo para que esse grupo entre no diretório. Pense nisso como uma analogia grosseira à configuração "Traverse Directory" do Windows. Sem ele, o acesso será negado ao grupo. Se você está desesperado, pode fazer:

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

Tente o seguinte e publique a mensagem de cada um:

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

Cada um deles deve estar acessível por ftpadmin. Se algum deles não estiver , isso impedirá que você entre /home/git/fsg.

Avery Payne
fonte
drwxrw-rw- 6 git git 4096 26 de abril 09:20 git
Tony
Faz sentido, eu ainda obter uma permissão negada no / home / git / FSG que é drwxrwxr-x 7 git git 4096 20 de abril 14:17 FSG
Tony
e nessa última "permissão negada", o bit de execução do grupo está definido? Não importa se você tem permissão para o filho, se o pai também não tiver permissão.
Avery Payne
Confira minha atualização mais recente. Eu coloquei as permissões lá eo bit grupo-exec está definido
Tony
Vejo que temos resultados para /home/gite /home/git/fsg, mas quais foram os resultados para /home?
Avery Payne
4

Após alterar os grupos de um usuário X por acesso root, você deve sair e efetuar login novamente com esse usuário X, caso contrário, novos grupos não serão levados em consideração

Marco Marsala
fonte
3

Tente fazer login novamente ou execute su - ftpadminpara fazer login dentro do shell atual. Como os grupos são definidos quando você faz logon, pode ser que você tenha adicionado mais ou menos a um grupo, mas as configurações antigas do grupo ainda estão sendo usadas.

erjiang
fonte