FreeIPA를 내 네트워크의 IDM 소프트웨어로 설정하고 Kerberos 지원 NFS 서버와 Kerberos 지원 NFS 클라이언트를 성공적으로 구성했습니다. 사용자가 컴퓨터에 로그인하면 NFS 서버의 사용자 디렉토리가 autofs를 통해 로컬 컴퓨터 nfs:/srv/nfs/home/userdir
에 자동으로 마운트됩니다./home/userdir
내가 직면하고 있는 문제는 한 컴퓨터에서 로컬 사용자(예: git 사용자)를 생성해야 할 때 다음과 같이 할 수 없다는 것입니다.뿌리/home/git
사용자는 다음과 같이 git 사용자를 위한 새 홈 디렉토리를 생성합니다.useradd: cannot create directory /home/git
내 auto.home 맵은 다음과 같이 구성됩니다. * nfs:/srv/nfs/home/&
임의의 사용자로 로그인하면 사용자의 홈 디렉토리만 내 auto.master 맵 아래에 마운트되고 /home
내 auto.master 맵에는 다음 항목이 있습니다./home auto.home
출력은 mount
다음과 같습니다.
auto.home on /home type autofs (rw,relatime,fd=6,pgrp=651,timeout=300,minproto=5,maxproto=5,indirect,pipe_ino=15731)
nfs:/srv/nfs/home/userdir on /home/userdir type nfs4 (rw,relatime,vers=4.2,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=krb5,clientaddr=10.110.29.100,local_lock=none,addr=10.110.29.107)
다른 파일 시스템 및 장치에 대한 불필요한 정보는 생략했습니다.
홈 디렉토리의 getfacl은 다음을 반환합니다.
file: home
owner: root
group: root
user::rwx
group::r-x
other::r-x
이제 내 질문은 이 설정으로 인해 내 로컬 루트 계정이 내 컴퓨터에 로컬 홈 디렉터리를 생성하는 것을 방지할 수 있느냐는 것입니다.
답변1
예, 현재 설정에서는 NFS 마운트 지점에 대한 자동 마운트 맵을 /home
정의했기 때문에 ... 아래의 로컬 사용자를 위한 로컬 홈 디렉토리를 생성할 수 없습니다 . /home
NFS는 Kerberos를 인식하므로 사용자가 NFS 설치의 홈 디렉터리에 액세스하려면 최소한 Kerberos 키탭이 필요하며 키탭은 사용자의 홈 디렉터리에 저장됩니다. 이것은 닭고기가냐 달걀이냐의 문제인 것 같습니다.
그러나 이름이 지정된 로컬 사용자의 홈 디렉토리는 git
아래에 있을 필요는 없습니다. 예를 들어 /home
아래에 있을 수도 있습니다./home.local/git
이 질문에 태그를 지정했고 rhel
RHEL은 기본적으로 SELinux를 사용하므로 실제 홈 디렉터리에 적절한 SELinux 레이블을 적용해야 한다는 점을 알고 싶을 수도 있습니다.및 해당 상위 디렉토리.
git
홈 디렉토리를 로 설정 하려면 /home.local/git
먼저 SELinux 라벨을 다음과 같이 준비해야 합니다.
semanage fcontext -a -t home_root_t -f d /home.local
semanage fcontext -a -t user_home_dir_t -f d '/home.local/[̂^/]+'
semanage fcontext -a -t user_home_t '/home.local/[^/]+/.+'
mkdir /home.local
restorecon -rv /home.local
즉, 바로 아래의 모든 디렉토리 /home.local
는 home_root_t
을 얻고 user_home_dir_t
해당 디렉토리보다 깊은 모든 파일과 디렉토리는 을 얻습니다 user_home_t
. 유사한 라벨 지정 규칙이 이미 일반에 존재합니다 /home
.
그런 다음 git
사용자를 생성할 수 있습니다.
useradd -d /home.local/git -m [any other options] git
또는 사용자가 이미 존재하고 홈 디렉터리 생성이 실패한 경우 홈 디렉터리 경로를 수정하고 실제 홈 디렉터리를 수동으로 만들 수 있습니다.
usermod -d /home.local/git git
cp -a /etc/skel /home.local/git
chown -R git: /home.local/git
chmod 700 /home.local/git # or according to requirements