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


Avant de dire quelque chose, je sais comment fonctionne la permission pour les groupes et les utilisateurs.

Ma configuration est la suivante: 

une. mon utilisateur est monkey et est dans le 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 a les permissions 0775 avec le propriétaire www-data et 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 ne peux pas écrire /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 robots.txt le fichier a été créé sous monkey utilisateur.

Qu'est-ce que je rate?


1
2017-08-12 08:11


origine




Réponses:


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

MODIFIER

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


3
2017-08-12 08:19



Je l'ai fait et je ne peux toujours pas écrire dans ce dossier pastebin.com/WamMnweF. Pour moi, c'est très étrange. - machineaddict
hmm faire un sudo grpck pour vérifier s'il y a un problème avec vos groupes - AlexGreg
Il n'a rien retourné. Mais ce problème que j'ai sur n'importe quelle distribution linux ou ordinateur. Je le sais depuis environ 6 ans et j'ai juste décidé de poser des questions à ce sujet. Je pense que n'importe qui peut le reproduire. - machineaddict
bien, passer votre groupe par défaut à votre utilisateur (newgrp www-data) et la copie après que cela fonctionne - AlexGreg
Ça a marché. Veuillez mettre la commande dans votre réponse. Je ne comprends pas pourquoi cela ne fonctionne pas pour la première fois, le groupe a été ajouté à l'utilisateur. J'ai même redémarré. Alors, dois-je émettre newgrp commande chaque fois que je me connecte? - machineaddict


L'utilisateur a un groupe principal et peut avoir plusieurs groupes supplémentaires. Le groupe primaire de l'utilisateur est défini sur / etc / passwd, à savoir:

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

dit que l'utilisateur 'www-data' est membre de l'ID de groupe 40.

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

Alors quand tu créer un fichier, par défaut vous le faites 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 pas non plus utilisées
  • Les 'autres' permissions sont utilisées et t

En utilisant la commande newgr, vous pouvez basculer votre groupe principal sur l'un des groupes supplémentaires, définissant ainsi efficacement le propriétaire du groupe pour la création de nouveaux fichiers.

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

Est-ce que ça aide maintenant?


1
2017-08-12 09:26



Pourriez-vous me donner un exemple pour mon cas? - machineaddict