Cara mengganti direktori Beranda dari pengguna yang saat ini masuk

17

Saat ini saya masuk ke server CentOS dan saya ingin mengubah direktori home saya dari /home/myuserName/ke/var/www/html/

Saya mencoba perintah di bawah ini:

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

Tapi ini memberi saya kesalahan:

usermod: user myUserName is currently logged in
Mohan
sumber
2
Saya tidak yakin apa yang Anda maksud, HOME=/var/www/htmlakan berubah untuk sesi dir rumah Anda.
Archemar
Itu membantu, Tapi saya ingin mengubah direktori home saya secara permanen, bukan hanya untuk sesi saat ini.
Mohan

Jawaban:

17

jawaban singkat : Anda tidak bisa.

jawaban panjang :

HOMEdir diatur dalam /etc/passwd, bidang ke-6. Itu dibaca setelah masuk, shell Anda dimulai dengan dir home ini.

Cara yang tepat untuk mengubah dir home untuk joe adalah:

  • minta joe log off.
  • gunakan usermod -d /new/home joe untuk mengubah dir home untuk sesi berikutnya.

Setelah sesi dijalankan, Anda harus melakukan dua hal:

  • sunting $HOMEuntuk mengubah dir home untuk sesi (harus diulang pada semua sesi aktif).
  • gunakan sudo vipwuntuk mengedit dir home untuk sesi berikutnya

Perlu diketahui juga bahwa Anda mungkin memiliki masalah dengan izin / kepemilikan aktif /var/www/html

Archemar
sumber
1
sunting / etc / passwd selalu bekerja untuk saya. Lihat @ 7171u di bawah ini
jeffmcneill
mengedit / etc / passwd tanpa logoff / logon?
Archemar
mengedit / etc / passwd untuk akun yang masuk, dan kemudian memulai sesi baru dengan akun yang sama, dan itu mematuhi direktori home baru. Untuk akun yang sudah masuk, sesi itu masih memiliki lokasi rumah lama di Lingkungan.
jeffmcneill
8

Perintah usermod tidak akan berfungsi jika Anda masuk dengan pengguna yang Anda coba ubah.

Dari halaman manual di usermod dikatakan:

CAVEATS usermod tidak akan mengizinkan Anda untuk mengubah nama pengguna yang masuk. Anda harus memastikan bahwa pengguna yang disebutkan tidak menjalankan proses apa pun ketika perintah ini dijalankan jika ID pengguna numerik pengguna sedang diubah. Anda harus mengubah pemilik file crontab secara manual. Anda harus mengubah pemilik pekerjaan apa pun secara manual. Anda harus melakukan perubahan apa pun yang melibatkan NIS di server NIS.

Coba masuk dengan pengguna lain dan jalankan perintah lagi.

Jika itu tidak memungkinkan maka Anda dapat mengedit file / etc / passwd secara manual (yang sebenarnya adalah apa yang dilakukan perintah usermod). Jika Anda melakukan itu, pastikan Anda mencadangkan file jika Anda tidak sengaja melakukan sesuatu yang konyol.

MattM
sumber
7

Anda perlu mengedit /etc/passwdfile untuk mengubah direktori home pengguna yang saat ini masuk.

Edit /etc/passwddengan sudo vipwdan ubah direktori home pengguna.

vipwsangat disarankan selain vimatau editor lain karena vipwakan mengatur kunci untuk mencegah korupsi data.

7171u
sumber
2

Beberapa solusi yang mungkin, tergantung pada apa yang Anda harapkan untuk dipecahkan:

Opsi 1. Tambahkan HOME=/var/www/htmlke .bashrc Anda

Opsi 2. Ubah nama /home/myusernamedan kemudian buat symlink ke direktori yang diinginkan.

mv /home/myusername /home/myusername-old
ln -s /var/www/html /home/myusername
Dax Kerchner
sumber
kebiasaan buruk. setelah itu, myusername-old tidak dapat digunakan oleh pengguna lain
GeoMint
-2

Anda hanya dapat melakukan ini sementara. Ini berarti bahwa setiap kali Anda masuk sebagai pengguna itu, Anda harus menjalankan perintah yang satu ini:

export HOME=/var/www/html

Dengan cara ini, Anda dapat membuat sebagian besar aplikasi berpikir bahwa direktori home Anda adalah lokasi apa pun yang Anda gunakan di atas.

~juga akan mulai mengarah ke /var/www/html.

Aplikasi ini bekerja untuk saya adalah NPM dan Maven.

Es Cair
sumber