web-dev-qa-db-ja.com

現在ログインしているユーザーのホームディレクトリを変更する方法

現在、CentOSサーバーにログインしています。ホームディレクトリを/home/myuserName/から/var/www/html/に変更したいと思います。

私は以下のコマンドを試しました:

> Sudo usermod -d /var/www/html myuserName

しかし、これは私にエラーを与えます:

usermod: user myUserName is currently logged in
17
Mohan

短い答え:できません。

長い答え

HOME dirは/etc/passwdの6番目のフィールドに設定されます。ログイン時に読み込まれ、シェルはこのホームディレクトリで開始されます。

Joeのホームディレクトリを変更する適切な方法は次のとおりです。

  • ジョーをログオフさせます。
  • usermod -d /new/home joeを使用して、後続のセッションのホームディレクトリを変更します。

セッションを実行したら、次の2つのことを行う必要があります。

  • セッションのホームディレクトリを変更するには、$HOMEを編集します(すべてのアクティブセッションで繰り返されます)。
  • Sudo vipwを使用して、次のセッションのためにホームディレクトリを編集します

また、/var/www/htmlの権限/所有権に問題がある可能性があることに注意してください

17
Archemar

変更しようとしているユーザーでログインしている場合、usermodコマンドは機能しません。

Usermodのマニュアルページからそれは言う:

警告usermodでは、ログインしているユーザーの名前を変更することはできません。ユーザーの数値ユーザーIDが変更されている場合、このコマンドの実行中は、指定されたユーザーがプロセスを実行していないことを確認する必要があります。 crontabファイルの所有者は手動で変更する必要があります。 atジョブの所有者は手動で変更する必要があります。 NISサーバーでNISに関連する変更を行う必要があります。

別のユーザーでログインして、コマンドを再実行してください。

それが不可能な場合は、手動で/ etc/passwdファイルを編集できます(これは実際にはusermodコマンドが行っていることです)。これを行う場合は、誤って何か愚かなことをした場合に備えて、必ずファイルをバックアップしてください。

8
MattM

現在ログインしているユーザーのホームディレクトリを変更するには、/etc/passwdファイルを編集する必要があります。

/etc/passwdSudo vipwで編集し、ユーザーのホームディレクトリを変更します。

vipwはデータの破損を防ぐためにロックを設定するため、vimまたは他のエディター以外のvipwを強くお勧めします。

7
7171u

解決したいことに応じて、いくつかの可能な回避策:

オプション1. HOME=/var/www/htmlを.bashrcに追加します

オプション2. /home/myusernameの名前を変更してから、目的のディレクトリへのシンボリックリンクを作成します。

mv /home/myusername /home/myusername-old
ln -s /var/www/html /home/myusername
2
Dax Kerchner