Como executar um processo com um grupo específico?

21

Eu tenho que iniciar um aplicativo com meus próprios direitos de usuário, mas o grupo deve ser diferente. Então, ao invés 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 tem que ser feito sem perguntar sobre senha. Existe uma maneira de conseguir isso?

    
por Mikhail Morfikov 03.02.2014 / 02:36

2 respostas

26

Use sg .

Por exemplo, o comando a seguir invocará sleep para o grupo group-name

sg group-name -c 'sleep 100'

Da 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...
    
por 03.02.2014 / 02:40
1

sg pedir senha do grupo

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

requer menção de grupo em sudoers

Eu alterei o / etc / sudoers por

%wheel All=(ALL) ALL

para

%wheel All=(ALL:ALL) ALL

Às vezes é mais conveniente

Uma maneira segura de editar sudoers é:

sudo sudoedit /etc/sudoers
    
por 09.05.2017 / 14:55

Tags