"id -r" 명령의 올바른 구문

"id -r" 명령의 올바른 구문

' 또는 '가 id -r있어도 시스템에 로그인한 사용자의 UID 또는 사용자 이름이 인쇄되는지 확인하려고 합니다 . 나는 사람들이 좀 더 책임감을 갖고 그에 따라 스크립트 기능을 맞춤화할 수 있도록 이 작업을 수행하는 데 관심이 있습니다(예: 스크립트에서 sudo를 실행하고 로그인한 사용자의 홈 디렉터리에서 정보를 가져옵니다).susudo

나는 sudo세트를 알고 있지만 SUDO_USER사용자가 수정할 수 있는 변수이고 가장 최근에 sudo를 발행한 사용자의 사용자 이름만 갖고 있기 때문에 이것에 의존하고 싶지 않습니다(예: sudo -i ; sudo -iu randomUser ; echo $SUDO_USER대신 "root"를 인쇄합니다). 실제 사용자).

매뉴얼 페이지나 온라인에서 찾을 수 있는 내용 중 이 명령의 올바른 사용법과 명백한 순열이 작동하지 않는 것을 나타내는 내용은 없습니다.

[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

이 시점에서는 내가 원하는 것을 인쇄할 수 있을지 확신할 수 없습니다 id -r. 무엇보다도 인쇄하는 방법을 전혀 알 수 없기 때문입니다.

답변1

-r다른 옵션과 함께 사용해야 합니다. 예를 들어:

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

매뉴얼 페이지를 인용하면 다음과 같습니다.

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

답변2

프로그램과 문서는 표준 관행에서 벗어납니다.

-ugG실제로 의미하는 경우 -u|g|G[modifier](분명히 그렇습니다), 그런 식으로 문서화해야 합니다. 저자는 그것이 노력할 가치가 있다고 생각하지 않는 것 같습니다. 그러나 사용자가 동일한 작업을 수행하는 경우(Davis 씨가 상당히 합리적으로 시도한 것처럼):

-ru, 타당하고 직관적인 가정은 오류를 반환합니다.

이 팁에 대해:

stat -c "%U" $(tty)

아마도 그것이 쉘 특정이라는 것을 언급하는 데 도움이되었을 것입니다.

답변3

  • 사용자 ID 인쇄:id -u
  • 사용자 이름 인쇄:id -u -n

man id더 많이 기울이 십시오 .

관련 정보