GNU/Linux >> Linux の 問題 >  >> Linux

ユーザーの作成後にホームディレクトリを作成する

解決策 1:

mkhomedir_helper も使用できます

Usage: /sbin/mkhomedir_helper <username> [<umask> [<skeldir>]]

解決策 2:

ユーザー ディレクトリを手動で作成する必要があります。これには 3 つの手順が必要です:

<オール>
  • /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= .
  • ところで:私はいつも -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 などのディレクトリ サービスに切り替えた場合でも、引き続きこの問題を解決できるからです。


    Linux
    1. ディレクトリへのリンクを作成する方法

    2. ファイルを含む既存のツリーから新しい空のディレクトリ ツリーを作成する

    3. Active Directory 認証済みユーザーのホーム ディレクトリとシェル

    1. ホームディレクトリの空のディレクトリを再帰的に削除するにはどうすればよいですか?

    2. `~` (ホームディレクトリ) のような別のショートカット `~~` を作成します。

    3. Puppet:ユーザーのホーム ディレクトリを取得する

    1. systemd-homedを使用してLinuxユーザーのホームディレクトリを管理する

    2. Linuxで複数のディレクトリを作成する5つの例

    3. ホームディレクトリにある不思議な.directories?