나는 다음을 사용하여 일부 사용자를 만들었습니다.
$ useradd john
-m
홈 디렉토리를 만들고 각 사용자에게 뼈대 파일을 복사 하는 매개 변수를 지정하는 것을 잊었습니다 . 이제 그렇게하고 싶습니다. 모든 사용자를 다시 만들고 싶지 않습니다 (더 쉬운 방법이 있어야 함). 따라서 사용자 디렉토리를 만들고 골격 파일을 복사하는 방법이 있습니까?
디렉토리를 만들고 해당 사용자에게 호칭하고 모든 스켈레톤 파일을 복사하여 해당 사용자에게 호핑하는 것에 대해 생각했습니다. 그러나 이와 같은 명령이 있으면 useradd -m
사용자를 다시 만들지 않고 디렉토리를 만들면 더 좋습니다.
답변
이것은 어리석은 생각처럼 들릴 수 있지만 사용자가 실제로 아무것도하지 않으면 다음을 수행 할 수 있습니다.
cat /etc/passwd | cut -f 1 -d : >/tmp/users.list
그런 다음 원하는 사용자 만 포함하도록 /tmp/users.list를 편집하십시오. 그런 다음 수행하십시오.
for i in `cat /tmp/users.list`
do
userdel $i
useradd -m $i
done
그러나 많은 Redhat 기반 배포판은 처음 로그인 할 때 새로운 홈 디렉토리를 생성하여 디렉토리가 있어야하는 / etc / passwd에 지정됩니다.
이를 테스트하려면 “su-“를 수행하고 “옳은 일”인지 확인하십시오. 그렇지 않으면 위의 스크립트가 잘 작동합니다.
답변
또한 사용할 수 있습니다 mkhomedir_helper
Usage: /sbin/mkhomedir_helper <username> [<umask> [<skeldir>]]
답변
사용자 디렉토리를 수동으로 작성해야합니다. 세 단계가 필요합니다.
- 를 준수하여 디렉토리를 작성하십시오
/etc/passwd
. 일반적으로 / home / login 항목이 이미 있습니다. - / etc / skel에서 초기 파일 복사
-
마지막으로 올바른 권한을 설정하십시오.
mkdir /home/YOU
cd /home/YOU
cp -r /etc/skel/. .
chown -R YOU.YOURGROUP .
chmod -R go=u,go-w .
chmod go= .
BTW : -m
useradd 옵션도 항상 그리워합니다 . 최소한 데비안 기반 시스템에는 adduser
useradd보다 권장 하는 명령 이 있어야합니다 . -m
옵션 을 놓친 경우 deluser
적절한 옵션을 사용하여 사용자를 고려한 후 다시 작성하는 것이 좋습니다.
편집 : -r
디렉토리를 복사하기 위해 추가되었습니다 .
답변
mkdir -p /home/john
chown john:john /home/john
usermod -d /home/john john
내가 믿는 트릭을해야합니다
답변
pam_mkhomedir 과 같은 것을 사용 하여 향후 모든 사용자에게 이것이 문제가되지 않도록 할 수 있습니다 . pam_mkhomedir은 로그인시 사용자 홈 디렉토리가없는 경우 자동으로 사용자의 홈 디렉토리를 작성하고 / etc / skel (또는 지정한 skel 디렉토리)의 파일로 채우는 PAM 모듈입니다.
이는 나중에 사용자 저장소를 LDAP와 같은 디렉토리 서비스로 전환 한 경우에도이 문제를 계속 해결하기 때문에 확장 성이 뛰어납니다.
답변
필자의 경우 홈 볼륨이 손상되어 관련 데이터가 많지 않아 처음부터 다시 작성하기로 결정했지만 사용자의 로그인 정보를 유지하고 싶기 때문에이 스크립트를 사용하여 홈 디렉토리를 수동으로 다시 작성했습니다.
#!/bin/bash
cat /etc/passwd | while IFS=: read n x i g c d r
do
# my system has uid started at 1000, but has nfsnobody at 65534:
if [[ "$i" -ge 1000 && "$i" -le 65000 && ! -x "$d" ]]
then
cp -av /etc/skel "$d"
chown -R "$i:$g" "$d"
# may needed in SELinux system:
restorecon -R "$d"
# add your chmod as your need:
chmod -R o-rw "$d"
fi
done
답변
/etc/login.defs
포함하도록 편집 하면
CREATE_HOME yes
시스템을 말하지 않는 한 홈 디렉토리가 자동으로, 향후 사용자 생성됩니다 하지 그렇게 할 수 있습니다.
다른 옵션은 로그인에 PAM을 사용하고 pam_mkhomedir 모듈을 사용하여 첫 번째 로그인에서 자동으로 homedir을 작성하는 것입니다.