다중 사용자 운영 체제에서 사용자 및 그룹 관리는 근본적인 개념입니다. 이는 액세스 제어 및 권한을 위해 설계된 리눅스 기초의 핵심 부분입니다. 프로세스가 실행될 때, 해당 프로세스는 시작한 사용자로 실행됩니다. 마찬가지로 파일 액세스 및 소유권은 권한에 따라 달라지므로 한 사용자가 다른 사용자의 개인 문서를 액세스하는 것을 방지합니다.
리눅스 사용자 및 그룹의 기본 사항
리눅스 시스템의 모든 사용자에게는 개인 홈 디렉터리가 할당되며, 일반적으로 /home/username에 위치합니다. 이 디렉터리는 사용자별 파일 및 구성이 저장되는 곳이지만, 정확한 경로는 리눅스 배포판마다 다를 수 있습니다.
시스템은 사용자 ID(UID) 로 사용자를, 그룹 ID(GID) 로 그룹을 식별합니다. 사람이 읽을 수 있는 사용자 이름을 사용하지만, 운영 체제는 모든 권한 관련 작업에 대해 이러한 고유한 숫자 ID 에 의존합니다. 그룹은 단순히 사용자들의 모음이므로 여러 계정에 대한 권한을 한 번에 더 쉽게 관리할 수 있습니다.
슈퍼유저 및 Sudo 명령어
리눅스 사용자 및 그룹 계층 구조 내에서 모든 사용자 위에 군림하는 한 사용자가 있습니다. 바로 슈퍼유저인 root입니다. root 사용자는 무제한의 권한을 가지며, 모든 파일에 액세스하고 모든 프로세스를 관리할 수 있습니다. 지속적으로 root로 작업하는 것은 간단한 실수로 시스템이 손상될 수 있으므로 위험합니다.
이러한 위험을 완화하기 위해 권한이 있는 사용자는 sudo(superuser do) 명령어를 사용하여 루트 권한으로 명령을 실행할 수 있습니다. 이를 통해 root 사용자로 로그인하지 않고도 관리 작업을 수행할 수 있습니다. sudo를 올바르게 사용하는 방법을 이해하는 것은 가장 빠른 리눅스 고급 관리 기술을 습득하려는 모든 사람에게 필수적입니다.
암호화된 사용자 암호가 저장되는 /etc/shadow와 같은 보호된 파일을 보려고 시도해 봅시다.
cat /etc/shadow
"Permission denied" 오류가 발생할 것입니다. 파일의 권한을 검사해 봅시다.
$ ls -la /etc/shadow
-rw-r----- 1 root shadow 1134 Dec 1 11:45 /etc/shadow
권한에 대해서는 나중에 자세히 다루겠지만, 이 출력은 root 사용자와 shadow 그룹의 구성원만이 이 파일을 읽을 수 있음을 보여줍니다. 이제 sudo를 사용하여 명령을 다시 실행해 봅시다.
sudo cat /etc/shadow
이번에는 암호를 입력하라는 메시지가 표시되며, 인증에 성공하면 파일 내용이 표시됩니다.