Não consigo acessar o diretório do qual sou membro do grupo

9

No meu servidor web, tenho um diretório 'www' com permissão drwxrwxr--e user: group root:www-datapara que o Apache possa acessá-lo.

Agora adicionei minha conta ao grupo www-data com

sudo usermod -g www-data myuser

e se o fizer groups, www-dataestá entre eles, mas quando tento simplesmente entrar nele, recebo 'Permissão negada'.

Se eu mudar o usuário para 'myuser' ou definir o grupo para outro grupo do qual sou membro, posso entrar.

Estou esquecendo de algo?

deslumbrar
fonte

Respostas:

14

Seu processo tem sua lista de grupos definida no momento do login, portanto, você precisará fazer login novamente para que a alteração entre em vigor.

Sugiro também que você adicione www-datacomo um grupo suplementar, e não o principal (que é definido como um grupo no qual você é membro. Você deve fazer isso com os seguintes comandos:

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

Se você deseja que os arquivos criados sejam legíveis por outros membros do www-datagrupo, ajuste sua umask adequadamente:

umask 002

Como sua associação ao grupo principal é um grupo pessoal, isso não deve afetar a segurança dos arquivos criados por você.

Também vale a pena definir o setgidbit nos diretórios nos quais você criará arquivos: isso fará com que os arquivos herdem a propriedade do grupo no diretório pai:

chmod g+s www/
James Henstridge
fonte
1
entrar novamente fez o truque, tão estúpido. Também muito útil serverfault.com/questions/6895/…
dazz
Obrigado por mencionar que Dazz. Eu nunca entendi por que não estava funcionando para mim xD. Agora eu posso descansar em paz.
F4der
0

Para mim, foi uma coisa diferente, resultando neste erro

mesmo nome de usuário com dois UIDs diferentes

Eu tenho o usuário "apache" configurado localmente com UID = 123 e no diretório NIS com o mesmo nome ("apache"), mas UID diferente = 456. Dependendo da ordem de início e da dependência do serviço, o usuário local pode ser usado antes que o usuário do NIS esteja disponível. Isso também significa que, quando você exibir nomes de usuários, isso será confuso, ambos aparecerão como "apache". Somente quando você olhar UIDs numéricos (por exemplo ls -ln, verá a diferença. Exemplo: [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 veja o UID é diferente para o arquivo2 (456 em vez de 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

grupo diferente definido na configuração do Apache

Outro problema que tive com a incompatibilidade do usuário e o resultante erro de permissão foi quando eu estava restringindo o acesso aos arquivos usando o grupo "httpd". Este foi o grupo principal de usuários "apache" (que foi exibido usando idou getent) O Apache inicia como raiz, depois alterna para o usuário configurado e descarta a permissão. O usuário para o qual ele alterna é definido /etc/httpd/conf/httpd.confpor Userparâmetro. Mas aqui está o problema - o grupo (GID) em que o processo será executado NÃO é o grupo principal desse usuário. O grupo é definido no mesmo arquivo de configuração por Groupparâmetro.

Então, no meu caso, era ( /etc/httpd/conf/httpd.conf ): User apache Group apache

E o diretório recebeu acesso assim: drwxr-x--- 4 someuser httpd 88 May 31 17:12 mydir

Como o httpd (GID = 444) foi o grupo principal desse usuário: [root@somemachine]# id apache uid=48(apache) gid=444(httpd) groups=444(httpd)

Isso resultou em algum tempo gasto na depuração até eu perceber que o Grouparquivo de configuração era "apache" e não "httpd".

Erro em / 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

Eu espero que isso ajude.

Pik Master
fonte