Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 11/07/2016, à 21: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, à 21:08)

Hors ligne

#2 Le 11/07/2016, à 21: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, à 22:09

jplemoine

Re : Impossible de créer un fichier dans un lien symbolique

J5012 a écrit :

l'utilisateur www-data n'a pas les permissions sudoers dans un ubuntu normal ...

Mais c'est bien sûr...

Edacram a écrit :
$ sudo -u www-data touch archive/myfile

doit devenir

Edacram a écrit :
$ su -u www-data touch archive/myfile

- sudo : c'est pour devenir root
- su : c'est pour n'importe quel utilisateur


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#4 Le 12/07/2016, à 09: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.

Hors ligne

#5 Le 12/07/2016, à 10: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, à 10:09)


Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail

Hors ligne

#6 Le 12/07/2016, à 10: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, à 10: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, à 10:42)

Hors ligne

#8 Le 12/07/2016, à 10: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, à 21: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, à 21: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 !

InstallingANewHardDrive

Dernière modification par Edacram (Le 12/07/2016, à 22:04)

Hors ligne