Kullanıcı adımı nasıl değiştiririm?


325

Bir süre önce Ubuntu'yu kurduğumda, hesabım için artık kullanmak istemediğim aptal bir kullanıcı adı seçtim.

Uygulamalar için ayarları kaybetmeden bunu (ana dizinin adı ve terminaldeki adı dahil) nasıl değiştiririm?
Çeşitli kimlik doğrulama için izinleri ve anahtarlarımı (örneğin, e-posta, SSH, GPG ve daha fazlası) nasıl tutarım?
Kullanıcı adımı değiştirirsem hangi ayarlar kaybolur?


Neden /usr/share/applications/users.desktop adresine gidemiyoruz >> Adının değiştirilmesi gereken kullanıcıya tıklayın. >> Kullanıcı adını değiştir >> Adını değiştir >> Tamam'a tıklayın. Sanırım, bu kullanıcı adını değiştirmenin en kolay yolu olurdu, değil mi?
Anand,

Yanıtlar:


324

Unix benzeri işletim sistemleri, kullanıcı adını kullanıcı kimliğinden ayırır, böylece kimliği etkilemeden adı güvenle değiştirebilirsiniz. Tüm izinler, dosyalar vb. Kullanıcı adınıza değil kimliğinize (kullanıcı kimliğine) bağlıdır.

Kullanıcı veritabanının her yönünü yönetmek için usermodaracı kullanırsınız .

Kullanıcı adını değiştirmek için (oturum açmadan bunu yapmak en iyisidir):

sudo usermod -l newUsername oldUsername

Ancak bu, ana klasörü yeniden adlandırmaz.

Giriş klasörünü değiştirmek için

sudo usermod -d /home/newHomeDir -m newUsername

kullanıcı adını değiştirdikten sonra.

Örneğin, oturumu kapatabilir, bir konsola bırakabilir ( Ctrl+ Alt+ F1) ve sudo su -gerçek bir kök haline gelebilirsiniz (bunun yerine sudo -s, $ HOME hala / home / adınız.) ilk. Bunu yapmak için, girip ps -u usernameeşleşen PID'yi arayın ve onları öldürün kill PID-number.

Güncelleme: Düzenlendiği gibi, bazı dosyalar eski giriş dizininize başvurabilir. Geriye dönük uyumluluk için bir sembolik bağlantı tutabilirsiniz, örneğin ln -s /home/newname /home/oldnameveya dosya içeriğini sed -i.bak 's/*oldname*/*newname*/g' *list of files*.bak uzantılı her dosya için bir yedek oluşturur.

