Sintaxis adecuada para el comando "id -r"

Sintaxis adecuada para el comando "id -r"

Estoy tratando de ver si id -rse imprime el UID o el nombre de usuario del usuario que inició sesión en el sistema a pesar de los su" o sudo". Estoy interesado en hacer esto para poder mantener a las personas un poco más responsables y adaptar el funcionamiento del script en consecuencia (es decir: emiten un sudo en un script y extrae información del directorio de inicio del usuario que ha iniciado sesión).

Me doy cuenta de sudoconjuntos SUDO_USER, pero no quiero confiar en esto porque es una variable que el usuario puede modificar y solo tiene el nombre de usuario del usuario que emitió el sudo más reciente (es decir, sudo -i ; sudo -iu randomUser ; echo $SUDO_USERimprime "root" en lugar de el usuario real).

Nada en las páginas de manual o lo que puedo encontrar en línea parece indicar cuál es el uso adecuado de este comando y las permutaciones obvias no funcionan:

[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

En este punto, todavía no estoy seguro id -rde si voy a imprimir lo que quiero, principalmente porque no sé cómo hacer que imprima nada.

Respuesta1

-rdebe usarse junto con otra opción. Por ejemplo:

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

Citando la página de manual:

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

Respuesta2

El programa y los documentos se desvían de las prácticas estándar:

Si -ugGrealmente significa -u|g|G[modifier](lo que aparentemente es así), entonces debería documentarse de esa manera. Los autores no parecieron pensar que valiera la pena el esfuerzo. Sin embargo, cuando el usuario hace lo mismo (como lo intentó razonablemente el Sr. Davis):

-ru, una suposición legítima e intuitiva, devuelve un error.

A propósito de este consejo:

stat -c "%U" $(tty)

Probablemente hubiera ayudado mencionar que es específico de Shell.

Respuesta3

  • Imprimir el ID de usuario:id -u
  • Imprimir el nombre de usuario:id -u -n

Intenta man idinclinarte más.

información relacionada