Como executar um processo com um grupo específico?

22

Preciso iniciar um aplicativo com meus próprios direitos de usuário, mas o grupo deve ser diferente. Então, em vez de:

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

deve ser por exemplo:

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

Também deve ser feito sem perguntar sobre a senha. Existe uma maneira de conseguir isso?

Mikhail Morfikov
fonte
Desculpe, não posso comentar, portanto, faça este acompanhamento na área de resposta. <br> sg não parece funcionar no nosso caso. Um usuário geralmente precisa usar o comando "newgrp" para mudar para o grupo "jazz" para poder descer para um diretório específico "dirA" na linha de comando. Mas ele não consegue encontrar uma maneira de fazer com que o "nautilus - browser" desça nesse "dirA". Ele tentou "ng jazz -c 'nautilus - browser'", mas ainda não pode descer em "dirA". Por quê?
CLTECH

Respostas:

31

Use sg.

Por exemplo, o seguinte comando chamará o sleepgrupogroup-name

sg group-name -c 'sleep 100'

Na página do manual:

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
fonte
Muito simples e funciona. :)
Mikhail Morfikov 03/02
2

sg pede senha de grupo

O sudo tem a opção -g que faz o mesmo com a senha do usuário.

requer grupo de menção em sudoers

Eu mudei o / etc / sudoers por

%wheel All=(ALL) ALL

para

%wheel All=(ALL:ALL) ALL

Às vezes é mais conveniente

A maneira segura de editar sudoers é:

sudo sudoedit /etc/sudoers
mmv-ru
fonte
0

Para evitar o prompt de senha com sg, adicione-se como membro do grupo

    sudo gpasswd -M morfik p2p

Você também pode precisar remover a senha e restringir o acesso apenas a membros

    sudo gpasswd -r p2p
    sudo gpasswd -R p2p

man gpasswd lhe dará mais detalhes

FeignInt
fonte