web-dev-qa-db-fra.com

Impossible de modifier les fichiers appartenant au groupe en tant qu'utilisateur appartenant à ce groupe

J'utilise un serveur Ubuntu 14.04.1 LTS sur Digital Ocean. J'essaie de le faire pour pouvoir éditer des fichiers dans /srv/www à partir de mon compte d'utilisateur normal, sans avoir besoin d'être root.

Actuellement, /srv/www appartient à www-data:www-data:

Sudo chown -R www-data:www-data /srv/www 

J'ai également défini les autorisations sur tous les fichiers sur 664 et sur les répertoires sur 755:

Sudo find /srv/www/ -type f -exec Sudo chmod 644 {} \;
Sudo find /srv/www/ -type d -exec Sudo chmod 755 {} \;

Et j'ai ajouté mon utilisateur, shea, au groupe www-data:

Sudo adduser shea www-data

Cependant, lorsque j'essaie de touch /srv/www/foo, le message d'erreur suivant s'affiche:

touch: cannot touch ‘/srv/www/foo’: Permission denied

Cela fonctionne bien si je préfixe Sudo à cette commande, mais je préfère ne pas le faire tout le temps; De plus, cela ne fonctionne pas sur SFTP.

Changer le propriétaire en shea:www-data me permet d'écrire dans les fichiers, mais alors WordPress ne pourra pas mettre à jour les plugins et les thèmes.

Sudo chown -R shea:www-data /srv/www

Existe-t-il de toute façon que les utilisateurs www-data et shea puissent tous deux accéder à /srv/www? J'avais l'impression que l'ajout des deux utilisateurs à un groupe ferait l'affaire, mais je n'arrive pas à le faire fonctionner.

7
shea

Vous définissez 644 qui est un groupe de lecture, pas écrire!

Sudo chown -R www-data:www-data /srv/www
Sudo chmod -R g+w /srv/www
13
anu

J'ai eu un problème similaire avec 16.04 sur DigitalOcean. Voici les étapes que j'ai suivies:

  1. Donnez un accès en écriture au groupe associé à un fichier sous /var/www/html

    Sudo find /srv/www/ -type f -exec Sudo chmod 664 {} \;
    
  2. Ajoutez myuser au groupe www-data:

    Sudo adduser myuser www-data
    
  3. Confirmez les autorisations, par exemple:

    ls -la /var/www/html/wp-content/themes/responsive/style.css
    

    donne

    -rw-rw-r-- www-data www-data 3892 Jan  1 2017 style.css
    
  4. Confirmer l'appartenance au groupe: id myuser donne

    uid=1000(myuser) gid=1000(myuser) groups=1000(myuser),33(www-data),110*lxd)
    

Cependant, lorsque j'ai ensuite essayé de mettre à jour style.css sans Sudo avec mon compte myuser, j'ai obtenu une erreur permission denied.

Solution

Je devais me déconnecter et me reconnecter à nouveau pour toutes les sessions enregistrées en tant que myuser avant que les nouvelles autorisations ne prennent effet. Je ne sais pas pourquoi, mais j'espère que cela pourra aider quiconque dans une situation similaire.

7
morphatic