Linux From Scratch - Version 12.1-systemd | ||
---|---|---|
Chapter 8. Installing Basic System Software | ||
이전 | 위로 / 처음으로 | 다음 |
Libxcrypt-4.4.36 | GCC-13.2.0 |
Shadow 패키지에는 비밀번호를 안전하게 처리하기 위한 프로그램이 포함되어 있습니다.
참고
강력한 암호 사용을 강제하려면 Shadow를 빌드하기 전에
CrackLib-2.9.11 BLFS를 참조해서 CrackLib를 설치해야 합니다. 그리고 아래 설명 명령에 –with-libcrack을 추가합니다.
Coreutils가 더 나은 버전을 제공하므로 group 프로그램과 해당 man 페이지의 설치를 비활성화합니다. 또한 8.3, "Man-pages-6.06"에서 이미 설치된 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 / /' {} \;
기본 암호 방식을 사용하는 대신 8자 이상의 암호도 허용하는 훨씬 더 안전한 YESCRYPT 방식의 암호 암호화를 사용하세요. 또한 Shadow가 기본적으로 사용하는 사용자 사서함의 /var/spool/mail
위치를 현재 사용되는 /var/mail
위치로 변경해야 합니다. 그리고 /bin
및 /sbin
은 /usr
에 있는 해당 위치에 대한 심볼릭 링크일 뿐이므로 PATH
에서 제거하세요.
참고
/bin
및/또는 /sbin
을 PATH
에 포함하려면 LFS를 빌드한 후 .bashrc
에서 PATH
를 수정하세요.
sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD YESCRYPT:' \
-e 's:/var/spool/mail:/var/mail:' \
-e '/PATH=/{s@/sbin:@@;s@/bin:@@}' \
-i etc/login.defs
참고
Shadow에 Cracklib 지원을 추가해서 빌드하기로 한 경우, 다음과 같이 실행하세요.
sed -i 's:DICTPATH.*:DICTPATH\t/lib/cracklib/pw_dict:' etc/login.defs
Shadow 컴파일을 준비합니다.
touch /usr/bin/passwd
./configure --sysconfdir=/etc \
--disable-static \
--with-{b,yes}crypt \
--without-libbsd \
--with-group-name-max-length=32
/usr/bin/passwd
파일이 존재해야 하며, 파일이 존재하지 않으면 설치 스크립트가 잘못된 위치에 파일을 생성합니다.패키지를 컴파일합니다.
make
이 패키지는 테스트 스위트를 제공되지 않습니다.
패키지를 설치합니다.
make exec_prefix=/usr install
make -C man install-man
이 패키지에는 사용자 및 그룹을 추가, 수정, 삭제하고, 비밀번호를 설정 및 변경하고, 기타 관리 작업을 수행하는 유틸리티가 포함되어 있습니다. 비밀번호 섀도잉의 의미에 대한 자세한 설명은 압축을 푼 소스 트리에 있는 doc/HOWTO 파일을 참조하세요. Shadow 지원을 사용하는 경우 비밀번호를 확인해야 하는 프로그램(디스플레이 관리자, FTP 프로그램, pop3 데몬 등)은 반드시 Shadwo와 호환되어야 한다는 점에 유의하세요. 즉, Shadow로 처리된 비밀번호로 작업할 수 있어야 합니다.
Shadow 비밀번호를 사용하려면 다음 명령을 실행하세요.
pwconv
섀도화된 그룹 비밀번호를 사용하려면 다음 명령을 실행합니다.
grpconv
useradd 유틸리티에 대한 섀도우의 기본 구성에 대한 설명이 필요합니다. 먼저, useradd 유틸리티의 기본 동작은 사용자와 동일한 이름의 사용자와 그룹을 만드는 것입니다. 기본적으로 사용자 ID(UID) 및 그룹 ID(GID) 번호는 1000부터 시작됩니다. 즉, useradd에 추가 매개변수를 전달하지 않으면 각 사용자는 시스템에서 고유한 그룹의 멤버가 됩니다. 이라한 동작을 원하지 않는 경우 useradd에 -g 또는 -N 매개변수를 전달하거나 /etc/login.defs
에서 USERGROUPS_ENAB의 설정을 변경해야 합니다. 자세한 내용은 useradd(8)을 참조하세요.
둘째, 기본 매개변수를 변경하려면 /etc/default/useradd
파일을 생성하고 필요에 맞게 조정해야 합니다. 다음과 같이 생성합니다.
mkdir -p /etc/default
useradd -D --gid 999
/etc/group
파일에서 사용되는 사용자 그룹 번호의 시작을 설정합니다. 특정 값 999는 위의 –gid 매개변수에서 가져온 것입니다. 원하는 값으로 설정할 수 있습니다. useradd는 UID 또는 GID를 재사용하지 않는다는 점에 유의하세요. 이 매개변수에서 식별된 번호가 사용되면 사용 가능한 다음 번호를 사용합니다. 또한 시스템에 이 번호와 동일한 ID를 가진 그룹이 없는 경우 -g 매개변수 없이 useradd를 처음 사용하면 계정이 올바르게 생성되었더라도 오류 메시지(useradd: 알 수 없는 GID 999)가 생성됩니다. 그렇기 때문에 7.6. "필수 파일 및 심볼 링크 만들기" 에서 이 그룹 ID로 사용자 그룹을 만들었습니다.sed -i '/MAIL/s/yes/no/' /etc/default/useradd
사용자 root의 비밀번호를 설정합니다.
passwd root