_리눅스 실습 커리큘럼 16/40 · 권한과 사용자 (8주차)_
2단계 마무리 편이며, 이번에는 계정을 만드는 쪽을 다룹니다. 신규 입사자 계정의 UID·홈·셸·패스워드, 로그인하지 않는 서비스 계정과 작업 디렉터리, SSH 공개키 배치 권한을 순서대로 정리합니다. 마지막으로 만든 결과를 getent·id 로 읽어 리포트로 남기는 방법도 봅니다. /etc/passwd·/etc/group 필드 구조와 계정 감사의 기초는 Day 3. passwd/group 기반 운영 계정 감사 기초 에서 먼저 확인하세요.
사람 계정은 쓸 수 있게, 서비스 계정은 들어오지 못하게
두 계정은 목적이 다르므로 useradd 옵션도 다릅니다. 사람 계정에는 홈 디렉터리와 대화형 셸, 필요하면 정해진 UID 를 줍니다. 서비스 계정에는 로그인 셸 대신 nologin 을 줍니다.
useradd -m -u 3001 -s /bin/bash -c "Kim Minsu" minsu # 사람: 홈 생성, UID 지정
passwd minsu # 대화형으로 패스워드 설정
echo 'minsu:TempPass!23' | chpasswd # 스크립트에서 설정할 때
-u로 UID 를 지정할 때는 이미 쓰이는 번호인지getent passwd 3001로 먼저 확인합니다.- 계정만 만들고 패스워드를 설정하지 않으면
/etc/shadow의 해당 필드가!로 남아 잠긴 상태입니다. 생성과 패스워드 설정은 별개의 단계입니다.
그룹을 먼저, 계정은 그 다음
서비스 계정의 기본 그룹을 지정하려면 그룹이 먼저 있어야 합니다. -g 는 기본(primary) 그룹이고, -G 는 보조 그룹입니다. 둘을 헷갈리면 요구 조건과 다른 결과가 나옵니다.
groupadd batch
useradd -g batch -s /sbin/nologin batchsvc
mkdir -p /srv/batchwork
chown batchsvc:batch /srv/batchwork
- 배포판에 따라 셸 경로가
/sbin/nologin이거나/usr/sbin/nologin입니다.which nologin으로 확인하세요. - 작업 디렉터리는 root 가 만들기 때문에
chown을 빼먹으면 서비스가 쓰기를 하지 못합니다.
SSH 키는 내용보다 권한이 먼저다
sshd 는 StrictModes 때문에 .ssh 나 authorized_keys 의 권한이 느슨하거나 소유자가 다르면 키가 맞아도 인증을 거부합니다. 기준은 .ssh 700, authorized_keys 600, 소유자는 해당 사용자입니다.
install -d -m 700 -o alice -g alice /home/alice/.ssh
cat alice.pub >> /home/alice/.ssh/authorized_keys
chmod 600 /home/alice/.ssh/authorized_keys
chown alice:alice /home/alice/.ssh/authorized_keys
- 공개키는 손으로 옮겨 적지 말고
cat으로 붙입니다. 줄바꿈이 하나 끼어도 키가 깨집니다. - root 로 작업한 뒤
ls -la로 두 경로의 소유자를 꼭 다시 봅니다.
만든 뒤에는 읽어서 확인한다
만든 계정은 직접 조회해서 검증합니다. getent 는 NSS 를 거쳐 조회하므로 LDAP 등 다른 인증 소스에 있는 계정까지 보여 줍니다.
getent passwd minsu | cut -d: -f3 # UID 숫자만
getent group batch | cut -d: -f3 # GID 숫자만
id -Gn minsu # 소속 그룹 이름, 공백 구분
getent passwd | awk -F: '$7=="/sbin/nologin"' | wc -l
- 리포트 파일에는 명령 출력만
>로 저장합니다. 설명 문구나 공백이 섞이면 채점에서 불일치합니다. - nologin 계정 수를 셀 때는 정확한 경로를 비교합니다.
/usr/sbin/nologin계정은 이 조건에 포함되지 않습니다.
이 편과 함께 풀어 볼 과제
- 신규 입사자를 위한 계정 생성 및 설정 — UID 를 지정해 계정을 만들고 패스워드까지 설정해 로그인 가능한 상태로 만드는지
- 서비스 계정과 작업 디렉터리 준비하기 — 그룹 선생성, 기본 그룹 지정, nologin 셸, 디렉터리 소유권을 모두 맞추는지
- SSH authorized_keys 준비하기 — 제공된 공개키를 그대로 옮기고 700/600 권한과 소유자를 맞추는지
- id·getent·who 로 계정 정보 조회 리포트 만들기 — UID·GID·그룹 목록·nologin 계정 수를 숫자와 이름만 깔끔하게 기록하는지
다음 편
다음 편은 ps로 프로세스 보기와 우선순위 nice·renice 입니다. 화·금요일에 이어집니다.
<!-- publish_key:linux-path-20w-p16-post -->

아직 댓글이 없습니다. 궁금한 점이나 풀이 경험을 남겨 보세요.