Sintaxe apropriada para o comando "id -r"

5

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.

    
por Bratchley 01.05.2013 / 16:18

2 respostas

5

-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
    
por 01.05.2013 / 17:39
0

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.

    
por 21.07.2014 / 19:42