Kendi kullanıcı kimliğimi nasıl değiştirebilirim?


49

Sistemimde yalnızca bir kullanıcı var. Kullanıcı kimliğini 1000 varsayılanından nasıl değiştirebilirim?

Tipik bir masaüstü kurulumunda oturum açma işlemini kesmemek için gerekli olacak ilave adımlar varsa, bunlar cevabın bir parçası olarak dahil edilmelidir.


5
Meraktan dolayı, bir kullanıcı kimliğini değiştirmenin nedenleri nelerdir?
Olivier Lalonde

14
Genellikle NFS aracılığıyla diğer sistemlerle veri alışverişinde bulunursanız veya UID'yi koruyan yalnızca bazı kopyalama yöntemlerinde, aynı kullanıcı adı için sistemler arasında aynı UID'yi kullanmanız yardımcı olur.
João Pinto,

João doğru yaptı. Özellikle, Mac OS X'teki kullanıcılarla UID'leri eşleştirmeyi umuyorum, böylece paylaşılan bir dosya sistemi işletim sistemlerinde amaçlanan izinleri taşır.
ændrük

1
Geçerli Nethack (3.6.0) sürümü, dosya adındaki geçerli kullanıcı adı da dahil olmak üzere oyunları kaydeder. Bir kaydetme oyununu makineler arasında senkronize etmek istiyorsanız, sıvıları eşleştirmeniz gerekir. (bir bağlantı kullanarak pratik değildir)
Jonathan Hartley

Yanıtlar:


27

Sorun, sizin de belirttiğiniz gibi, bir oturumda oturum açtığında kullanıcı kullanıcı kimliğinizi değiştiremezsiniz. Devam etmek için başka bir kullanıcı hesabı kullanmalısınız.

Ancak, yeni bir kullanıcı hesabı oluşturmak zorunda değilsiniz, yöneticiye tanıtın, çıkış yapın, yeni yönetici hesabınıza giriş yapın, birincil hesabınızın kullanıcı kimliğini değiştirin, çıkış yapın, birincil hesabınıza giriş yapın, sonra yeni yönetici kullanıcısını silin sadece kullanıcı kimliğinizi değiştirin. ;)

Kurtarma moduna önyükleme yapabilirsiniz (bilgisayarınızı başlattığınızda beliren bir seçenek olabilir veya BIOS mesajlarını tamamladıktan hemen sonra vardiyayı tutun; ESCOEM-Ubuntu çalıştıran Dell makinelerde kullanın ). Bu sizi bir kök oturumuna kaydeder. Her zamanki kullanıcı hesabınızla değil, root olarak giriş yaparak , UID'nizi değiştirebileceksiniz.

Kurtarma modu yalnızca komut satırı arayüzünde çalıştığından, bir kez kök oturumda oturum açtığınızda yapmanız gerekenler:

  1. Kullanım okuma-yazma modunda kök dosya sistemini yeniden bağlayın BubbaJ talimatlarını : mount -o remount,rw /.

  2. Kullanım Luis Alvarado emrini : usermod -u NEW_UID your_username.

  3. Dosya izinlerini güncellemek için ddeimeke'nin talimatlarını izleyin .
  4. Sonra bilgisayarınızı yeniden başlatın ( reboot), böylece normal modda önyükleyebilirsiniz.

1
Ubuntu 14.04 için çalışmıyor. Yaptıktan usermod -u NEW_UID your_usernameve find / -uid 1000 -exec chown -h 5000 '{}' \+yeniden başlattıktan sonra , yalnızca tahmin amaçlı bir GUI girişine neden olur.
Kay

Belki de, evdeki gizli dosyalar doğru şekilde değiştirilmemiştir? Eviniz için şifreleme kullanıyor musunuz?
matematik

Kullanıcı adınızı , bu yapılandırma dosyalarında sağlanan politikaların dışında değiştirdiyseniz, dosyalarınızı /etc/login.defsve /etc/adduser.confdosyalarınızı kontrol etmek isteyebilirsiniz . Politika sınırları dışındaki kullanıcılar giriş döngüsünde görüntülenmez, ancak politikayı değiştirebilirsiniz. Bu cevabı
K Markey

