-r
deve ser usado em conjunto com outra opção. Por exemplo:
$ id -Gr
1000 4 24 27 30 46 109 124
Citando a página man:
-r, --real
print the real ID instead of the effective ID, with -ugG
Estou tentando ver se id -r
imprimirá o UID ou o nome de usuário do usuário que efetuou login no sistema, apesar de qualquer su
ou sudo
. Eu estou interessado em fazer isso para que eu possa 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 puxam informações do diretório pessoal do usuário logado).
Eu percebo sudo
conjuntos SUDO_USER
mas não quero depender disso porque é uma variável que pode ser modificada pelo usuário e tem apenas o nome de usuário do usuário que emitiu o sudo mais recente ( ie: sudo -i ; sudo -iu randomUser ; echo $SUDO_USER
imprime "root" em vez do usuário atual.
Nada nas man pages ou que eu possa encontrar on-line parece indicar qual é o uso correto desse 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, eu ainda não tenho certeza se id -r
vai imprimir o que eu quero, principalmente porque eu não consigo descobrir como fazer para imprimir qualquer coisa.
O programa e os documentos se desviam das práticas padrão:
Se -ugG
realmente significa -u|g|G[modifier]
(o que aparentemente acontece), então deve ser documentado dessa maneira. Os autores não parecem pensar que valeu a pena o esforço. No entanto, quando o usuário faz a mesma coisa (como o Sr. Davis razoavelmente tentou):
-ru
, uma suposição legítima e intuitiva, retorna um erro.
A propósito desta dica:
stat -c "%U" $(tty)
Provavelmente teria ajudado a mencionar que é específico do shell.
Tags command-line coreutils uid linux audit