sudo sh -c 'echo "$(logname) ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/$(logname)' & sudo chmod 440 /etc/sudoers.d/$(logname)
Eu uso o one-liner acima para permitir que o usuário atual execute sudo sem uma senha, em hosts conectados remotamente.
Mas o que é exatamente $(logname)
?
Em uma máquina local, echo $(logname)
não retorna nada, enquanto echo $LOGNAME
faz, então não é a variável de ambiente, embora eu nunca tenha visto o valor ser diferente em máquinas remotas.
Além disso, existem outras $(foo)
variáveis semelhantes (ou como elas são chamadas)?
logname(1) é um comando que retornará o nome de login do usuário atual.
$( ... )
é a sintaxe para substituição de comando que está dizendo "substitua a saída do comando aqui"Então, se o seu usuário for
foo
você está executando: