Oturum açmış olan kullanıcının Giriş dizini nasıl değiştirilir


17

Şu anda bir CentOS sunucusuna oturum ediyorum ve benim ev dizinini değiştirmek istiyorum /home/myuserName/için/var/www/html/

Aşağıdaki komutu denedim:

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

Ama bu bana bir hata veriyor:

usermod: user myUserName is currently logged in

2
Ne demek istediğinden emin değilim , oturum için ev direktör HOME=/var/www/htmldeğişecek .
Archemar

Bu yardımcı olur, ama sadece geçerli oturum için değil, ana dizini kalıcı olarak değiştirmek istiyorum.
Mohan

Yanıtlar:


17

kısa cevap : yapamazsınız.

uzun cevap :

HOMEdir /etc/passwd, 6. alanda ayarlanır . Oturum açıldığında okunur, kabuğunuz bu ev diziniyle başlar.

Joe için ev yönünü değiştirmenin uygun yolu:

  • joe oturumu kapat.
  • usermod -d /new/home joe sonraki oturum için home dizinini değiştirmek için kullanın .

Oturum çalıştırıldıktan sonra iki şey yapmanız gerekir:

  • düzenlemek $HOMEiçin oturumun ana dizinini değiştirin (tüm etkin oturumlarda tekrarlanacaktır).
  • Kullanım sudo vipwsonraki wession için düzenleme ev dir

Ayrıca, üzerinde izinler / borçlar ile ilgili bir sorununuz olabileceğini unutmayın. /var/www/html


1
/ etc / passwd hep benim için çalıştı. Aşağıdaki @ 7171u
jeffmcneill

/ etc / passwd, oturumu kapatma / oturum açma olmadan düzenleme?
Archemar

oturum açmış bir hesap için / etc / passwd dosyasını düzenleyip aynı hesapla yeni bir oturum başlatır ve yeni ana sayfa dizinine uyar. Zaten oturum açmış olan hesap için, bu oturum hala Ortam'da eski ana konuma sahiptir.
jeffmcneill

8

Usermod komutu, üzerinde değişiklik yapmaya çalıştığınız kullanıcıyla giriş yaparsanız çalışmaz.

Usermod'daki manuel sayfadan şöyle diyor:

CAVEATS usermod, oturum açan kullanıcının adını değiştirmenize izin vermez. Kullanıcının sayısal kullanıcı kimliği değiştiriliyorsa, bu komut yürütülürken, belirtilen kullanıcının herhangi bir işlem yürütmediğinden emin olmalısınız. Herhangi bir crontab dosyasının sahibini manuel olarak değiştirmeniz gerekir. Herhangi bir işin sahibini manuel olarak değiştirmeniz gerekir. NIS sunucusunda NIS ile ilgili herhangi bir değişiklik yapmanız gerekir.

Farklı bir kullanıcı ile giriş yapmayı ve komutu tekrar çalıştırmayı deneyin.

Bu mümkün değilse, / etc / passwd dosyasını el ile düzenleyebilirsiniz (aslında usermod komutunun yaptığı şey budur). Bunu yaparsanız, yanlışlıkla aptalca bir şey yapmanız durumunda dosyayı yedeklediğinizden emin olun.


7

/etc/passwdOturum açmış olan kullanıcıların giriş dizinini değiştirmek için dosyayı düzenlemeniz gerekir .

Edit /etc/passwdile sudo vipwkullanıcının ve değişim ev dizini.

vipwherhangi bir veri bozulmasını önlemek için kilit ayarlayacağından vimbaşka editörler veya diğer editörler tarafından şiddetle tavsiye edilir vipw.


2

Çözmeyi umduğunuz şeylere bağlı olarak birkaç olası geçici çözüm:

Seçenek 1. HOME=/var/www/html.bashrc'nize ekleyin

Seçenek 2. Yeniden adlandırın /home/myusernameve sonra istediğiniz dizine bir sembolik bağlantı oluşturun.

mv /home/myusername /home/myusername-old
ln -s /var/www/html /home/myusername

kötü alışkanlık. bundan sonra, myusername-old diğer kullanıcı tarafından kullanılamaz
GeoMint

-2

Bunu sadece geçici olarak yapabilirsiniz. Bu, bu kullanıcı olarak her oturum açışınızda bu tek komutu çalıştırmanız gerektiği anlamına gelir:

export HOME=/var/www/html

Bu şekilde, çoğu uygulamanın yukarıda kullandığınız konumun ana dizininiz olduğunu düşünmesini sağlayabilirsiniz.

~işaret etmeye de başlayacaktır /var/www/html.

Benim için çalıştığı uygulamalar NPM ve Maven idi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.