Run0 - Elevação de privilégios com systemd
A partir da versão 256 do systemd está disponível o comando Run0 para elevação de privilégios ou execução de comandos locais ou virtuais com outro perfil de usuário.
[ Hits: 3.111 ]
Por: Kyetoy em 02/09/2024
Run0 para elevação de privilégios ou execução de comandos locais ou virtuais com outro perfil de usuário.
polkit é necessário para executar Run0. Sudo(8) não precisa ser instalado! Run0 faz parte do pacote systemd e já está instalado por padrão.
run0 pode ser usado para adquirir privilégios elevados ou diferentes, de forma temporária e interativa. Observe que este artigo foi escrito em
um contexto de linha de comando. Quando uma interface gráfica for utilizada, é certo que haverá mudanças que não foram avaliadas neste cenário de laboratório.
Run0 tem um propósito semelhante ao sudo(8), mas opera de forma diferente em algumas áreas principais, o que pode torná-lo preferível em casos específicos de uso:
polkit, isolando assim o prompt de autenticação do terminal (se possível). Recomendamos a leitura do manual polkit para maior entendimento.SetUID/SetGID é usada para a implementação.sudo, especialmente em ambientes de SO onde o suporte SetUID/SetGID não está disponível (por exemplo, definindo a variável NoNewPrivileges=em
systemd-system.conf(5)). Qualquer sessão invocada via run0 será executada pela pilha PAM systemd-run0. Observe que run0 é implementado como uma invocação multi-chamada alternativa de
systemd-run(1), cujo manual em [2] recomendamos a leitura para maior entendimento.
--setenv=SHELL=… e atualmente assume como padrão o shell do usuário de origem (ou seja, não o do usuário de destino!) se estiver operando localmente, ou alternativamente /bin/sh ao operar
        com --machine=.systemd-run [2], a sessão herdará o ambiente do sistema do gerenciador de serviços. Além disso, as seguintes variáveis de ambiente também
        serão definidas: $TERM, $SUDO_USER, $SUDO_UID, $SUDO_GID, caso elas estejam definidas.--no-ask-password - Não consulta o usuário por autenticação.--unit=NOME - Define um nome de unidade para a execução, um nome aleatório é gerado se não fornecido.--property=NOME=VALOR - Define uma propriedade na unidade de serviço que é criada. Esta opção recebe uma atribuição no mesmo formato que o comando set-property do systemctl(1). Como por exemplo: # systemctl set-property foobar.service CPUWeight=200 MemoryMax=2G IPAccounting=yes--description="TEXTO" - Fornece uma descrição para a unidade que é invocada. Se não for definida, o próprio comando é utilizado como uma descrição. A sintaxe é similar à encontrada em [5]        systemd.unit(5). Uma descrição é um título curto e legível da unidade, apenas para humanos.--slice= - Faça com que a nova unidade .service faça parte da fatia especificada, em vez de user.slice.--slice-inherit - Faça com que a nova unidade .service faça parte do slice no qual o próprio run0 foi invocado. Esta opção pode ser combinada com --slice=, nesse caso o slice        especificado via --slice= é colocado dentro do slice no qual o comando run0 é invocado. Exemplo: considere run0 sendo invocado no slice foo.slice, e o argumento --slice=bar.
        A unidade será então colocada sob foo-bar.slice.--user=, -u, --group=, -g - Troca para o usuário/grupo definido, em vez de usar root.--nice=VALOR - Define um nível de gentileza para a tarefa. Esse é um valor numérico e pode ser dependente da definição de nice da sua distribuição.--chdir=CAMINHO, -D - Executa a sessão invocada com o diretório de trabalho especificado. Se não for especificado, o padrão é o diretório de trabalho atual do cliente se alternar para o usuário root, ou o diretório
        home do usuário de destino, caso contrário.--setenv=ENV[=VALUE] - Executa a sessão invocada com a variável de ambiente especificada definida. Este parâmetro pode ser usado mais de uma vez para definir várias variáveis. Quando "=" e VALUE são omitidos,
        o valor da variável com o mesmo nome no ambiente de invocação será usado.--background=[COR] - Define cores no padrão ANSI para o background do terminal. Uma string vazia desativa essa opção. Para detalhes das cores ANSI consulte [6].
        Por exemplo: "--background=44" para um azul no background.--machine=CONTAINER - Executa a operação em um container local. Defina o nome do container.--help, -h - Exibe uma ajuda básica.--version - Exibe a versão do programa e encerra.Run0 incluem:
# run0 --user=username /usr/bin/toptop como o usuário especificado.
# run0 --machine=mycontainer --user=root /bin/bashroot dentro de um container chamado mycontainer.
# run0 --slice-inherit --nice=10 /usr/bin/backupRun0 sem qualquer parâmetro seu usuário comum se torna o root!
[kyetoy@vbox ~]$ run0 ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ==== Authentication is required to manage system services or other units. Authenticating as: kyetoy Password: ==== AUTHENTICATION COMPLETE ==== [root@vbox kyetoy]#
 run0 --chdir=/var pwd/var e então executa o comando pwd para exibir o diretório atual.
 run0 --nice=19 tarefa-com-baixa-prioridade ...--nice=19.
 run0 --setenv=SECRET=true bash -c 'export'SECRET=true e então executa bash com o comando export para exibir as variáveis de ambiente.
 run0 --property=ProtectSystem=strict --property=ReadWritePaths=/var/log/write-test bash -c 'echo test > /var/log/write-test'/var/log/write-test e, em seguida, grava o texto "test" nesse arquivo.
Run0 é uma ferramenta poderosa e flexível para gerenciamento de privilégios e execução de comandos em ambientes seguros e isolados. Sua integração com o systemd e o polkit o torna uma alternativa segura ao sudoem
muitos cenários, especialmente em sistemas onde a segurança é uma prioridade.
Funtoo Linux: A necrópsia de um Pinguim
Por que os romanos não fizeram computadores?
XL - Ferramenta de gerenciamento Xen - Parte I
DNS e DNS reverso rapidamente no Linux
Montando sua Web Rádio no Linux com DJ Automático
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Instalação dualboot Windows 11 e Debian 13 (0)
Programa fora de escala na tela do pc (33)
Eu queria adicionar a incon do wifi e deixa transparente no fluxbox no... (0)









