Sintaxe adequada para o comando "id -r"

Sintaxe adequada para o comando "id -r"

Estou tentando ver se id -rimprimirá o UID ou nome de usuário do usuário que efetuou login no sistema, apesar de qualquer su's' ou sudo's. Estou interessado em fazer isso para manter as pessoas um pouco mais responsáveis ​​e adaptar o funcionamento do script de acordo (ou seja: eles emitem um sudo em um script e ele extrai informações do diretório inicial do usuário logado).

Eu percebo sudoconjuntos SUDO_USER, mas não quero confiar nisso porque é uma variável que pode ser modificada pelo usuário e contém apenas o nome de usuário do usuário que emitiu o sudo mais recente (ou seja: sudo -i ; sudo -iu randomUser ; echo $SUDO_USERimprime "root" em vez de o usuário real).

Nada nas páginas de manual ou no que posso encontrar on-line parece indicar qual é o uso adequado deste comando e as permutações óbvias não estão funcionando:

[root@ditirlns03 ~]# id -r
id: cannot print only names or real IDs in default format
[root@ditirlns03 ~]# id -r jadavis6
id: cannot print only names or real IDs in default format
[root@ditirlns03 ~]# id -r root
id: cannot print only names or real IDs in default format

Neste ponto, ainda não tenho certeza id -rse vou imprimir o que quero, principalmente porque não consigo descobrir como imprimir nada.

Responder1

-rdeve ser usado em conjunto com outra opção. Por exemplo:

$ id -Gr
1000 4 24 27 30 46 109 124

Citando a página de manual:

-r, --real
print the real ID instead of  the  effective  ID,  with -ugG

Responder2

O programa e os documentos divergem das práticas padrão:

Se -ugGrealmente significa -u|g|G[modifier](o que aparentemente significa), então deve ser documentado dessa forma. Os autores não pareciam achar que valia a pena o esforço. No entanto, quando o usuário faz a mesma coisa (como o Sr. Davis tentou razoavelmente):

-ru, uma suposição legítima e intuitiva, retorna um erro.

A propósito desta dica:

stat -c "%U" $(tty)

Provavelmente teria ajudado mencionar que é específico do shell.

Responder3

  • Imprimindo o ID do usuário:id -u
  • Imprimindo o nome de usuário:id -u -n

Tente man idse inclinar mais.

informação relacionada