6.5. 디렉토리 생성

이제 LFS 파일 시스템에 몇 가지 체계를 만들어야 할 때다. 다음 명령을 실행하여 표준 디렉토리 트리를 생성하라:

mkdir -pv /{bin,boot,etc/{opt,sysconfig},home,lib/firmware,mnt,opt}
mkdir -pv /{media/{floppy,cdrom},sbin,srv,var}
install -dv -m 0750 /root
install -dv -m 1777 /tmp /var/tmp
mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src}
mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man}
mkdir -v  /usr/{,local/}share/{misc,terminfo,zoneinfo}
mkdir -v  /usr/libexec
mkdir -pv /usr/{,local/}share/man/man{1..8}
mkdir -v  /usr/lib/pkgconfig

case $(uname -m) in
 x86_64) mkdir -v /lib64 ;;
esac

mkdir -v /var/{log,mail,spool}
ln -sv /run /var/run
ln -sv /run/lock /var/lock
mkdir -pv /var/{opt,cache,lib/{color,misc,locate},local}

디렉토리는 기본적으로 권한 모드 755로 작성되지만 모든 디렉토리에 대해서 바람직한 것은 아니다. 위의 명령에서는 두 가지 변경이 이루어진다—한 가지는 root 유저의 홈 디렉토리이고, 다른 하나는 임시 파일들을 위한 디렉토리이다.

첫 번째 모드 변경은 아무나 /root 디렉토리에 들어갈 수 없도록 한다—일반 유저가 자신의 홈 디렉토리에 하는 것과 동일하다. 두 번째 모드 변경은 모든 유저가 /tmp/var/tmp 디렉토리에 쓰기 가능하도록 하지만 이들 디렉토리에서 다른 유저의 파일을 삭제할 수는 없도록 한다. 후자는 1777 비트 마스크에서 가장 높은 비트(1)인 이른바 sticky 비트에 의해 금지된다.

6.5.1. FHS 준수 알림

디렉토리 트리는 파일 시스템 계층 표준(Filesystem Hierarchy Standard, FHS)을 기반으로 한다(https://refspecs.linuxfoundation.org/fhs.shtml에서 참고 가능). FHS는 /usr/local/games/usr/share/games 같은 일부 디렉토리도 선택적으로 존재할 수 있다고 명시한다. 이 책에선 필요한 디렉토리만 만들겠지만, 이러한 디렉토리들은 자유롭게 만들어도 좋다.