6.24. Shadow-4.8.1

Shadow 패키지에는 안전한 방법으로 암호를 처리하는 프로그램이 포함되어 있다.

예상 빌드 시간: 0.2 SBU
필요 디스크 공간: 46 MB

6.24.1. Shadow 설치

[참고]

참고

강력한 암호를 사용하도록 강제하려면, Shadow를 빌드하기 전에 http://www.linuxfromscratch.org/blfs/view/9.1/postlfs/cracklib.html를 참고하여 CrackLib를 설치하라. 그런 다음 아래 configure 명령에 --with-libcrack를 추가하라.

Coreutils가 더 나은 버전을 제공하므로 groups 프로그램과 해당 man 페이지 설치를 비활성화하라. 또, 6.8절. “Man-pages-5.05”에서 이미 설치한 man 페이지 설치를 방지한다:

sed -i 's/groups$(EXEEXT) //' src/Makefile.in
find man -name Makefile.in -exec sed -i 's/groups\.1 / /'   {} \;
find man -name Makefile.in -exec sed -i 's/getspnam\.3 / /' {} \;
find man -name Makefile.in -exec sed -i 's/passwd\.5 / /'   {} \;

기본 crypt 방식을 사용하는 대신, 암호의 길이를 8자 이상 허용해서 보다 더 안전한 SHA-512 방식을 사용하라. Shadow가 기본적으로 사용하는 유저 메일박스의 위치도 /var/spool/mail에서 /var/mail로 변경해야 한다:

sed -i -e 's@#ENCRYPT_METHOD DES@ENCRYPT_METHOD SHA512@' \
       -e 's@/var/spool/mail@/var/mail@' etc/login.defs
[참고]

참고

앞에서 Cracklib과 함께 Shadow를 빌드하기로 했다면 다음을 실행하라:

sed -i 's@DICTPATH.*@DICTPATH\t/lib/cracklib/pw_dict@' etc/login.defs

useradd로 생성되는 첫 번째 그룹 번호 1000을 약간 수정한다:

sed -i 's/1000/999/' etc/useradd

Shadow 컴파일을 준비한다:

./configure --sysconfdir=/etc --with-group-name-max-length=32

Configure 옵션의 의미:

--with-group-name-max-length=32

유저명의 최대 길이는 32자이다. 그룹명의 최대 길이도 같게 한다.

패키지를 컴파일한다:

make

이 패키지는 테스트 스위트가 포함되어 있지 않다.

패키지를 설치한다:

make install

6.24.2. Shadow 설정

이 패키지에는 유저와 그룹을 추가, 수정 및 삭제하고, 유저 및 그룹의 암호를 설정 및 변경하며, 기타 관리 작업을 수행하는 유틸리티가 포함되어 있다. password shadowing의 의미에 대한 자세한 설명은 압축 해제된 소스 트리에 있는 doc/HOWTO 파일을 참고하라. Shadow 지원을 사용할 경우 암호를 확인해야 하는 프로그램들(디스플레이 관리자, FTP 프로그램들, pop3 데몬 등)은 반드시 Shadow와 호환되어야 함을 명심하라. 다시 말해, 그 프로그램들은 Shadow로 처리된 암호로 작동이 가능해야 한다.

Shadowed 암호를 활성화하려면, 다음 명령을 실행하라:

pwconv

Shadowed 그룹 암호를 활성화하려면:

grpconv

useradd 유틸리티에 대한 Shadow의 기본 설정은 설명이 필요한 몇 가지 주의사항이 있다. 우선 useradd 유틸리티의 기본 동작은 유저와 동일한 이름의 그룹을 만드는 것이다. 기본적으로 유저 ID (UID)와 그룹 ID (GID) 번호는 1000으로 시작한다. 즉, 매개 변수를 useradd에 전달하지 않으면, 각 유저가 시스템에서 유일한 한 그룹의 구성원이 된다는 의미이다. 이런 방식이 마음에 들지 않는다면 -g 매개 변수를 useradd에 전달해야 한다. 기본 매개 변수는 /etc/default/useradd 파일에 저장된다. 따라서 동작 방식을 바꾸려면 이 파일에서 두 개의 매개 변수를 수정해야 한다.

/etc/default/useradd 매개 변수 설명

GROUP=1000