usermod: user user_name is currently used by process 1118 @Alexandre P.
alper

54

Bunu değiştirebileceğiniz /etc/passwd, /etc/groupve /etc/shadowveya yukarıdaki tercih Possibilties birini kullanın. Ancak - en önemlisi - kullanıcıya ait tüm dosyaların sahipliğini değiştirmeniz gerekir.

Örneğin, eski kullanıcı kimliği 1000 ve yenisi 5000 ise:

find / -uid 1000 -exec chown -h 5000 {} +

Ve aynı grup kimliği için de geçerlidir (eğer onu değiştirirseniz).

find / -gid 1000 -exec chgrp -h 5000 {} +

8
Bu gerçekten önemli bir nokta. Bunu yapmadan diğer cevaplarda verilen teknikleri izlerseniz birçok şey kopar.
poolie

4
Sadece bir iyi kullanmalıdır öğrenilen sudo find / -xdev -uid 1000 -exec chown 5000 '{}' \+aksi bir monte (veri içerir, /mntiçinde birlikte muhtemelen istenmeyen olan) ve dosyaları daha iyi değil karışıklık /procve /dev. Bu yazıya
Sebastian

2
Bu iyi bir fikir değil. / Home'nun farklı bir dosya sisteminde olması durumunda, kendi dosyalarınızın sahipliğini bile değiştirmezsiniz.
ddeimeke

Bu cevapta / etc içindeki dosyaları düzenlemeden önce grup ve kullanıcı kimliği izinlerini değiştirmelisiniz, değil mi?
MrDaniel

Öncelikle ne yaptığınız önemli değil.
ddeimeke

25

@AlexandreP'ye dayalı komple çözüm. ve @ ddeimeke + resmi belgeler. Yeniden başlatma gerekmez.

Debian / Ubuntu politikası, jimkullanıcı kimliğine sahip bir kullanıcı 1001varsa, aynı zamanda jimgrup kimliğine sahip bir grubun olmasıdır 1001. Bu çözüm aynı zamanda bu grup kimliklerini de günceller.

  1. Kök hesabını etkinleştirin :

    sudo passwd root
    
  2. Kullanıcı oturum açtıysa, oturumu kapatın (ayrıca sanal terminallerde)
  3. VT1'e git: Ctrl-Alt-F1
  4. Root olarak giriş yapın ve bunu kullanıcı adı ve sağlanan eski / yeni UID ile çalıştırın:

    # put the information we need in variables
    username=...
    old_uid=`id -u $username`  # looks up current (old) uid
    new_uid=...
    
    # update the user ID and group ID for $username
    usermod -u $new_uid $username
    groupmod -g $new_uid $username
    
    # update the file ownerships
    # NB: you cannot combine the next two chowns, or files where 
    # only the uid xor the gid matches won't be updated  
    chown -Rhc --from=$old_uid $new_uid /    # change the user IDs
    chown -Rhc --from=:$old_uid :$new_uid /  # change the group IDs
    
  5. Çıkış Yap
  6. Olarak giriş yap $username
  7. Kök hesabı devre dışı bırakın :

    sudo passwd -dl root
    

Kök hesabını etkinleştirmek gerekli olmamalıdır; sadece Kurtarma Modunu kullanın .
ændrük

2
Bu yeniden başlatmadan daha hızlı olmalı, bu yüzden onu gönderdim.
l0b0

