Bir unix kullanıcısını nasıl yeniden adlandırabilirim?


89

Adında bir kullanıcı var hedgehogve onun adlandırılmasını istiyorum squirrel, ancak onun sayısal kullanıcı kimliğini değiştirmek istemiyorum.
Bunu nasıl başarabilirim?


2
Muhtemelen bir kullanıcıyı yeniden adlandırmak, bir profesyonel SA'nın mücadele edeceği bir görev değildir. (Soru downvotes için.)
HopelessN00b

2
@Jeznet Bu sadece unvanınızı google’a yazarak çözülebilecek çok basit bir iş olmadığı için reddetti, ayrıca sorduğunuzda kendi sorunuzu da cevapladınız. Zaman kaybı gibiydi.
boburob

10
@boburob "sorduğunuzda kendi sorunuzu da cevapladınız. Zaman kaybı gibi göründü
Szymon Jeż

10
@boburob Answer your own question – share your knowledge, Q&A-styleBir soru sorduğunuzda yazan onay kutusunu gördünüz mü ? Bir nedeni var ve kullanılmasını istemeselerdi orada olmazdı. (İdeal iyi sorulara, ama ne olursa olsun, kendi soruya cevap için birini downvoting kötü şeklidir.)
HopelessN00b

1
Evet, daha önce de kendi soruma cevap verdim ama bana, bir soru sormak ve google sonucunu aynı dakikada yapıştırmak biraz zaman kaybı.
boburob

Yanıtlar:


133

Linux altında, usermodkomut kullanıcı adlarını değiştirir. Sistem hesap dosyalarını, komut satırında belirtilen değişiklikleri yansıtacak şekilde değiştirir.

Sadece kullanıcı adını değiştirmek için:

usermod --login new_username old_username

Kullanıcı adını ve giriş dizini adını değiştirmek için:

usermod --login new_username --move-home --home path_to_the_new_home_dir old_username

Ayrıca, kullanıcıyla ilişkilendirilen grubun adını değiştirmek isteyebilirsiniz:

groupmod --new-name new_username old_username

12
Usermod komutunu, usermod komutunu kullanabilirsiniz: usermod - l yeni kullanıcı adı
m

5
Ayrıca, grubun değişmediğini de unutmayın. old-user-nameGrubu da yeniden adlandırmanız gerekirse , kullanın # groupmod -n new-user-name old-user-name.
alxs

1
Kullanılan sistemler için autofsayrıca güncellemelisiniz /etc/auto.home. Sadece bununla karşılaştım.
Steven C. Howell,


2
Ayrıca /var/spool/cron/crontabs/(yüklü bir işiniz varsa) içinde bulunan crontab dosyasını yeniden adlandırmanız gerekecek
Daniel F

12

NOT: Dizininiz şifrelenmişse bunu denemeyin! Bu sizin durumunuzsa, önce kontrol etmek isteyebilirsiniz: https://askubuntu.com/questions/107410/can-you-unencrypt-remove-encryption-from-a-user-home-folder

Bunu yapmanın dürüst yolu:

  1. Sudo haklarına sahip yeni bir geçici hesap oluşturun:

    sudo adduser temp
    sudo adduser temp sudo
    
  2. Mevcut hesabınızdan çıkın ve geçici hesapla tekrar oturum açın.

  3. Kullanıcı adınızı ve dizinizi yeniden adlandırın:

    sudo usermod -l new-username -m -d /home/new-username old-username
    
  4. Kullanıcı adınızın varsayılan grubunu yeniden adlandırın:

    sudo groupmod -n new-username old-username
    
  5. Geçici hesaptan çıkın ve yeni kullanıcı adıyla hesabınıza tekrar giriş yapın.

  6. Geçici hesabı kaldır:

    sudo userdel -r temp
    

Aksi takdirde, sadece (1) yeni bir kullanıcı yaratır ve (2) rsynceski kullanıcı ana klasörünü yenisine, sonra da (3) chownonu kullanırsınız.


CentOS'ta ayrıca “geçiş sıcaklığı” ve “usermod-aG tekerlek sıcaklığı” na ihtiyacım vardı.
Brian Z,

4

Genelde /etc/passwd(ve /etc/shadowvarsa) dosyalardaki kullanıcı adını değiştirerek kullanıcıyı yeniden adlandırabilirsiniz . Çoğu unix sisteminde vipwkomut, bu dosyaları düzenlemek için kullanılır (ve birçok sistemde işleri çok fazla karışıklığa uğramamak için bazı güvenlik önlemleri içerir).
Man sayfalarına bakın passwd(5), shadow(5)ve vipw(8)daha fazla bilgi için.

Yukarıdaki yöntemin, orijinal kullanıcı adını taşıyabilecek diğer şeyleri yeniden adlandırmadığına dikkat edin (ev dizinleri birincil örnek, kullanıcı başına kişisel gruplar (bunları kullanan sistemlerde). Bunları tutarlılık için de passwd dosyasındaki uygun alanları değiştirerek ve dizinleri yeniden adlandırarak temizlemek isteyebilirsiniz.


Birkaç işletim sistemi, sisteme özgü kullanıcıları yeniden adlandırma yöntemi sağlar. Örneğin, birçok Linux sistemi usermod(8)komutu içerir ve AIX'de hesap adlarını SMIT (veya smittybir terminalde) kullanarak değiştirebilirsiniz .
Bu komutlar, isterseniz, genellikle ev dizinlerini yeniden adlandırma gibi temizleme öğelerini kullanır.

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.