web-dev-qa-db-ja.com

ユーザーのデフォルトのホームディレクトリを変更するコマンド

/etc/passwdファイルに触れずに、Linux/Unixのユーザーホームディレクトリを変更する簡単なシェルコマンド(既存の有効なユーザーのデフォルトのログインシェルを変更する chsh に似たもの)があるかどうかを知りたいです。ありがとう

171
Ibrahim Quraish

他の答えに対するIbrahimのコメントは、既存のユーザーのホームディレクトリを変更する正しい方法です。 usermodは、既存のユーザーを編集するためのコマンドです。 -d--homeの省略形)はユーザーのホームディレクトリを変更します。 -m--move-homeの省略形)を追加しても、コンテンツはユーザーの現在のディレクトリから新しいディレクトリに移動します。

usermod -m -d /newhome/username username
294
STW

から Linuxは新しいユーザを追加している間デフォルトユーザホームディレクトリを変更します

テキストエディタを使ってこのファイルを開くだけです。

vi /etc/default/useradd

HOME変数で定義されているデフォルトのホームディレクトリ。次のようになっている行を見つけます。

HOME=/home

と置換する:

HOME=/iscsi/user

ファイルを保存して閉じます。これで、通常のuseraddコマンドを使ってユーザーを追加できます。

# useradd vivek
# passwd vivek

ユーザー情報を確認します。

# finger vivek
27
Maximin

最初のユーザーフォルダの内容はそれを使用して移動されないので、受け入れられた答えは不完全です。それを修正するために別の答えを追加します。

Sudo usermod -d /newhome/username -m username

あなたはusernameでフォルダを作成する必要はありません、そしてこれはまた最初のユーザフォルダから/ newhome/usernameフォルダへあなたのファイルを移動するでしょう。

16
Sukrit Gupta

他の読者がadduserコマンドに関する情報を探す場合。

/etc/adduser.confを編集

DHOME変数を設定

4
rafaelvalle

これがいくつかのアプリケーションを壊すことがわかった、それをするより良い方法はそれです

シンボリックリンクに加えて、最近のディストリビューションやファイルシステムでは、rootとしてbind-mountを使うこともできます。

mkdir /home/username 
mount --bind --verbose /extra-home/username /home/username

これは、シンボリックリンク(Apache、ftpdなど)を経由しないように設定されているデーモンを介して、/ homeディレクトリからサブディレクトリへのアクセスを許可するのに役立ちます。

もちろん、再起動時にバインドすることを覚えておく必要があります(またはinitスクリプト)。

/etc/fstabのinitスクリプトの例は次のとおりです。

/extra-home/username /home/username none defaults,bind 0 0
2
Wilken