Eu gostaria que os usuários do grupo foogroup
pudessem:
systemctl start foo.service
,systemctl stop foo.service
,systemctl status foo.service
, ejournalctl -u foo.service
sem usar privilégios elevados. Isso é possível?
Eu tenho um serviço systemd que se parece com:
[Unit]
Description=foo service
[Service]
Type=simple
ExecStart=/bin/sleep infinity
User=foobot
Group=foogroup
Onde foobot
é um usuário do sistema.
Eu sei que podemos instalar o arquivo de unidade ~/.config/systemd/user/
para permitir que um usuário sem privilégios use o systemd, mas isso realmente não ajuda um grupo.
Nota: Eu planejo usar a API sd-buslibsystem-dev
do cockpit , então adicionar systemctl
não /etc/sudoers
vai ajudar.
Eu não me importo muito com systemctl enable
isso, tudo bem se eu precisar de privilégios elevados para isso.
Esta foi a solução que finalmente encontrei. Eu criei:
Observe que isso funciona especificamente para o polkit <106 usado no Debian/Ubuntu. Outras distribuições usam uma versão mais recente do polkit que teria feito algo assim:
Se você quiser restringi-lo a um único serviço e apenas iniciar/parar/reiniciar, use algo assim:
(de https://wiki.archlinux.org/title/Polkit )
Eu estava procurando uma solução para o mesmo e não consegui encontrar uma que realmente me satisfaça. Uma solução satisfatória seria ter suporte de grupo em
systemd
. Mas encontrei esta solução. Vamos supor que os usuários aos quais você deseja conceder acesso sejamann
,ben
echris
. Eles estão todos devem estar em um grupoawesomeproject
.awesomeproject
e adicione os usuários ao grupo deawesomeproject
.systemctl
desse novo usuário.As entradas devem ficar assim:
Em vez de colocá-los em
/etc/sudoers
, dependendo da distribuição, pode ser melhor colocá-los/etc/sudoers.d/awesomeproject
usandosudo visudo -f /etc/sudoers.d/awesomeproject
.Gerencie permissões em arquivos e diretórios de acordo para que os membros do grupo
awesomeproject
tenham acesso aos arquivos e diretórios correspondentes no formato~awesomeproject
.O comando a seguir deve agora funcionar para
ann
,ben
echris
: