Computer >> 컴퓨터 >  >> 문제 해결 >> Linux

루트 사용자의 홈 디렉토리가 /root를 가리키는 이유 – Linux 빠른 이해 가이드

터미널에서 cd 또는 cd ~ 명령어를 입력했을 때 /home 디렉토리 내부가 아닌 /root로 이동하는 현상을 경험한 적이 있으신가요? 리눅스에서 슈퍼 유저(root)로 작업할 때마다 이런 상황이 반복된다면 무언가 잘못됐다고 생각하실 수 있습니다. 하지만 걱정할 필요가 없습니다. 사실 이것은 오류가 아니기 때문입니다.

오류가 아닌 리눅스의 설계 방식

이 현상은 리눅스가 홈 디렉토리의 위치를 처리하는 방식에서 비롯된 특성입니다. 예상된 동작이지만, 처음 접하는 사용자에게는 매우 혼란스럽게 느껴질 수 있습니다.

터미널에서 cd 또는 cd ~ 명령어를 입력하면, 현재 리눅스 디렉토리 계층 구조의 어디에 있든 홈 디렉토리로 즉시 이동합니다. 별도의 파티션에 있거나 완전히 다른 외부 파일 시스템에 있더라도 마찬가지입니다. 디렉토리를 탐색하다 길을 잃었다면, cd 명령어 하나만으로 터미널을 열었던 시작점으로 돌아갈 수 있습니다.

루트 사용자의 홈 디렉토리 위치

일부 배포판에서는 루트 사용자의 홈 디렉토리가 /home/root에 위치하기도 하지만, 대부분의 경우 파일 시스템 최상위 경로인 /root에 자리하고 있습니다. 설정으로 변경할 수는 있지만, 압도적으로 많은 리눅스 배포판이 이러한 구조를 채택하고 있습니다.

일반 사용자 계정으로 터미널에 cd /root 명령어를 입력해 보세요. "bash: cd /root: Permission denied"라는 오류 메시지가 표시될 것입니다. 해당 디렉토리가 슈퍼 유저 전용 홈 디렉토리이기 때문입니다.

직접 확인해 보는 방법

터미널에서 gksu x-terminal-emulator 명령어를 입력하여 그래픽 루트 터미널 창을 열어봅니다. 완전히 상승된 관리자 권한 명령 프롬프트가 실행되므로 관리자 비밀번호를 입력하라는 프롬프트가 나타납니다.

많은 리눅스 배포판, 특히 우분투(Ubuntu) 기반 시스템에서는 루트 계정 로그인을 차단해 두는 경우가 많습니다. 우분투나 유사한 배포판에서 이런 문제가 발생하더라도 위 명령어를 사용하면 계정 잠금 설정과 상관없이 루트로 로그인할 수 있습니다. 어쨌든 기존에 작업하던 창과 별개의 새 터미널 창이 열립니다.

bash 프롬프트가 뜨면 whoami; cd; pwd 명령어를 입력하고 엔터 키를 누릅니다. 이 명령어 조합은 먼저 현재 로그인한 사용자를 식별한 다음, 해당 사용자의 홈 디렉토리로 이동하고 현재 경로를 출력합니다. 루트 사용자로 로그인되어 있으며, 홈 디렉토리가 /home/root가 아니라 /root 그 자체임을 확인할 수 있습니다. 리눅스 배포판들이 이렇게 설계한 이유는 일부 사용자가 /home 디렉토리 전체를 최상위 / 마운트 지점과 별도의 파티션에 설치하는 경우가 많기 때문입니다.

루트 창에서 작업을 모두 마쳤다면 exit 명령어를 입력하여 창을 종료하세요. 해당 창에서 여전히 루트 사용자 권한으로 작동 중이므로 반드시 종료하는 것이 안전합니다.

/root가 분리되어 있는 이유

만약 /home 디렉토리 구조가 다른 디스크에 설치되어 있고 해당 디스크에 물리적 장애가 발생했다면, /root가 별도 위치에 있어야 최소한 슈퍼 유저로 부팅하여 복구 작업을 수행할 수 있습니다. 대부분의 배포판은 일반 사용자들의 홈 디렉토리가 서로 읽힐 수 있도록 755 유닉스 권한을 부여합니다. 반면 /root 디렉토리는 특별하게 700 권한을 가지며, 이는 오직 루트 슈퍼 유저만이 해당 디렉토리를 읽을 수 있다는 의미입니다.

~(틸드) 기호의 의미

셸에서 보이는 ~ 기호는 사용자의 홈 디렉토리가 실제로 어디에 있든 이를 대표하는 기호일 뿐입니다. 따라서 위에서 안내한 내용과 동일하거나 유사한 출력 결과가 나왔다면 수정해야 할 오류는 전혀 없는 것입니다. 간혹 '틸드(tilde)'라는 용어를 접할 수 있는데, 이는 ~ 기호의 공식 명칭으로 같은 의미를 지닙니다.

저자 소개

루트 사용자의 홈 디렉토리가 /root를 가리키는 이유 – Linux 빠른 이해 가이드

Kevin Arrows

Kevin Arrows는 10년 이상의 업계 경력을 지닌 베테랑 기술 전문가입니다. Microsoft Certified Technology Specialist(MCTS) 자격증을 보유하고 있으며, 최신 기술 동향을 끊임없이 학습하는 데 큰 열정을 가지고 있습니다. 소프트웨어 개발, 사이버 보안, 클라우드 컴퓨팅 등 다양한 기술 분야에 걸쳐 폭넓게 집필해 왔으며, 복잡한 기술 개념을 명확하고 간결하게 설명하는 능력으로 동료들에게 널리 인정받고 있습니다.