예를 들어 Codecademy의 명령 줄 플랫폼과 같은 온라인 명령 줄 플랫폼에서
for cmd in w who whoami id
do
echo $cmd
$cmd
echo =========================
echo " "
done
나는 얻다
w
00:52:54 up 8 days, 14:10, 0 users, load average: 3.78, 2.98, 2.69
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
=========================
who
=========================
whoami
ccuser
=========================
id
uid=1000(ccuser) gid=1000(ccuser) groups=1000(ccuser)
=========================
만 주 whoami
및 id
출력 무언가를. 내 컴퓨터에서 같은 것을 실행하면 모든 명령에 대해 비슷한 결과가 나타납니다.
왜 Codecademy가 w
및에 대한 사용자를 표시하지 않습니까 who
? 이 명령들과 다른 점은 무엇입니까?
답변
id
보고서- 자체 프로세스의 현재 자격 증명; 또는
- 명명 된 사용자의 자격 증명 등의 판독 시스템 계정 데이터베이스 .
whoami
자체 프로세스의 현재 자격 증명을보고합니다.who
그리고w
으로부터 활성 로그인 세션 테이블을보고 로그인 데이터베이스 .
BSD DOCO 노트 whoami
의 작업의 일부를 수행 id
하고, 그 id
그것은 쓸모 렌더링합니다.
시스템에는 활성 로그인 세션 테이블이 필요하지 않습니다. Linux 운영 체제 및 BSD에서 테이블이 부트 스트랩에서 작성되지 않았거나 그 이후에 삭제 된 경우 시스템은 하나없이 작동합니다. 또한 로그인 및 로그 아웃해도 Linux 운영 체제에서 암시 적으로 생성되지 않습니다.
또한 권한이없는 사용자가 테이블을 읽을 필요가 없으며, who
nor도 w
명령 도 이를 오류로보고 하지 않습니다 .
추가 자료
- Jonathan de Boyne Pollard (2018). 유닉스 로그인 데이터베이스 . 자주 답변.
- Jonathan de Boyne Pollard (2018). ” login-update-utmpx “. 사용자 명령 . nosh 툴셋.
- Lennart Poettering et al. (2018).
systemd-update-utmp.service
. 체계적인 매뉴얼 페이지. Freedesktop.org. - 로그인 쉘이 utmp 항목을 작성해야합니까?
- https://unix.stackexchange.com/a/409036/5132