/etc/passwd
ファイルに触れずに、Linux/Unixのユーザーホームディレクトリを変更する簡単なシェルコマンド(既存の有効なユーザーのデフォルトのログインシェルを変更する chsh に似たもの)があるかどうかを知りたいです。ありがとう
他の答えに対するIbrahimのコメントは、既存のユーザーのホームディレクトリを変更する正しい方法です。 usermod
は、既存のユーザーを編集するためのコマンドです。 -d
(--home
の省略形)はユーザーのホームディレクトリを変更します。 -m
(--move-home
の省略形)を追加しても、コンテンツはユーザーの現在のディレクトリから新しいディレクトリに移動します。
usermod -m -d /newhome/username username
から Linuxは新しいユーザを追加している間デフォルトユーザホームディレクトリを変更します :
テキストエディタを使ってこのファイルを開くだけです。
vi /etc/default/useradd
HOME変数で定義されているデフォルトのホームディレクトリ。次のようになっている行を見つけます。
HOME=/home
と置換する:
HOME=/iscsi/user
ファイルを保存して閉じます。これで、通常のuseraddコマンドを使ってユーザーを追加できます。
# useradd vivek # passwd vivek
ユーザー情報を確認します。
# finger vivek
最初のユーザーフォルダの内容はそれを使用して移動されないので、受け入れられた答えは不完全です。それを修正するために別の答えを追加します。
Sudo usermod -d /newhome/username -m username
あなたはusernameでフォルダを作成する必要はありません、そしてこれはまた最初のユーザフォルダから/ newhome/usernameフォルダへあなたのファイルを移動するでしょう。
他の読者がadduser
コマンドに関する情報を探す場合。
/etc/adduser.conf
を編集
DHOME
変数を設定
これがいくつかのアプリケーションを壊すことがわかった、それをするより良い方法はそれです
シンボリックリンクに加えて、最近のディストリビューションやファイルシステムでは、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