#1 Le 11/07/2016, à 20:08
- Edacram
Impossible de créer un fichier dans un lien symbolique
Bonjour,
J'ai un dossier organisé ainsi :
drwxrwxrwx 6 www-data www-data 4096 Jun 8 10:21 ./
drwxr-xr-x 31 user1 user1 4096 Jun 8 10:40 ../
lrwxrwxrwx 1 www-data www-data 66 Jun 8 10:21 archive -> /media/user1/7f62b5e4-4fe7-43c2-b0d0-8dad6e5a2381/archive/
J'aimerais créer un fichier avec touch dans le lien symbolique avec l'utilisateur www-data mais j'obtiens cette erreur :
$ sudo -u www-data touch archive/myfile
touch: cannot touch ‘archive/myfile’: Permission denied
Les dossiers root et archive sont chmod 777.
Pour autant, cela fonctionne avec cette commande :
$ touch archive/myfile
Qu'est-ce qui m'échappe ?
Dernière modification par Edacram (Le 11/07/2016, à 20:08)
Hors ligne
#2 Le 11/07/2016, à 20:46
- J5012
Re : Impossible de créer un fichier dans un lien symbolique
l'utilisateur www-data n'a pas les permissions sudoers dans un ubuntu normal ...
tu dois creer le fichier en admin, puis toujours en admin donner les permissions d'acces et d'execution à www-data
Hors ligne
#3 Le 11/07/2016, à 21:09
- jplemoine
Re : Impossible de créer un fichier dans un lien symbolique
l'utilisateur www-data n'a pas les permissions sudoers dans un ubuntu normal ...
Mais c'est bien sûr...
$ sudo -u www-data touch archive/myfile
doit devenir
$ su -u www-data touch archive/myfile
- sudo : c'est pour devenir root
- su : c'est pour n'importe quel utilisateur
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne
#4 Le 12/07/2016, à 08:26
- bruno
Re : Impossible de créer un fichier dans un lien symbolique
hum…
Les deux commandes données par jplemoine sont équivalentes. Pour mémoire sudo signifie Substitute User Do et permet donc d'exécuter n'importe quelle commande à la place de l'utilisateur spécifié.
La commande utilisée par Edacram est parfaitement correcte et devrait fonctionner.
Le problème ne se situe pas là. Il y a fort à parier que l'un des dossiers du chemin /media/user1/7f62b5e4-4fe7-43c2-b0d0-8dad6e5a2381/archive/ n'est pas accessible en entrée/écriture à l'utilisateur www-data (mais l'est pour l'utilisateur courant).
D'ailleurs en principe /media et /media/user ne sont accessibles en écriture qu'à l'utilisateur root.
#5 Le 12/07/2016, à 09:06
- maxire
Re : Impossible de créer un fichier dans un lien symbolique
Salut,
Ce serait mieux de mettre le chemin complet du fichier, ici sudo va peut-être utiliser (je ne suis pas certain) en préfixe $HOME soit $HOME/archive/myfile, la valeur de $HOME est celle définie dans /etc/passwd pour l'utilisateur www-data.
Une autre solution est d'utiliser l'option -E de sudo afin de préserver la valeur de $HOME entre autres variables d'environnement.
Ceci dit, utiliser gvfs pour gérer un disque de sauvegarde n'est pas la meilleure méthode, déclare le plutôt dans /etc/fstab avec les options noauto et user ce qui te permettra de le monter avec n'importe quel utilisateur après démarrage système.
Dernière modification par maxire (Le 12/07/2016, à 09:09)
Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail
Hors ligne
#6 Le 12/07/2016, à 09:33
- maxire
Re : Impossible de créer un fichier dans un lien symbolique
En fait je viens d'écrire une bêtise, le préfixe n'est pas $HOME mais $PWD qui est préservé.
Donc c'est autre chose...
Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail
Hors ligne
#7 Le 12/07/2016, à 09:42
- bruno
Re : Impossible de créer un fichier dans un lien symbolique
@maxire, c'est exact mais j'ai donné la raison de l'échec de la commande touch en #4. Pour être plus précis :
l'utilisateur www-data n'a pas le droit de créer un fichier dans /media/user1/truc car /media/user1/truc n'est accessible en écriture qu'à l'utilisateur user1
Dernière modification par bruno (Le 12/07/2016, à 09:42)
#8 Le 12/07/2016, à 09:58
- maxire
Re : Impossible de créer un fichier dans un lien symbolique
@bruno, tu as raison j'ai écrit trop vite, c'est vrai qu'avec gvfs seul l'utilisateur qui a monté le média amovible a le plein accès au média.
D'où la nécessité de ne pas utiliser gvfs pour utiliser un disque externe en sauvegarde générale, enfin c'est ce que je pratique dans la mesure où le disque externe de sauvegarde est connecté en permanence.
Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail
Hors ligne
#9 Le 12/07/2016, à 20:24
- J5012
Re : Impossible de créer un fichier dans un lien symbolique
l'admin en sudo peut y ecrire !
creer le fichier avec sudo
puis toutjours en admin donner les permissions sur le fichier à www-data !
sudo est utilisable seulement avec les utilisateurs et les applications configurés dans /etc/sudoers
sudo cat /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
www-data n'etant pas un vrai utilisateur au sens login, il n'a pas par defaut une permission sudoers ...
Hors ligne
#10 Le 12/07/2016, à 20:54
- Edacram
Re : Impossible de créer un fichier dans un lien symbolique
Le probleme venait du fait que media/ etait le chemin donne par defaut a un disque dur. Pour pouvoir ecrire depuis www-data j'ai du monter le disque. Une fois le disque monte par defaut le probleme est resolu !
Dernière modification par Edacram (Le 12/07/2016, à 21:04)
Hors ligne