본문 바로가기

별걸다하는 IT/리눅스 유닉스

[리눅스/유닉스] 현재 사용하고 있는 나의 계정 확인하기 - whoami와 who am i , logname, id 명령어와 그들의 차이점

[리눅스 유닉스 완전정복 목차]

안녕하세요 양햄찌 블로그 주인장입니당~

오늘은 아주 간단한 포스팅이 될 것 같은대...

'지금 서버에 접속해 사용하고 있는 나는 누구인가?'에 관한 명령어들을 알아보려고 합니다.

 

의외로 지금 '나는 누구인가'에 대한 명령어가 꽤 많은데 

오늘 알아볼 명령어는 4개예요.

1. logname

2. whoami 

3. who am i 

4. id 

 

수행 결과 (현재 사용 중인 계정: ubuntu)

각각의 명령어를 하나씩 수행해서 결과를 비교해봤어요 

1. logname 명령어

사용자의 로그인 계정을 출력해줍니다.

man logname

logname 명령어는 utmp 파일에서 읽은 값을 출력하는 방식으로 명령을 수행합니다.

(참고로 utmp파일은 현재 로그인한 사용자의 상태 정보를 담고 있는 로그파일이예요)

su 명령으로 만약에 중도 사용자 전환했을 경우에는, 최초의 로그인 계정을 출력해줘요. (whoami와의 차이점)

옵션은 없습니당! 

2. whoami 명령어 

자신이 누구인지 실질적인 사용자 아이디(계정)를 출력해주는 명령어

ubuntu@server:~$ whoami
ubuntu
ubuntu@server:~$

whoami 보면 현재 사용자 정보를 출력하는 거 같구.. logname과 똑같은거 아닌가..? 뭐가 다르지 할 수 있습니다.

그런데 리눅스에서 man whoami 해보면 설명이 logname과는 좀 다른 것을 확인할 수 있어요.

로그네임이 유저의 로그인 이름을 출력한다면,

후엠아이는 effective 유저아이디를 출력한다고 되어있죠?

su 명령으로 만약에 중도 사용자 전환한 이후를 살펴보면 좀 더 직관적으로 이해하실 수 있는데요,

logname이 정말 로그인했을 때 그 계정을 출력한다면, whoami는 현재 사용중인 실질적 아이디를 출력하는 것을 알 수 있어요.

그래서 중간에 관리자계정으로 전환했을 때 logname은 root가 아닌 ubuntu를, whoami는 실질적인 사용자인 root를 출력하는 것을 비교해볼 수 있답니다. 

 

또, logname이 utmp파일을 참조한다면, whoami 명령어는 utmp 파일을 검사하지 않아요.

whoami 명령어 역시 별도의 옵션은 존재하지 않습니다.

3. who am i 명령어

자신이 누구인지 로그인 사용자 정보를 출력해주는 명령어

 

[UNIX 서버]

jhyang@SERVER:/jhyang> whoami
jhyang	
jhyang@SERVER:/jhyang> who am i
jhyang	pts/4	Feb	1	08:49	(188.8.88.21)
jhyang@SERVER:/jhyang>

이걸 보면 오, whoami가 내 아이디만 출력해주면다면 who am i는 내 로그인 정보를 같이 출력해주는건가? 생각할 수 있어요.

리눅스에서 logname, whoami, who am i 비교

그런데 이걸 봅시다! 사실 'who am i' 는 whoami처럼 실질적인 계정을 출력해주는게 아닌, 로그인한 계정을 출력해줘요.

 

사실 who am i  명령어는 who 명령어에 "am i"가 인자로 붙여진 형식이예요

실제 'who am i'명령어가 아니라 who 명령어였던거죠. who명령어인데, 지금 사용중인 정보만 who 로 출력해달라는거~ 그래서 출력 해주는 정보가 who랑 같습니다.

로그인 계정, 터미널정보, 그리고 로그인한 날짜와 시간 정보!

4. id 명령어

시스템에 등록된 아이디에 대한 정보를 출력하는 명령어입니다. (uid, gid, 속한 그룹 정보 등등..)

 

[UNIX id명령어 결과]

SERVER01:/> id
uid=1001(monitor1) gid=1000(apgroup) groups=4(adm)
SERVER01:/> 

 

사실 id 명령어는 identification의 약자입니다. 즉 신원확인 !!

 

이전의 logname, whoami, who am i가 계정 이름과 로그인 정보 정도였다면

id는 뭔가 내 개인정보를 포함하고 있어요. 내 계정의 uid 번호, 내 계정이 속한 주 그룹의 그룹번호, 부가 그룹 정보 등등!

 

[ id 명령어의 옵션을 알아보자]

id옵션 - 리눅스 기준

옵션 의미
-g 사용자의 그룹ID만(gid) 출력합니다.
-G 사용자의 추가 그룹 id만 출력합니다.
-n -u, -g, -G 옵션과 함께 사용해 번호가 아닌 id명 출력 (ex. id -un : 현재 uid 계정에 해당하는 계정명 출력)
-r -u, -g, -G 옵션과 함께 사용해 실제 id를 출력 (숫자 출력)
-u 사용자의 uid만 출력합니다.

-a옵션은 무시해도 됩니당. 다른 버전 호환성때메 있는거라 하네요.

-g와 -G옵션 비교 

오늘 포스팅은 여기까지입니다. 

다음 포스팅에서는 내 계정 뿐만 아니라 로그인한 모든 계정 정보를 알아보는 명령어에 대해 알아볼게요.

이어서 보시고 싶으신 분은 하기 링크를 참고해주세요!

 

▼ w, who, users 명령어 포스팅 : jhnyang.tistory.com/397

 

[리눅스 유닉스] 현재 접속자 수 확인하기, 서버 로그인 확인하기, 시스템 사용자 확인 (w, who, user

[리눅스 / 유닉스 완전정복 목차] 안녕하세요 양햄찌 블로거입니다. 오늘은 시스템에 접속한 사용자 관련 명령어들을 살펴보려고 해요~! 오늘 알아볼 명령어는 총 3개로 users, who, w 입니다. 1. users

jhnyang.tistory.com

오늘도 고생 많았습니다. 광고클릭과 좋아요 댓글 등의 행위는 작성자에게 큰 동기부여가 된답니다 :)

그럼 다음에 또 봐요