Comment exécuter un processus avec un groupe spécifique?

22

Je dois démarrer une application avec mes propres droits d'utilisateur, mais le groupe doit être différent. Donc, au lieu de:

$ ps -eo "user,group,args" | grep qbittorrent
morfik   morfik      /usr/bin/qbittorrent

ce devrait être par exemple:

$ ps -eo "user,group,args" | grep qbittorrent
morfik   p2p      /usr/bin/qbittorrent

Cela doit également être fait sans demander de mot de passe. Existe-t-il un moyen d'y parvenir?

Mikhail Morfikov
la source
Désolé, je ne peux pas commenter, alors mettez ce suivi dans la zone de réponse. <br> sg ne semble pas fonctionner dans notre cas. Un utilisateur doit généralement utiliser la commande "newgrp" pour passer au groupe "jazz" pour pouvoir descendre dans un répertoire particulier "dirA" à partir de la ligne de commande. Mais il ne peut pas trouver un moyen de faire descendre "nautilus --browser" dans ce "dirA". Il a essayé "ng jazz -c 'nautilus --browser'" mais il ne peut toujours pas descendre dans "dirA". Comment venir?
CLTECH

Réponses:

31

Utilisez sg.

Par exemple, la commande suivante invoquera sleeppour le groupegroup-name

sg group-name -c 'sleep 100'

Depuis la page de manuel:

NAME
   sg - execute command as different group ID

SYNOPSIS
   sg [-] [group [-c ] command]

DESCRIPTION
   The sg command works similar to newgrp but accepts a command. The
   command will be executed with the /bin/sh shell...
mkc
la source
Assez simple, et cela fonctionne. :)
Mikhail Morfikov
2

sg demande le mot de passe du groupe

sudo a l'option -g qui fait la même chose par mot de passe utilisateur.

il nécessite un groupe de mention dans sudoers

J'ai changé / etc / sudoers par

%wheel All=(ALL) ALL

à

%wheel All=(ALL:ALL) ALL

Parfois, c'est plus pratique

Un moyen sûr de modifier les sudoers est:

sudo sudoedit /etc/sudoers
mmv-ru
la source
0

Pour éviter l'invite de mot de passe avec sg, ajoutez-vous en tant que membre du groupe

    sudo gpasswd -M morfik p2p

Vous devrez peut-être également supprimer le mot de passe et restreindre l'accès aux seuls membres

    sudo gpasswd -r p2p
    sudo gpasswd -R p2p

l'homme gpasswd vous donnera plus de détails

FeignInt
la source