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