J'utilise krusader pour la gestion de fichiers. le problème est que le DocumentRoot
d'Apache devrait être sous chown www-data:www-data /path/to/www
. Donc, en utilisant krusader (qui est exécuté sous mon compte), je n’ai pas accès en écriture à /path/to/www
tant que j’en ai vraiment besoin. Je ne sais pas comment d'autres développeurs peuvent continuer à faire des choses avec une telle restriction!
Je me demandais si je pouvais exécuter krusader avec www-data
, ce qui me permettrait de jouer facilement avec des fichiers. mais en utilisant su - www-data
m'a demandé le mot de passe de www-data
!!
Alors, comment puis-je exécuter une application (comme krusader) en tant qu'un autre utilisateur (comme www-data) dans Gnome?
ou y a-t-il une autre solution pour mon cas? (difficile je suis vraiment curieux de connaître la réponse!)
n'oubliez pas que je sais que je peux l'exécuter en tant que root! mais cela causera des problèmes d’autorisation lors de l’utilisation de cp
et mkdir
, vous savez.
PS:Sudo
et gksudo
n’a pas aidé:
$ gksudo -u -www-data krusader
No protocol specified
krusader: cannot connect to X server :0.0
Note finale: selon la meilleure réponse, j'ai chmod u+w /path/to/www
et mon problème résolu. mais je n'ai toujours pas réussi à ouvrir krusader en tant qu'utilisateur supplémentaire!
En repensant à cette question (j'espère avoir bien compris votre problème, mais corrigez-moi si je me trompe), j'ai trouvé une autre solution et je pense que vous n'avez pas besoin d'exécuter l'application en tant que www-data ni de jouer avec les permissions. . Vous avez dit que:
DocumentRoot d'Apache doit être placé sous le chown www-data: www-data/path/to/www
mais en réalité, ce n'est pas tout à fait vrai: le DocumentRoot
d'Apache doit être lisible par www-data
, mais ne doit pas nécessairement en être la propriété. Par défaut, dans Ubuntu Desktop, tous les fichiers et répertoires créés sont lisibles par tout le monde. Vous pouvez donc définir DocumentRoot dans un répertoire de votre dossier de base, par exemple:
DocumentRoot /home/user/my-project/my-document-root
xhost +SI:localuser:uname
gksudo -u uname -l "firefox"
xhost -SI:localuser:uname
Où uname = le nom de l'utilisateur emprunté. Vu ici: http://ubuntuforums.org/showthread.php?p=10399617
Fonctionne sur ma boîte de maverick, il n'y a pas de son dans le skype forké et ~/.profile.d n'est pas exécuté comme il le pourrait.
Si vous utilisez ceci à partir du système de menus, vous voudrez utiliser alacarte
(Système> Préférences> Menu principal), modifier l'entrée pour krusader et ajouter devant: gksudo -u www-data
, ce qui devrait produire quelque chose comme:
gksudo -u www-data krusader
Ceci ouvrira la fenêtre d'invite de la tâche administrative qui, selon page de manuel GKSudo , est un
GTK + Frontend pour su et Sudo
Utiliser simplement gksudo sans le commutateur -u
lancera la commande en tant que root.
Comme Marco l'a mentionné, vous pouvez utiliser gksudo -u www-data <command>
pour exécuter des commandes en tant qu'utilisateur différent. J'utilise couramment cela pour exécuter des commandes en tant que gdm
et jusqu'à présent, il ne m'a jamais demandé d'autre chose que mon propre mot de passe.
Si vous utilisez kde, l'équivalent est kdesu -u www-data krusader
. Je pense que, puisque krusader est une application kde, il pourrait mieux fonctionner avec kdesu
. Plus de détails sur kdesu ici .
J'ai utilisé gksudo
pour exécuter des commandes en tant qu'autres utilisateurs "humains" sur le système et, lorsque le mot de passe est demandé, je saisis le mien.
Pour devenir www-data avec votre propre mot de passe, utilisez ceci:
$ Sudo su www-data
[Sudo] password for <your username>: [enter your password]
$ whoami
(you should see www-data here)
Mais, je ne pense pas que vous serez capable de lancer des applications GUI à partir de là.
D'habitude, je ne possède que tout dans /var/www
, mais j'autorise l'accès en lecture à tout le monde:
/var/www$ Sudo chown -R [your-username]\:[your-group] *
/var/www$ find . -type d -exec chmod a+rx {} \;
/var/www$ find . -type f -exec chmod a+r {} \;
J'espère que cela soulagera votre douleur :)
Je crois que vous devez exécuter ce qui suit au terminal:
xhost +SI:localuser:<user-to-run-as>
Ensuite, vous pouvez faire:
Sudo su - <user-to-run-as>
Et enfin, lancez votre application:
krusader
Cela devrait le faire, assurez-vous simplement de remplacer <user-to-run-as>
par votre nom d'utilisateur bien sûr.
Inspiré par Anton S. Kraievoy, j'ai utilisé une solution similaire, qui fonctionne pour moi. Dans l'utilisateur, à l'aide de Krusader, j'ai ajouté un nouvel utilisateur à xhhost:
xhost +SI:localuser:username
Merci de bien vouloir vous connecter:
su - username
Than krusader démarre correctement en tant que nouvelle instance chez un nouvel utilisateur:
krusader
Notez qu'une nouvelle configuration sera créée dans ~/.kde/share/config/krusaderrc.
'Gksu' et 'kdesu' sont tous deux des interfaces graphiques pour 'Sudo', qui est l'outil que vous devez utiliser lorsque vous vous trouvez dans un environnement texte uniquement. Les outils 'gksu' et 'kdesu' nécessitent que vous soyez en mode graphique, ce qui explique les erreurs "impossible de se connecter au serveur X".
si vous souhaitez exécuter une commande de console en tant qu'utilisateur différent, utilisez la commande 'Sudo -u nom d'utilisateur commande'.
L'exécution d'une application graphique sous www-data vous pose plusieurs problèmes. Vous pouvez vous ajouter au groupe www-data afin de pouvoir modifier tous les fichiers dont vous avez besoin:
Sudo adduser $USER www-data
Remarque: vous devrez probablement vous déconnecter de la session pour que les modifications prennent effet.
Si, après cette commande, vous ne parvenez toujours pas à modifier certains fichiers, assurez-vous simplement que vous disposez du droit d'écriture sur ceux-ci:
Sudo chown www-data:www-data /var/www/file
chmod g+w /var/www/file