web-dev-qa-db-fra.com

Impossible d'écrire dans un dossier dans lequel mon utilisateur a un accès en écriture

Avant de dire quoi que ce soit, je sais comment fonctionne l'autorisation pour les groupes et les utilisateurs.

Ma configuration est:

une. mon utilisateur est monkey et fait partie du groupe www-data

groups monkey

monkey : monkey adm cdrom Sudo dip www-data plugdev lpadmin sambashare

b. le dossier racine d'Apache est /home/monkey/var/www et dispose des autorisations 0775 avec le propriétaire www-data et le groupe www-data.

ls -la /home/monkey/var/www

total 8 drwxrwxr-x 2 www-data www-data 4096 Aug 12 10:37 . drwxr-xr-x 3 root root 4096 Aug 12 10:37 ..

c. Mais je suis incapable d'écrire dans /home/monkey/var/www/

monkey@ubuntu:~$ cp robots.txt var/www/robots.txt

cp: cannot create regular file âvar/www/robots.txtâ: Permission denied

Le fichier robots.txt a été créé sous monkey user.

Qu'est-ce qui me manque?

1
machineaddict

les autorisations de votre dossier parent (var définie sur 755 et propriétaire de la racine) limitent votre dossier enfant. vous devez changer vos permissions pour changer ou changer le propriétaire en www-data: www-data et perms à 775

EDIT

après avoir creusé, l'utilisateur doit changer de groupe avec newgrp <group-name> avant d'effectuer toute opération. pour revenir au groupe par défaut sur ce shell, tapez exit ou Ctrl+D

3
AlexGreg

L'utilisateur a un groupe principal et peut avoir plusieurs groupes supplémentaires. Le groupe principal d'utilisateurs est défini sur/etc/passwd, c'est-à-dire:

www-data:x:30:40:www-data:/var/www:/usr/sbin/nologin

dit que l'utilisateur 'www-data' est un membre du groupe id 40.

Vous pouvez ajouter des utilisateurs à d'autres groupes dans/etc/group, mais lorsque vous créez un fichier, le système définit par défaut le groupe d'utilisateurs primaire en tant que propriétaire, et non l'un des autres. Certains Unix vérifient le groupe de répertoires, et si l'utilisateur est membre de ce groupe, le propriétaire du nouveau fichier provient du répertoire, pas de l'utilisateur.

Donc quand vous créez un fichier, vous le faites par défaut en tant qu'utilisateur 'singe', groupe 'singe'. Et puisque le dossier appartient à:

  • utilisateur 'www-data', pas par 'singe' - les autorisations utilisateur ne sont pas utilisées
  • groupe 'www-data', pas par 'singe' - les autorisations de groupe ne sont également pas utilisées
  • les autorisations "autres" sont utilisées et t

En utilisant la commande newgr, vous pouvez basculer votre groupe principal vers l’un des groupes supplémentaires. Définissez donc le propriétaire du groupe pour la création de nouveaux fichiers.

En utilisant la commande umask, vous pouvez ajuster les autorisations utilisées pour la création de nouveaux fichiers.

Est-ce que ça aide maintenant?

1
rsm