상세 컨텐츠

본문 제목

Mac도 사용자가 번호로 관리되고 있다고요?

애플 스페셜, 특집

by 애플양™ 2019. 4. 23. 08:00

본문

Mac의 주민등록번호

대한민국의 국민이라면 누구나 주민등록번호라 부르는 13자리로 된 일련번호를 부여받습니다. 그리고 이 번호를 통해 사회 보장, 세금 납부와 같은 의무와 권리를 지게 됩니다. 주민등록번호의 가장 큰 장점이라면 번호 소유자가 누구인지 판별하기 쉽다는 것입니다. 이름을 쓸 경우 같은 이름을 사용하는 사람들은 동일인인지 확인하기 어렵기 때문이지요.

이런 고유의 번호는 UNIX와 Mac, 윈도우와 같은 컴퓨터에서도 쓰입니다. UNIX의 경우 사용자 이름은 공백이 없는 알파벳과 숫자를 사용하지만, 내부적인 프로세스는 모두 사용자 ID, 또는 UID라는 정수 값으로 이루어지고 있습니다. 파일의 소유자도 사실은 숫자로 기록되어 있으며 ls 명령 등을 사용할 때 그 수치에 해당하는 사용자 이름을 표시하고 있습니다.

UNIX의 이런 양상은 macOS에서도 마찬가지입니다. 다만, macOS 역시 UID로 관리되고 있지만, UNIX가 짧은 사용자 이름(계정 이름)을 사용할 수 있는 것과 달리 공백이나 한글을 포함하는 긴 이름도 쓸 수도 있습니다. 사용자 이름을 'applestory'라고도 쓰고 한글로 '애플스토리'라고 쓸 수 있다는 말이죠.

UID는 단순한 숫자이기 때문에 몇 번을 사용하는지는 의미가 없습니다만, 몇 가지 예외는 있습니다. UNIX와 macOS에서 0번은 특별하게 취급되어 루트(root)라는 계정이 사용하고 있습니다. 시스템에서도 UID가 0번인 사용자만 허가되는 기능이 곳곳에 존재하고 있습니다. 루트(root)에 관해서는 아래 이전 포스팅을 보시면 자세히 알 수 있습니다.



게다가 UNIX에서는 예전부터 100번 이하의 번호는 웹 서버나 메일 서버의 서비스를 위한 계정에서 사용되었습니다. 사용자가 새로 만드는 일반 계정은 그보다 뒷자리 숫자가 부여되기는 하지만, 서비스가 사용하는 100번 이하의 번호라 하더라도 루트에 부여되는 특별한 권한은 사실 없습니다.

macOS의 경우라면 사용자가 생성하는 일반 계정은 좀 더 뒷번호, 500번 다음부터 사용됩니다. Mac을 처음 구매하고 시동했을 때 만드는 첫 계정은 UID가 501이 되고, 그 이후에는 계정을 추가로 만들 때마다 502, 503... 과 같이 차례로 번호가 늘어납니다. 또한, macOS에서 서비스용 계정은 '_(언더 바)'로 시작하는 규칙이 있는데 사용자가 쓰는 짧은 계정 이름과 겹치지 않도록 하기 위함입니다.

macOS에서 숫자로 구별되는 사용자는 원칙적으로 해당 컴퓨터에서만 유효합니다. 영희의 맥과 철수의 맥에서 첫 사용자 계정은 모두 UID 501을 사용합니다. 이 때문에 USB 메모리나 외장 하드에 있는 어떤 파일의 소유자가 영희 컴퓨터의 UID 501인지, 철수 컴퓨터의 UID 501인지 UID만 가지고는 알 수 없다는 문제가 발생합니다.

윈도우의 경우 사용자 식별은 SID라는 긴 정수가 사용됩니다. SID는 'S-2-5-31-2885273347-2668441799-1594775226-2022'와 같이 길이가 매우 긴 숫자인 데다 몇 가지 부분으로 나뉘어 있습니다. 또한, SID는 사용자뿐만 아니라 그룹 및 컴퓨터를 구별할 때도 사용됩니다. 윈도우가 설치되면 컴퓨터의 SID가 자동으로 생성되며 난수를 바탕으로 정해지기 때문에 다른 컴퓨터와 중복되는 일이 없습니다. 모든 컴퓨터마다 같은 번호로 시작되는 macOS와 달리 윈도우 사용자 SID는 전 세계에서 한 명에게만 부여되기 때문에 그만큼 깁니다.



UID 확인하려면 시스템 환경설정 > 사용자 및 그룹 > 사용자 아이콘을 우클릭 하여 고급 옵션을 누른다. 여기서 설정을 바꾸는 것은 매우 위험하므로 주의해야 한다.



macOS에서도 쓰이고 있는 SID

macOS는 버전이 높아질수록 윈도우와의 상호 호환성이 점점 높아지고 있습니다. 이메일에서는 윈도우 서버에서 작동하는 익스체인지 서버를 지원하고 액티브 디렉토리 시스템 관리[각주:1]를 허용하도록 구성할 수도 있지요. 파일 공유 역시 OS X 10.9 매버릭스 이상에서는 애플 고유의 파일 공유 프로토콜인 AFP를 사용하지 않고 윈도우의 SMB를 기본으로 사용하고 있을 정도이지요.

macOS에서 SMB를 사용하여 파일 공유를 하면 윈도우 클라이언트에서는 파일 소유권을 SID로 식별하려고 합니다. 그런데 macOS의 기본 파일 시스템인 HFS+는 UID로 소유자를 기록하고 있습니다. 그렇다면 macOS에서는 파일에 대한 소유자 기록 및 식별을 어떤 방식으로 해결할까요?

사실 macOS는 사용자에게 UID 이외에도 SID, UUID 등 고유 번호를 여러 개 부여하고 있습니다. 사용자에게 할당된 SID가 몇 번인지 UID 501 사용자의 SID, 그에 해당하는 사용자는 누구인지 'dsmemberutil' 명령어를 통해 확인할 수 있습니다.



SID를 확인하려면 터미널에서 다음과 같이 입력 후 엔터를 누른다.
dsmemberutil getsid -U 사용자 이름


UUID를 확인하려면 터미널에서 다음과 같이 입력 후 엔터를 누른다.
dsmemberutil getuuid -U 사용자 이름



사용자 정보는 어디에?

그러면 사용자 계정 정보, 사용자 이름, UID, SID, UUID 등의 번호와 아이콘과 같은 정보는 어디에 저장되는 것일까요? 이러한 정보를 다루는 것은 '오픈 디렉토리 프레임웍스(openFrameworks)'이며 이것은 윈도우, macOS, 리눅스에서 작동하는 크로스 플랫폼 소프트웨어 프레임워크입니다. 오픈 디렉토리 프레임웍스는 여러 플러그인을 보유하고 있으며 로컬 파일군에서 오픈 디렉토리 서버, 윈도우의 액티브 디렉토리로부터 정보를 받아 처리하게 됩니다. 

macOS에서 디렉토리 서비스는 '/ var / db / dslocal'라는 폴더 하위에 항목별로 속성 목록(plist)으로 분산되어 저장됩니다. 당연한 말이지만 이곳의 파일을 직접 편집하는 것은 매우 위험하며 사용자 정보를 변경하고자 한다면 시스템 환경 설정에서 하는 것이 안전합니다.


  1. 사용자 및 그룹 컴퓨터, 프린터의 정보를 통합 관리하고 각각 기기가 중복으로 인식되지 않고 고유하게 개별적으로 인식되도록 유지하는 방법을 말한다. [본문으로]

관련글 더보기

댓글 영역