解決策 1:
mkhomedir_helper
も使用できます
Usage: /sbin/mkhomedir_helper <username> [<umask> [<skeldir>]]
解決策 2:
ユーザー ディレクトリを手動で作成する必要があります。これには 3 つの手順が必要です:
<オール>/etc/passwd
に準拠したディレクトリの作成 、通常、既に /home/login エントリがあります。最後に適切なパーミッションを設定します:
mkdir /home/YOU
cd /home/YOU
cp -r /etc/skel/. .
chown -R YOU.YOURGROUP .
chmod -R go=u,go-w .
chmod go= .
ところで:私はいつも -m
が恋しいです useradd のオプションも。少なくとも Debian ベースのシステムには adduser
が必要です useradd よりも推奨するコマンドです。 -m
を逃した場合 deluser
にすることも検討する価値があるかもしれません 次に、適切なオプションを使用してユーザーを再作成します。
編集:-r
を追加 ディレクトリもコピーします。
解決策 3:
これはばかげた考えのように聞こえるかもしれませんが、ユーザーが実際に何もしていない場合は、次のことを行うことができます:
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 -」を実行して、「正しいこと」を行うかどうかを確認します。そうでない場合、上記のスクリプトは非常にうまく機能すると思います。
解決策 4:
mkdir -p /home/john
chown john:john /home/john
usermod -d /home/john john
それは私が信じているトリックを行うはずです
解決策 5:
pam_mkhomedir のようなものを使用して、これが今後ユーザーに問題になるのを防ぐことができます。 pam_mkhomedir は、ログイン時にユーザーのホーム ディレクトリが存在しない場合に自動的に作成し、/etc/skel (または指定した任意の skel ディレクトリ) からのファイルを格納する PAM モジュールです。
また、これは非常にスケーラブルなアプローチでもあります。将来、ユーザー リポジトリを LDAP などのディレクトリ サービスに切り替えた場合でも、引き続きこの問題を解決できるからです。