이 매개 변수는 /etc/group 파일에 사용되는 그룹 번호의 시작을 설정한다. 원하는 대로 수정할 수 있다. useradd는 UID나 GID를 재사용하지 않는다는 점에 주의하라. 이 매개 변수에 이미 사용된 번호를 대입하면 그 숫자 다음으로 사용 가능한 번호를 사용한다. 또 -g 매개 변수 없이 useradd를 처음 사용할 때 시스템에 그룹 1000이 없으면, 터미널에 useradd: unknown GID 1000이라는 메시지가 표시된다는 점을 참고하라. 그룹 번호 1000이 사용될 것이기 때문에 이 메시지는 무시해도 된다.

CREATE_MAIL_SPOOL=yes

이 매개 변수는 useradd가 새로 만든 유저의 메일박스 파일을 생성하게 한다. useradd는 이 파일의 그룹 소유권을 0660 권한을 가진 mail 그룹에 할당한다. 이러한 메일박스 파일을 useradd가 생성하지 않게 하려면 다음 명령을 실행하라:

sed -i 's/yes/no/' /etc/default/useradd

6.24.3. root 비밀번호 설정

root 유저의 암호를 정하고 다음을 실행하여 설정하라:

passwd root

6.24.4. Shadow의 내용

설치된 프로그램들: chage, chfn, chgpasswd, chpasswd, chsh, expiry, faillog, gpasswd, groupadd, groupdel, groupmems, groupmod, grpck, grpconv, grpunconv, lastlog, login, logoutd, newgidmap, newgrp, newuidmap, newusers, nologin, passwd, pwck, pwconv, pwunconv, sg (newgrp로 링크), su, useradd, userdel, usermod, vigr (vipw로 링크)와 vipw
설치된 디렉토리: /etc/default

요약

chage

비밀번호를 변경해야하는 날짜의 최대 기간을 변경하는 데 사용

chfn

사용자의 전체 이름 및 기타 정보를 변경하는 데 사용

chgpasswd

배치 모드에서 그룹 암호를 업데이트하는 데 사용

chpasswd

배치 모드에서 유저 암호를 업데이트하는 데 사용

chsh

사용자의 기본 로그인 셸을 변경하는 데 사용

expiry

현재 암호 만료 정책 확인 및 적용

faillog

로그인 실패 로그를 검사, 계정이 차단되기 전의 최대 실패 횟수를 설정, 실패 횟수를 재설정하는 데 사용

gpasswd

그룹에 구성원 및 관리자를 추가, 삭제하는 데 사용

groupadd

지정된 이름을 가진 그룹 생성

groupdel

지정된 이름을 가진 그룹 삭제

groupmems

유저가 슈퍼 유저 권한 없이 자신의 그룹 구성원 목록을 관리할 수 있도록 허용

groupmod

지정된 그룹의 이름 또는 GID를 수정하는 데 사용

grpck

그룹 파일 /etc/group/etc/gshadow의 무결성 확인

grpconv

일반 그룹 파일에서 Shadow 그룹 파일 생성, 업데이트

grpunconv

/etc/gshadow에서 /etc/group 업데이트 후 전자를 삭제

lastlog

모든 유저나 지정된 유저의 가장 최근 로그인 보고

login

시스템에서 사용자가 로그인할 수 있도록 함

logoutd

로그온 시간 및 포트에 대한 제한을 설정하는 데 쓰이는 데몬

newgidmap

유저 네임스페이스의 gid 매핑을 설정하는 데 사용

newgrp

로그인 세션 중에 현재 GID를 변경하는 데 사용

newuidmap

유저 네임스페이스의 uid 매핑을 설정하는 데 사용

newusers

일련의 전체 사용자 계정들을 만들거나 업데이트하는 데 사용

nologin

계정을 사용할 수 없다는 메시지를 표시함. 사용하지 않도록 설정된 계정의 기본 셸로 사용하도록 설계됨.

passwd

유저 또는 그룹 계정의 암호를 변경하는 데 사용

pwck

/etc/passwd/etc/shadow의 무결성 확인

pwconv

일반 암호 파일에서 Shadow 암호 파일 생성 또는 업데이트

pwunconv

/etc/shadow에서 /etc/passwd 업데이트 후 전자를 삭제

sg

유저의 GID가 지정된 그룹의 GID로 설정된 동안 지정된 명령 실행

su

다른 유저와 그룹 ID로 셸 실행

useradd

지정된 이름으로 새 유저 생성 또는 기본 새 유저 정보 업데이트

userdel

지정된 유저 계정 삭제

usermod

지정된 유저의 로그인 이름, UID, 셸, 초기 그룹, 홈 디렉토리 등을 수정하는 데 사용

vigr

/etc/group이나 /etc/gshadow 파일 수정

vipw

/etc/passwd/etc/shadow 파일 수정