Kullanıcının varsayılan giriş dizinini değiştirme komutu


205

Dosyaya dokunmadan Linux / Unix'te ( mevcut bir geçerli kullanıcının varsayılan giriş kabuğunu değiştiren chsh'a benzer) kullanıcı ana dizinini değiştirmek için herhangi bir basit kabuk komutu olup olmadığını bilmek istiyorum /etc/passwd. Teşekkürler


Neden /etc/passwddosyaya dokunmak istemiyorsun ? Yapmanız gerekecek!
Basile Starynkevitch

11
stackoverflow.com/questions/20071714/… , usermod -d /home/userxx /home/useryylinux varsayılan giriş dizinini / home / useryy olarak değiştirdiğini söylüyor
Ibrahim

2
Neden varsayılan giriş dizini hakkında soru soruyorsunuz ? Mevcut belirli bir kullanıcının veya gelecekte eklenecek tüm kullanıcıların giriş dizinini değiştirmek istiyor musunuz? Bildirim chshdeğişmez varsayılan değiştirmek için ... giriş kabuğu, ancak belirli bir kullanıcının sadece giriş kabuğu HOMEbelirli bir kullanıcının, sadece düzenleme/etc/passwd
Basile Starynkevitch

Yanıtlar:


353

İbrahim'in diğer cevaba yaptığı yorum, mevcut bir kullanıcının ana dizinini değiştirmenin doğru yoludur.

Kullanıcının giriş dizinini değiştirin:

usermod -d /newhome/username username

usermodmevcut bir kullanıcıyı düzenleme komutudur.
-d(kısaltması --home) kullanıcının giriş dizinini değiştirir.

Kullanıcının giriş dizinini değiştirme + Kullanıcının geçerli dizininin içeriğini taşıma:

usermod -m -d /newhome/username username

-m(kısaltması --move-home) içeriği kullanıcının geçerli dizininden yeni dizine taşır.


1
Sadece içeriği taşımakla kalmayıp, tüm klasörü taşı gibi görüyorum = orijinal klasör ( /home/usernamegenellikle) kaldırıldı.
Betlista

2
@STW Bu geri döndürülebilir bir görev mi? Sadece bir kez çalıştırıp parametreleri çevirirsem, ana dizinim tam olarak eskisi gibi mi olacak?
DanGordon

1
@DanGordon, argümana ne koyarsanız koyun /newhome/username, kullanıcının ana dizini olacaktır. Ne olduğunu biliyorsanız, önceki giriş dizinine geri ayarlayabilirsiniz, ancak "geri al" seçeneği yoktur.
STW

3
İkinci komut için seçeneklerin sırası yanlış. usermod -m -d /newhome/username usernameİşler.
Snozzlebert

@Dominik teşekkürler - işletim sistemine göre farklı bir şans var (Mac vs Linux vs BSD, vb.), Tabii ki de yanlış olabilir
STW

28

Gönderen Linux Vars.Değiştir Kullanıcı Ana dizini Yeni Bir Kullanıcı Ekleme ederken :

Bu dosyayı bir metin düzenleyici kullanarak açın, şunu yazın:

vi /etc/default/useradd

HOME değişkeni tarafından tanımlanan varsayılan giriş dizini, aşağıdaki gibi okunan satırı bulun:

HOME=/home

İle değiştirin:

HOME=/iscsi/user

Dosyayı kaydedip kapatın. Artık normal useradd komutunu kullanarak kullanıcı ekleyebilirsiniz:

# useradd vivek
# passwd vivek

Kullanıcı bilgilerini doğrulayın:

# finger vivek

83
usermod -m -d /path/to/new/login/home/dir user varolan kullanıcı giriş dizinini, henüz yoksa yeni bir giriş dizinine değiştirirse, option -m, geçerli giriş dizininin içeriğini yeni giriş dizinine taşır
Ibrahim Quraish

23

İlk kullanıcı klasöründeki içerikler onu kullanarak taşınmadığından, kabul edilen cevap hatalı. Düzeltmek için başka bir cevap ekleyeceğim:

sudo usermod -d /newhome/username -m username

Kullanıcı adı ile klasör oluşturmanız gerekmez ve bu da dosyalarınızı ilk kullanıcı klasöründen / newhome / username klasörüne taşır.


4

Diğer okuyucuların adduserkomut hakkında bilgi araması durumunda .

Düzenle /etc/adduser.conf

DHOMEDeğişkeni ayarla


0

Bunun bazı uygulamaları bozduğunu öğrendik, bunu yapmanın en iyi yolu

Symlink'e ek olarak, daha yeni dağıtımlarda ve dosya sistemlerinde, kök olarak bağlama bağlama özelliğini de kullanabilirsiniz:

mkdir /home/username 
mount --bind --verbose /extra-home/username /home/username

Bu, sembolik bağlantılardan (apache, ftpd, vb.) Geçmeyi önlemek için yapılandırılan arka plan programları ile / home dizinine alt dizinlere "üzerinden" erişim izni vermek için kullanışlıdır.

Tabii ki yeniden başlatmalara bağlanmayı hatırlamanız (veya komut dosyasını başlatmanız) gerekir.

Bir örnek init komut /etc/fstabIS

/extra-home/username /home/username none defaults,bind 0 0

-1

usermod -m -d / newhome kullanıcı adı


5
Lütfen cevabınızı daha ayrıntılı olarak açıklayınız.
T. Kısa
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.