리눅스 시스템 관리자로서, 귀하는 조직의 모든 IT 운영이 원활하게 이루어지도록 보장하는 역할을 맡게 될 것입니다. 일부 IT 운영이 서로 연동되어 있기 때문에, 시스템 관리자는 보통 데이터베이스나 네트워크 관리자로서의 역할도 수행합니다.
이 글은 LFCA 시리즈의 파트 5로, 이 파트에서는 리눅스 시스템에서 사용자를 생성하고 관리하기 위한 일반적인 시스템 관리 명령어에 대해 알아볼 것입니다.
리눅스에서의 사용자 계정 관리
리눅스 시스템 관리자의 주요 책임 중 하나는 리눅스 시스템에서 사용자를 생성하고 관리하는 것입니다. 각 사용자 계정은 두 개의 고유한 식별자, 즉 사용자명과 사용자 ID (UID)를 가지고 있습니다.
기본적으로, 리눅스에서는 3가지 주요 사용자 범주가 있습니다:
루트 사용자
루트 사용자는 리눅스 시스템에서 가장 강력한 사용자이며, 일반적으로 설치 과정에서 생성됩니다. 루트 사용자는 리눅스 시스템 또는 다른 UNIX 기반 운영 체제에서 절대적인 권한을 가지고 있습니다. 이 사용자는 모든 명령어, 파일 및 디렉토리에 접근하고 시스템을 자신의 선호에 맞게 수정할 수 있습니다.
根用户는 시스템을 更新하고, Paket을 설치하거나 卸载하고, 다른 사용자를 추가하거나 제거하고, 권한을 부여하거나 Revoke하고, 시스템 관리 任务을 수행할 수 있습니다.
root 사용자는 시스템에 대한 ほぼ 모든 것을 하는 수 있습니다. Linux과 UNIX-like 시스템은 사용자가 시스템에 대한 모든 것을 完全히 알고 있음을 가정합니다. 즉, root 사용자는 시스템을 brakes하는 것이 어렵지 않습니다. 사용자가 致命的 명령어를 실행하면 시스템이 薰薰하게 됩니다.
이러한 이유로 root 사용자로 명령어를 실행하는 것은 极力 推奨되지 않습니다. 대신에, 좋은 관례는 sudo 사용자를 설정하는 것입니다. 일반 사용자에게 sudo 권한을 부여하여 certain administrative tasks를 수행하고, root 사용자만이 수행할 수 있는 某些 任务을 제한하는 것입니다.
일반 사용자
A regular user is a normal login user that can be created by a systems administrator. Usually, there is a provision to create one during the installation process. However, you can still create as many regular users as needed post-installation.
A regular user can only perform tasks and access files and directories for which they are authorized. If need be, a regular user can be granted elevated privileges to perform administrative-level tasks. Regular users can also be deleted or disabled when the need arises.
서비스 계정
이는 소프트웨어 パッケ이지가 설치되었을 때 생성되는 로그인 불가능한 계정입니다. 이러한 계정은 서비스가 시스템에서 프로세스를 실행하는 데 사용되며, 시스템에서 routing 또는 관리 任务을 수행하는 것이 아니라는 것을 의미합니다.
사용자 관리 파일
Linux 시스템의 사용자 정보는 다음과 같은 파일에 저장되ます:
- /etc/passwd 파일
- /etc/group 파일
- /etc/gshadow 파일
- /etc/shadow 파일
각 파일과 그 기능을 이해해 봅시다:
/etc/passwd 파일
/etc/passwd 파일에는 사용자에 대한 다양한 필드에 포함된 많은 정보가 있습니다. 파일의 내용을 보려면 단순히 다음과 같이 cat 명령어를 사용하면 됩니다.
$ cat /etc/passwd
다음은 출력의 일부입니다.
tecmint:x:1002:1002:tecmint,,,:/home/tecmint:/bin/bash
첫 번째 줄에 집중하여 다양한 필드를 자세히 살펴보겠습니다. 가장 왼쪽부터 시작해서 다음과 같습니다:
- 사용자 이름: 이것은 사용자의 이름입니다. 이 경우에는 tecmint입니다.
- 비밀번호: 두 번째 열은 사용자의 암호화된 비밀번호를 나타냅니다. 비밀번호는 평문으로 인쇄되지 않으며 대신에 x 기호가 사용됩니다.
- UID: 사용자 식별자(UID)입니다. 모든 사용자에 대해 고유한 식별자입니다.
- GID: 그룹 식별자(GID)입니다.
- A brief description or summary of the user.
- 이것은 사용자의 홈 디렉터리 경로입니다. tecmint 사용자의 경우 /home/tecmint입니다.
- 로그인 셸입니다. 일반 로그인 사용자의 경우 일반적으로 /bin/bash로 표시됩니다. SSH 또는 MySQL과 같은 서비스 계정의 경우 일반적으로 /bin/false로 표시됩니다.
/etc/group 파일
이 파일은 사용자 그룹에 대한 정보를 담고 있습니다. 사용자가 생성될 때, 셸은 사용자 이름과 일치하는 그룹을 자동으로 생성합니다. 이를 주 그룹이라고 합니다. 사용자는 생성 시 주 그룹에 추가됩니다.
예를 들어, bob이라는 사용자를 생성하면 시스템은 자동으로 bob이라는 그룹을 만들고 사용자 bob을 그룹에 추가합니다.
$ cat /etc/group tecmint:x:1002:
/etc/group 파일은 세 개의 열을 가지고 있습니다. 가장 왼쪽부터:
- 그룹 이름. 각 그룹 이름은 고유해야 합니다.
- 그룹 비밀번호. 일반적으로 x 자리 표시자로 표현됩니다.
- 그룹 ID(GID)
- 그룹 멤버. 이들은 그룹에 속한 멤버들입니다. 이 필드는 사용자가 그룹의 유일한 멤버인 경우 비워 둡니다.
참고: 사용자는 여러 그룹의 멤버가 될 수 있습니다. 마찬가지로, 그룹은 여러 멤버를 가질 수 있습니다.
사용자가 속한 그룹을 확인하려면 다음 명령을 실행하세요:
$ groups username
예를 들어, 사용자 tecmint이 속한 그룹을 확인하려면 다음 명령을 실행하세요:
$ groups tecmint
출력 결과는 사용자가 두 그룹, tecmint와 sudo에 속해 있음을 확인시켜 줍니다.
tecmint : tecmint sudo
/etc/gshadow 파일
이 파일은 그룹 계정의 암호화되거나 ‘쉐도우‘ 처리된 비밀번호를 포함하고 있으며, 보안상의 이유로 일반 사용자가 접근할 수 없습니다. 루트 사용자와 sudo 권한을 가진 사용자만이 읽을 수 있습니다.
$ sudo cat /etc/gshadow tecmint:!::
가장 왼쪽부터 파일은 다음과 같은 필드를 포함합니다:
- 그룹 이름
- 암호화된 그룹 비밀번호
- 그룹 관리자
- 그룹 구성원
/etc/shadow 파일
/etc/shadow 파일은 사용자의 실제 암호를 해시화하거나 암호화된 형식으로 저장합니다. 다시 말하면, 필드는 콜론으로 구분되며 다음과 같은 형식을 취합니다.
$ sudo cat /etc/shadow tecmint:$6$iavr8PAxxnWmfh6J$iJeiuHeo5drKWcXQ.BFGUrukn4JWW7j4cwjX7uhH1:18557:0:99999:7:::
파일에는 9개의 필드가 있습니다. 가장 왼쪽부터 시작하여 다음과 같습니다:
- 사용자 이름: 로그인 이름입니다.
- 사용자의 암호: 해시화되거나 암호화된 형식으로 제공됩니다.
- 최근 암호 변경일: 이는 암호를 변경한 날짜로서 1970년 1월 1일 이후로 계산됩니다. Epoch는 1970년 1월 1일을 지칭합니다.
- 최소 암호 사용 기간: 암호를 설정하기 전에 반드시 경과해야 하는 최소 일수입니다.
- 최대 암호 사용 기간: 암호를 변경해야 하는 최대 일수입니다.
- 경고 기간: 암호가 만료되기 직전 사용자에게 암호 만료가 임박했음을 알리는 일수입니다.
- 활동하지 않는 기간: 암호가 만료된 후 사용자 계정이 암호를 변경하지 않고 비활성화되는 일수입니다.
- 만료일: 사용자 계정이 만료되는 날짜입니다.
- 예약 필드. – 비어 있습니다.
리눅스 시스템에 사용자 추가하는 방법
Debian 및 Ubuntu 배포판에서는 adduser 유틸리티를 사용하여 사용자를 추가합니다.
구문은 매우 간단하고 직관적입니다.
# adduser username
예를 들어, bob이라는 사용자를 추가하려면 다음 명령을 실행합니다.
# adduser bob
출력에서 ‘bob‘이라는 사용자가 생성되고 새로운 그룹 ‘bob‘에 추가된 것을 확인할 수 있습니다. 또한 시스템은 홈 디렉토리를 생성하고 구성 파일을 복사합니다.
그런 다음, 새로운 사용자의 암호를 입력하고 확인해야 합니다. 또한 쉘은 사용자의 전체 이름 및 객실 번호 및 업무 전화와 같은 선택적 정보를 입력하라는 메시지를 표시합니다. 이 정보는 실제로 필요하지 않으므로 건너뛰어도 안전합니다. 마지막으로, 제공된 정보가 올바른지 확인하기 위해 ‘Y’
를 누르세요.

