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

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

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

次のコマンドを試しました。

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

しかし、これによりエラーが発生しました。

usermod: user myUserName is currently logged in

答え1

短い答え:あなたはできません。

長い答え:

HOMEディレクトリは/etc/passwd6番目のフィールドに設定されます。ログイン時にお読みください。シェルはこのホームディレクトリから始まります。

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

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

セッションが実行されたら、次の2つの作業を実行する必要があります。

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

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

答え2

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

ユーザーのホームディレクトリを編集して変更します/etc/passwdsudo vipw

vipwデータの破損を防ぐために設定がロックされているので、vim他のエディタに代わるものを強くお勧めします。vipw

答え3

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

usermodのマニュアルページには次のように記載されています。

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

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

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

答え4

これは一時的にのみ実行できます。これは、このユーザーとしてログインするたびに次のコマンドを実行する必要があることを意味します。

export HOME=/var/www/html

これにより、ほとんどのアプリケーションを作成できます。考えるホームディレクトリは上記で使用した場所です。

~また、指し始めます/var/www/html

私が使用するアプリケーションはNPMとMavenです。

関連情報