또는 .id -r
나는 사람들이 더 책임감을 갖게 하고 이에 따라 스크립트 기능을 사용자 정의할 수 있도록 이 작업을 수행하는 데 관심이 있습니다(예: 스크립트에서 sudo를 실행하고 로그인한 사용자의 홈 디렉토리에서 정보를 가져옵니다).su
sudo
sudo
설정을 알고 있지만 SUDO_USER
사용자가 수정할 수 있는 변수이고 가장 최근에 sudo를 발행한 사용자의 사용자 이름만 있으므로 이에 의존하고 싶지 않습니다(예: sudo -i ; sudo -iu randomUser ; echo $SUDO_USER
출력) 실제 사용자 대신 "루트").
매뉴얼 페이지나 온라인에서 찾은 어떤 내용도 이 명령의 올바른 사용법을 나타내는 것 같지 않으며 명백한 순열은 작동하지 않습니다.
[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
.