3
Ubuntu 14.04 ve 14.10’da, ayrıca / medyadaki genişletilmiş ACL izinlerini de düzeltmeniz gerekir, aksi takdirde eski UID kaldıkça otomatik sıralama (Nautilus / Nemo'da) kesilir. sudo setfacl -m "u:<NEWUID>:r-x" /media/<USERNAME> sudo setfacl -x "u:<OLDUID>" /media/<USERNAME>
richud.com

Bu benim için bir cazibe gibi çalıştı. Ancak, sadece kullanıcı adını değiştirmek zorunda kaldı.
chmike

Root hesabını etkinleştirmek bana Kurtarma Modunu kullanmaktan daha kolay (ve daha az korkutucu) geliyor.
Jonathan Hartley

7

Konsola gidip şunu usermod --helpyazarsanız: şunu söyleyen parametrelerden birini alacaksınız:

-u, --uid UID kullanıcı hesabı için yeni UID

öyleyse, kullanıcı cyrex'i için kullanıcı kimliğini değiştirmek istiyorsanız:

usermod -u 1000 cyrex

bu, cyrex için kullanıcı arabirimini daha önce sahip olduğu değerden 1000'e değiştirirdi.

Görsel olarak yapmak istiyorsanız, o zaman şunu yapın:

Git

SİSTEM -> YÖNETİM -> KULLANICI VE GRUPLAR

Listeden kendinizi seçin ve GELİŞMİŞ AYARLAR'a tıklayın

UID bu pencerenin sonunda.


1
Önerdiğin grafik yöntemini denedim, ancak "Kullanıcı oturum açtığında kullanıcı kimliğini değiştiremezsin" diyen bir mesaj var. Bu yöntemi test ettiniz mi?
ændrük

2
Hehe bu doğru. Başka bir hesapla denedim. Kök veya başka bir yönetici hesabıyla giriş yapmanız gerekir. O zaman grafiksel şekilde yap. Bunun için özür dilerim.
Luis Alvarado,

2
  • Goto System >> Yönetim >> Kullanıcılar ve Gruplar

alt metin

  • Gelişmiş Ayarlar'a tıklayın ve alt kısımdaki Gelişmiş Sekmeye gore kullanıcı adınızı görün.
  • Değiştir ve tamam'ı tıkla.
    alt metin

1
Ekran görüntüsünüzdeki uyarıda yoksaymalı mıyım, "Kullanıcı oturum açtığında kullanıcı kimliğini değiştiremezsiniz"?
ændrük

Bu uyarıdan kurtulmak için başka bir kullanıcı hesabından değiştirmeniz gerekir.
karthick87

7
Sorum şu, " Kendi kullanıcı kimliğimi nasıl değiştirebilirim ?". Cevabınızı sadece bu değeri düzenlemek için yeni bir kullanıcı oluşturmam gerektiği yönündeyse, bunu belirtmek için cevabınızı düzenlemelisiniz.
ændrük

0

KDE ile: Gelişmiş Kullanıcı Ayarlarını Değiştir Menüsünde:

Başka bir kullanıcıdan değiştirmek, varsayılan kullanıcı olan 1000 için çalışmaz.

Bunu elle yapmak zorundasın - benim deneyimim


0

Öncelikle en azından bir süre root olarak giriş yapmanız gerekiyor, bu yüzden bunu mümkün kılalım:

sudo passwd root

Konsola geçmek için yeniden başlatma, ctrl + alt + f1, root olarak giriş yapın, aşağıdakileri yapın (home dir'deki sahiplik otomatik olarak halledilecektir):

groupmod --gid NEWGID username
usermod  --uid NEWUID username 

Ev dizini dışındaki yerlerdeki dosyalarınız için,

sudo chown -R username:username /path/to/files

İsterseniz, root şifresini silin ve kilitleyin. (Bende kalmaya meyilliyim):

passwd -dl root

0

Ddeimeke'nin talimatlarını aşağıdaki değişikliklerle takip ettim :

  1. Çıkış yapmadım ve bunun yerine yaptım sudo su
  2. Dokunmadım /etc/shadow

Diğer cevaplarda, kurtarma için önyükleme yapmanız veya oturum açmanız gerektiğini belirtmişsiniz root. Mine, yeni bir Ubuntu 14 kurulumuydu, bu yüzden oturum açmadan çalışıp çalışmayacağını test etmeye hazırdım root. Ayrıca bunu bir EC2 örneğinde SSH üzerinden yapıyordum.

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.