RHEL 및 CentOS 기반 시스템에서는 useradd 명령을 사용합니다.
# useradd bob
다음으로, 다음과 같이 passwd 명령을 사용하여 사용자의 암호를 설정합니다.
# passwd bob

리눅스 시스템에서 사용자 삭제 방법
사용자를 시스템에서 삭제하기 전에 로그인을 차단하는 것이 좋습니다.
# passwd -l bob
원한다면, tar 명령을 사용하여 사용자의 파일을 백업할 수 있습니다.
# tar -cvf /backups/bob-home-directory.tar.bz2 /home/bob

다음은 홈 디렉터리와 함께 사용자를 완전히 제거하는 두 가지 명령입니다.
deluser 명령어를 사용하여 사용자를 삭제하고 홈 디렉터리와 함께 사용자를 완전히 제거하려면 다음과 같이 입력하십시오.
# deluser --remove-home bob

또한 다음과 같이 userdel 명령어를 사용할 수 있습니다.
# userdel -r bob
이 두 명령은 사용자와 함께 홈 디렉터리를 완전히 제거합니다.
결론
이것은 사무실 환경에서 사용자 계정을 관리할 때 유용한 사용자 관리 명령에 대한 개요였습니다. 가끔씩 시스템 관리 기술을 연마하기 위해 시도해보세요.
Source:
https://www.tecmint.com/linux-user-account-management/