웹사이트 검색

Ubuntu의 Linux에서 시스템 사용자를 보는 방법


소개

시스템 관리의 기본 부분은 사용자와 그룹을 구성하고 관리하는 것입니다. 이 작업의 일부에는 모든 시스템 엔터티의 로그인 기능을 모니터링하는 작업이 포함됩니다.

이 자습서에서는 사용자 관리 및 인증 로깅의 기본 아이디어를 검토합니다.

Ubuntu 22.04 서버에서 이러한 개념을 살펴보겠지만 모든 최신 Linux 배포판에서 따라할 수 있습니다. Ubuntu 22.04의 초기 서버 설정 가이드에 따라 이 자습서용 Ubuntu 22.04 서버를 설정할 수 있습니다.

1부에서는 시스템 사용자를 보고 시스템에 로그인한 사람을 찾는 방법을 설명합니다.

사용 가능한 사용자를 보는 방법

Linux 시스템의 모든 사용자는 실제 사람의 계정으로 생성되었거나 특정 서비스 또는 시스템 기능과 연결되어 있는지 여부에 관계없이 /etc/passwd라는 파일에 저장됩니다.

/etc/passwd 파일에는 시스템의 사용자에 대한 정보가 들어 있습니다. 각 줄은 고유한 사용자를 설명합니다.

전체 파일을 스크롤할 수 있도록 less 명령을 사용하여 살펴보십시오.

  1. less /etc/passwd
Output
root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin . . .

각 줄은 필드로 나뉩니다. 이러한 필드는 콜론(:) 문자로 구분됩니다.

현재 필요한 유일한 필드는 첫 번째 필드입니다. 각각은 독립적인 사용자 이름입니다. less 사용을 마치면 q를 눌러 종료합니다.

cut 명령을 사용하여 콜론 구분 기호로 분할(-d :)하면 전체 "/etc/passwd”를 살펴보지 않고도 이 목록을 얻을 수 있습니다.

  1. cut -d : -f 1 /etc/passwd
Output
root daemon bin sys sync games . . .

아마도 root를 관리 사용자로 알고 계실 것입니다. 마지막으로 로그인한 사용자를 볼 수 있습니다.

그 사이에 사용법이 적어도 어느 정도 명확해 보이는 다른 사용자를 많이 보게 될 것입니다. 예를 들어 www-data는 웹 서버 프로세스의 소유자로 구성됩니다.

이는 기능적 권한을 분리하기 위해 수행됩니다. 이렇게 하면 계정이 손상되거나 오용될 경우 효과가 격리됩니다.

이 자습서에서 /etc/passwd의 필드에 대한 자세한 내용을 읽을 수 있습니다.

사용 가능한 그룹을 보는 방법

시스템 그룹을 검색하기 위한 해당 파일은 /etc/group입니다.

less를 다시 사용하여 이 파일을 볼 수 있습니다.

  1. less /etc/group
Output
root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4: tty:x:5: disk:x:6: . . .

많은 그룹 이름이 시스템에서 발견한 사용자를 미러링한다는 것을 알 수 있습니다. 이것은 사용자 개인 그룹 또는 UPG라는 구성 체계의 일부입니다.

사용자 개인 그룹은 각 사용자에 대한 개인 그룹을 만들고 해당 그룹을 기본 그룹으로 설정합니다. 그러면 umask가 022에서 002로 변경됩니다.

이렇게 하면 setgid라는 플래그를 설정하여 공유 디렉토리의 유연성을 높일 수 있습니다. 이 플래그는 디렉토리 내부의 파일에 디렉토리 자체와 동일한 그룹 소유자를 부여합니다.

다시 한 번 cut 명령을 사용하여 /etc/group 파일에서 정보를 줄일 수 있습니다.

  1. cut -d : -f 1 /etc/group
Output
root daemon bin sys adm tty disk . . .

출력은 라인당 하나씩 시스템의 각 그룹 목록입니다.

로그인한 사용자를 찾는 방법

많은 경우 어떤 사용자가 시스템에서 활성 상태인지 알아내는 것이 더 유용할 것입니다.

w 명령은 현재 로그인한 모든 사용자, 로그인 시간 및 현재 실행 중인 명령을 모두 나열하는 간단한 방법입니다.

  1. w
Output
19:37:15 up 5:48, 2 users, load average: 0.33, 0.10, 0.07 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 rrcs-72-43-115-1 19:15 38.00s 0.33s 0.33s -bash demoer pts/1 rrcs-72-43-115-1 19:37 0.00s 0.47s 0.00s w

첫 번째 줄에는 시스템 가동 시간 정보가 포함되어 있습니다. 다음 줄은 로그인한 사람을 설명합니다.

유사한 정보를 제공하는 대안은 who입니다.

  1. who
Output
root pts/0 2013-09-05 19:15 (rrcs-72-43-115-186.nyc.biz.rr.com) demoer pts/1 2013-09-05 19:37 (rrcs-72-43-115-186.nyc.biz.rr.com)

결론

Linux에서 사용자 인증은 비교적 유연한 시스템 관리 영역입니다. 널리 사용되는 도구를 사용하여 동일한 목표를 달성하는 방법에는 여러 가지가 있습니다.

이제 서버가 사용자 및 그룹 정보를 저장하는 위치를 찾는 방법을 알아야 합니다. 주어진 시간에 누가 로그인했는지 확인할 수도 있습니다.

이 자습서 시리즈의 다음 부분에서는 로그인 액세스를 제한하는 방법을 검토합니다.