Kullanıcı adını değiştirmeye çalışırken, terminal bana şu anda işlem tarafından kullanıldığını söylüyor


16

Aşağıdaki komutu çalıştırdıktan sonra burada tavsiye göre kullanıcı adımı değiştirmeye çalışıyorum :

CurrentName@HostName ~ $ sudo usermod -l TheNameIWantToChange -d /home/TheNameIWantToChange -m CurrentName

Terminal şu ​​yanıtı verir:

CurrentName@HostName ~ $ usermod: user CurrentName is currently used by process 2491

Ve kullanıcı adı aynı kalır. Bunu nasıl düzeltebileceğimi ve kullanıcı adımı değiştirebileceğimi bilen var mı?

Yanıtlar:


8

Alıntı yapmak için man usermod:

CAVEATS
   You must make certain that the named user is not executing any 
   processes when this command is being executed
   if the user's numerical user ID, the user's name, or the user's home 
   directory is being changed.  usermod
   checks this on Linux, but only check if the user is logged in 
   according to utmp on other architectures.

Bu nedenle, yeniden adlandırdığınız kullanıcının oturum açmadığından emin olmanız gerekir.

Ayrıca, bunu root olarak çalıştırmadığınızı not ediyorum. Ya kök olarak çalıştırın ya da "sudo usermod" ile çalıştırın.


3
işlemi yeniden başlatmadan öldüremezseniz, komutu birleştirin örn.kill -9 23162 && sudo usermod -l TheNameIWantToChange -d /home/TheNameIWantToChange -m CurrentName
Richard Frank

2
Program usermodtasarımla kırılmış gibi görünüyor. Kullanıcı yönetimi bir LDAP sunucusunda yapılırsa, kullanıcı özniteliğini değiştirmek her zaman mümkündür ve çalışan sisteme bağlı değildir. Ansible kullanıyorum usermodve delik sistemi güvenilmez, çünkü değişiklikler giriş yapan kullanıcılar tarafından engellendi.
ceving

1

Komutu başka bir kullanıcıyla çalıştırmanız gerektiğini düşünüyorum. Root veya başka bir kullanıcı ile giriş yapın ve tekrar deneyin. Değiştirmek istediğiniz kullanıcıyla x penceresinde bulunuyorsanız, komutların başarısız olduğu mantıklı geliyor.


1

Bu temelde Ubutu ile ilgili bir sorun olup, ilk etapta oturum açmak için root hesabınız yoktur. Bu bir çelişki yaratıyor: Ben sudoer grubunda bir kullanıcıyım. Kendi kullanıcı adımı değiştiremiyorum.

Bunun en iyi çözüm olduğundan emin değilim. Öncelikle sahte bir hesap oluşturuyorum, bunu sudo listesine ekliyorum. Sonra foo hesabına giriş yapıp usermod'u çalıştırıyorum -g MYOWNGID mylogin


0

Ben usermod kullanarak aynı sorunu var, bu yeni bir yerelleştirme için ana dizinin içeriğini taşımak -m parametresi kullanılarak düzeltildi. Bu seçeneği -d ile birlikte kullanın (kullanıcının bulunduğu ana dizini değiştirin).

Adam usermod komutunu görmenizi öneririm


0

Şu adımları deneyin:

  1. Kök kullanıcı için parola belirleyin:

sudo passwd kökü

  1. ubuntu'yu yeniden başlat
  2. Önyükleme sonrasında "root" olarak oturum açın -> Bu, ubuntu'nun geçerli kullanıcı için herhangi bir işlem oluşturmamasını sağlar.
  3. Kullanıcı adını değiştirme

    usermod -l newuser -d / ana sayfa / newuser -m eski kullanıcı

  4. / Home dizininde yeni kullanıcı adıyla klasör adını kontrol ederek kullanıcı adının değiştiğini doğrulayın

-1

Giriş yapmış bir kullanıcının kullanıcı adını değiştirmemelisiniz. Bunun yerine, tüm kullanıcının işlemlerini sonlandırmalı, bağlantıyı kesmeli, farklı bir kullanıcı olarak oturum açmalı ve daha sonra yeniden adlandırmalısınız.

Çok fazla iş gibi görünüyorsa, değişikliği hotwire yapabilirsiniz: https://medium.com/@deltazero/linux-howto-rename-currently-operating-user-f8fae62db110

Şöyle çalışır:

# your new username
newuser=dave

# root-run these all at once
sudo su -c "\
  sed -i s/$USER/$newuser/g /etc/group \
  && sed -i s/$USER/$newuser/g /etc/shadow \
  && sed -i s/$USER/$newuser/g /etc/passwd \
  && mv /home/$USER/ /home/$newuser"

# exit & reconnect under new username
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.