Benim gibi deneyimli olmayan kullanıcılar için bazı ek bilgiler:
Yalnızca bir kullanıcı hesabım (yönetici) olduğu için, kullanıcı adını değiştirmeme izin vermedi ("zaten giriş yaptınız", TTY1'deki ( Ctrl+ Alt+ F1) yanıtıydı . bunun etrafında:

  1. Eski kimlik bilgilerinizle giriş yapın ve yeni bir kullanıcı ekleyin, örneğin TTY1’de "geçici":

    sudo adduser temporary
    

    şifreyi ayarlayın.

  2. Geçici kullanıcının kullanıcıyı sudo grubuna ekleyerek sudo çalıştırmasına izin ver:

    sudo adduser temporary sudo
    
  3. Komutla oturumu kapatın exit.
  4. Tty1'e geri dön: 'Geçici' kullanıcı hesabı ve şifre ile giriş yap. Kullanıcı adınızı ve klasörünüzü yukarıda belirtildiği gibi değiştirin. exit(oturum açma istemini alana kadar)
  5. GUI / normal masaüstü ekranında oturum açmak ve bunun işe yarayıp yaramadığını görmek için TTY7'ye ( Ctrl+ Alt+ F7) dönün .
  6. Geçici kullanıcı ve klasörü sil:

    sudo deluser temporary
    sudo rm -r /home/temporary
    

11
Bu ne yazık ki $ HOME altındaki farklı yapılandırma dosyaları için doğru değil, benzeri bir şey çalıştırmayı deneyin grep -IRFl /home/username ~ve ana dizininizde kaç tane referans bulunduğunu göreceksiniz.
düzenleme

1
Basit bir düzeltme yapıldı - Sadece Kullanıcı Hesapları düzenleyicisini birlik içinde kullanmak zorunda kaldım, ardından yeniden başlat.
Steve Koch

6
Şifreli bir giriş klasörü olanlar /home/.ecryptfs/oldusername/.ecryptfs/Private.mntiçin, yeni giriş klasörünüzü gösterecek şekilde düzenlemelisiniz , aksi takdirde Unity ile giriş yapamazsınız.
raphael

2
sudo usermod -d /home/edge -m edgeverim: usermod: Directory /home/empedokles could not be renamed in /home/edgeyani 4. adım işe yaramaz.
empedokles,

2
@JTC aslasudoers düz ile düzenleme yapmaz nano. Her zaman kullan visudo.
strafor fly

107

Hepsini bir araya getirmek için:

  1. Başlangıç ​​ekranında Ctrl+ Alt+ tuşlarına basın F1.
  2. Kullanıcı adınızı ve şifrenizi kullanarak giriş yapın.
  3. "Kök" hesap için bir şifre belirleyin.

    sudo passwd root
    
  4. Çıkış Yap.

    exit
    
  5. "Root" hesabını ve daha önce belirlediğiniz şifreyi kullanarak giriş yapın.

  6. Kullanıcı adını ve giriş klasörünü istediğiniz yeni adla değiştirin.

    usermod -l <newname> -d /home/<newname> -m <oldname>
    
  7. Grup adını istediğiniz yeni adla değiştirin.

    groupmod -n <newgroup> <oldgroup>
    
  8. "Kök" hesabını kilitle.

    passwd -l root
    
  9. Eğer ecryptfs kullanıyorsanız (şifreli giriş dizini). Yeni giriş dizininizi yansıtmak için şifreli dizinizi kullanın ecryptfs-recover-privateve düzenleyin <mountpoint>/.ecryptfs/Private.mnt.

  10. Çıkış Yap.

    exit
    
  11. Ctrl+ Alt+ Tuşlarına basın F7.

Ve şimdi yeni kullanıcı adınızı kullanarak giriş yapabilirsiniz.


6
Sonra ise usermod -l bir olsun user <oldname> is currently used by process <processno>, siz bu süreci (muhtemelen cini ya tmux / ekran) kullanarak bulabilirsiniz ps aux | grep <processno>. Bu işlemi incelikle durdurmak isteyebilirsiniz, aksi takdirde yapabilirsiniz kill <processno>.
RedPixel

1
Bu yorumu bir araya getirdiğiniz için teşekkür ederiz. Çok faydalı oldu. Yine de bahsedilebilecek iki şey. 4. adımdan sonra yeniden başlattım, böylece 6. adımda hata mesajları almayacaktım. Ayrıca, bu işlem tamamlandıktan sonra, / etc / passwd dosyasında sahip olacak ve eski kullanıcı adı ile eşleşen ID yorumunda bulunacak. Bu, giriş ekranının eski giriş adını görüntülemesine neden olur. Komut satırından düzeltmek için iyi bir yol bulamadım, ancak kullanıcı hesabına giriş yaparak, hesap ayarlarına gidip "Giriş Adı" nı kullanıcı adına değiştirerek düzeltdim. Bu / etc / passwd dosyasını güncelledi ve problemi çözdü.
Jibbers

1
Bu, bunu yapmanın en kolay ve kusursuz yoludur. @ Jibbers'in önerdiği gibi 4. adımdan sonra yeniden başlatmak daha iyidir.
Yerke

"Dosya tarayıcı pencerelerindeki yer imlerinin" şimdi eski klasörlere işaret ettiğini ve bu yer imlerini silmem gerektiğini belirtiyordum.
ollydbg23

İşe yaramaz. Başında Ctrl + Alt + F1 tuşlarına basarsanız, yeni oluşturulan kullanıcılara izin vermeyecek şekilde giriş yapmaya çalışıyor.
empedokles

27

Kurtarma modunda yeniden başlatın ve kök istemi kabuğuna gidin ("Kök kabuğuna istemi bırak")

İlk önce kök yeniden yerleştir

mount -o remount,rw /

Kullanıcı adını ve giriş klasörü adını değiştirmek için

usermod -l <newname> -d /home/<newname> -m <oldname>

Grup ismi için

groupmod -n <newgroup> <oldgroup>

1
Bunu kullandığımda usermod -l <newname> -d /home/<newname> -m <oldname>bana hata veriyor usermod: user oldusername is currently used by process 3170ve süreci öldürürsem hala aynı hatayı veriyor. ubuntu 13.10 kullanarak
Waqas

4
EVİN KURULUŞUNUN ŞİFRELENMESİ VARSA BU YAPMAYIN !!!! Bu prosedürü izledim ve beni 2 saatlik vahşi bir yolculuk için gönderdi ... Kurtarmanın tek yolu bu işlemi tekrar yapmak ve orjinal (beğenilmemiş) adını tekrar girmektir. nokta "
Mike

Neden /usr/share/applications/users.desktop adresine gidemiyoruz >> Adının değiştirilmesi gereken kullanıcıya tıklayın. >> Kullanıcı adını değiştir >> Adını değiştir >> Tamam'a tıklayın. Sanırım, bu kullanıcı adını değiştirmenin en kolay yolu olurdu, değil mi?
Anand,

9

Ubuntu 13.10, 14.04, 16.04 tarihinde:

  1. "Sistem Ayarları" simgesine tıklayın.
  2. "Kullanıcı Hesapları" üzerine tıklayın.
  3. Yönetici hesabınız gösterilmeli.
  4. "Kilidi aç" düğmesine tıklayın.
  5. Hesabınızda değişiklik yapılmasına izin vermek için kullanıcı şifrenizi istediğiniz şekilde girin.
  6. Kilit açıldıktan sonra, değiştirmek istediğiniz eski kullanıcı adınızı tıklayabilir ve değiştirmek için yeni bir kullanıcı adı yazabilirsiniz.
  7. Yeni adı yazdığınızda, değişikliği kalıcı hale getirmek için "Kilitle" düğmesine tıklayın.
  8. Ubuntu’yu yeniden başlatın.

3
Bu benim için kullanıcı adını değiştirmedi, sadece adını değiştirdi. Eski kullanıcı adı hala terminalde, ana dizin ve grup olarak (yeniden başlattıktan sonra bile) görünür.
DougC

3

usermod: can't change /etc/passwordSadece aldığınızda aşağıdaki komutları çalıştırın:

Kök kurtarma konsolunda çalıştırın:

mount -o remount,rw /

Sonra tekrar çalıştırın:

usermod -l <newname> -d /home/<newname> -m <oldname>

Neden /usr/share/applications/users.desktop adresine gidemiyoruz >> Adının değiştirilmesi gereken kullanıcıya tıklayın. >> Kullanıcı adını değiştir >> Adını değiştir >> Tamam'a tıklayın. Sanırım, bu kullanıcı adını değiştirmenin en kolay yolu olurdu, değil mi?
Anand,

1

Burada @ karthick87 tarafından listelenen cevap mükemmel bir şekilde çalışıyor, ancak burada sadece güvende olmak ve tüm aksaklıklardan kaçınmak için yapacağım şey:

  1. Ayrı bir hesap / kullanıcı oluşturun ve bu hesap / kullanıcı root yeteneklerini kontrol edin veya herhangi bir root-user kullanıcısı olarak giriş yapın.
  2. Mevcut hesapla çıkış yapın ve sonra 1. adımda belirtilen hesapla giriş yapın.
  3. Önceki kullanıcının tüm işlemlerini öldür.
  4. Şimdi @ karthick87 tarafından belirtilen adımları takip edin ve kullanıcı adını ve ayrıca ana dizin sahibini değiştirin.
  5. Ardından grup adını değiştirmek için @ Sriraj Hebbar'ın cevabını izleyin.
  6. Yedek kullanıcıyla çıkış yapın ve kullanıcıyla giriş yapın. Ekstra bir kullanıcı oluşturduysanız silin.

0

bunu yaptığında usermod -l <newname> -d /home/<newname> -m <oldname>alırsınız useradd: can't change /etc/passwdBunu önlemek için hata mesajını sadece eklemek sudo --gibi yukarıdaki komuta

sudo -- usermod -l <newname> -d /home/<newname> -m <oldname>

ve

sudo --  groupmod -n <newgroup> <oldgroup>

-3

Tüm PC'lerin usermoduygulaması olmadığı için manuel olarak yapabilirsiniz. Kök itibariyle /etc/passwddüzenlemeye açık :

sudo vim /etc/passwd

ve satırın başında kullanıcının adını değiştirin:

user:x:500:501:username:home/user:/bin/bash

için:

newuser:x:500:501:username:home/user:/bin/bash

Daha sonra root çalıştıysanız, sadece giriş yapın ve giriş yaptıysanız user, logoff ve relogin.


Bu usermodkomutu denedim ( komutu keşfetmeden önce ) ve kullanıcının şifresi artık kabul edilmedi.
Ben Voigt

@BenVoigt tüm adetlerin usermodu yok
Малъ Скрылевъ

3
Ubuntu! Eğer yoksa usermod, kurulumunuz gereklipasswd olan paketin bir parçası olduğu için bozulur .
Auspex
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.