Bir Unix kullanıcı hesabını yeniden adlandırmak mümkün mü?


49

Ubuntu'yu şimdi başka biri tarafından kullanılan bir bilgisayara kurdum. Hesabı adıyla yeniden adlandırdım, ancak sağ üstte (içinde fast-user-switch-applet) görüntülenen kullanıcı adını değil, yalnızca tam adını değiştirdi . Unix kullanıcı hesabını yeniden adlandırmak için bir komut var mı?

Yeni adla yeni bir kullanıcı hesabı oluşturmayı ve ardından "eski" evdeki her şeyi yeni hesabın evine kopyalamayı düşündüm. Yeterli mi? Ama sonra dosyaların eski hesabın izinlerinin sahibi olacağını düşünüyorum? Öyleyse yapmalı mıyım chown -R newuser ~?

Bunu yapmanın daha basit / önerilen bir yolu var mı?

Yanıtlar:


52

Deneyin

usermod --move-home --login <new-login-name> --home <new-home-dir> <old-login-name>

Bu --move-homeseçenek eski ev direktörünün içeriğini, --homeeğer mevcut değilse oluşturulan seçenek tarafından verilen yenisine taşır .

Birincil kullanıcı grubunun eşleşmesini istiyorsanız, yukarıdaki komuta new-login-nameekleyin --gid <new-login-name>, ancak grubun önceden var olması gerekir.

Daha fazla bilgi için man sayfasına bakın:

man usermod

Teşekkürler! Bu emri bilmiyordum. :) Bununla birlikte, bu bilgisayardaki tek hesap bu ve adam şöyle diyor: «Kullanıcıların sayısal kullanıcı kimliği, kullanıcı adı veya kullanıcı adı ise, bu komut yürütülürken, adlandırılmış kullanıcının herhangi bir işlem gerçekleştirmediğinden emin olmalısınız. kullanıcılar ana dizini değişiyor. usermod bunu Linux'ta kontrol eder, ancak kullanıcının diğer mimarilerde utmp'a göre giriş yaptığını kontrol eder. »Bunu yapmak için canlı bir cd kullanmanızı veya bittiğinde sileceğim geçici bir hesap oluşturmanızı önerir misiniz?
Yann Dìnendal

2
Ubuntu kullandığınızdan ve root olarak giriş yapamadığınızdan, sadece bu tür bir görev için kullandığınız admin denilen başka bir hesap oluşturacağım. Geçici bir hesap da aynı şekilde işe yarayacaktır, ancak gelecekte benzer şeyler yapabildiğiniz için hesabınızı saklayabilirsiniz.
gvkv

3
usermod --homeTam yolu içermesi gerektiğine dikkat edin , örneğin /home/user.name- aksi takdirde yeni çalışma dizini geçerli çalışma dizini içinde oluşturulur.
feeela

Bu grubu değiştirmez!
Heanz

22

Bir kullanıcıyı yeniden adlandırmak usermodve işin bir kısmını yapmak mümkün olsa da , bunun bir sorun yaratması olasıdır. İşte kullanıcı adının görünebileceği yerlerin bir listesi; Bu listenin eksiksiz olduğunu iddia etmiyorum.

  • Kullanıcı giriş /etc/passwdve ilgili dosyaları (örneğin /etc/shadow, /etc/master.passwd).
  • /etc/group(Ve /etc/gshadow) deki grup girişleri .
  • Muhtemelen girişler /etc/sudoers.
  • Sistem posta kutusu, tipik olarak /var/mail/$USERveya /var/spool/mail/$USER.
  • Tipik olarak crontab /var/spool/cron/crontabs/$USER
  • Gelen atişlerin ( /var/spool/cron/atjobs/*)

Giriş dizini daha fazla yerde görünebilir. Birçok uygulama çeşitli nokta dosyalarına mutlak yollar yazar. Giriş dizinini de yeniden adlandırmaya karar verirseniz (kullanıcının alicegiriş dizininin olması zorunlu olmamakla birlikte /home/alice, bunun /home/bobkafa karıştırıcı olması gerekir), bunlarla ilgilenmeniz gerekir. Global bir değiştirme çoğu uygulama için işe yarayacaktır, ancak söz vermiyorum. Mümkünse, eski giriş dizini adını yeniden adlandırılmış dizine sembolik bir bağlantı olarak tutun.


4

Debian sisteminde kullandığım komutların bir özeti:

groupadd NEW
usermod -l NEW -m -d /home/NEW -g NEW OLD
chfn -f "New Fullname" NEW
cd /home
ln -s NEW OLD

Son iki komut, eski giriş dizininin adından ( / home / OLD ) yeni olanın adına ( / home / NEW ) sembolik bir bağlantı oluşturur .


Ne groupaddiçin?
Yann Dìnendal

2
Bunun yerine gidonu değiştirmekten kaçınmanın groupaddtercih edilebileceğini düşünüyorum groupmod -n NEW OLD. En azından Ubuntu'da kullanıcıyla aynı isimde bir grup varsayılan olarak ayarlanmıştır, bu yüzden bir de bu ismi değiştirmek ister.
jamadagni

1

her şeyden önce zarif yöntemlerdir, ama neden sadece yeni bir kullanıcı oluşturmuyorsunuz, tüm içeriğini birinciden kopyalayın, peki ya bu? Tabii ki, eğer bir hizmet (uygulama) hesabıyla ilgiliyse, belki de en iyi uygulama değildir.


3
Bunun, OP'de daha önce belirtilen bir çözümden bahsetmek dışında neredeyse hiçbir şey eklemeyen tam bir cevap yazısından ziyade, bir yorum olarak yerleştirilebileceği görülüyor. Bu çözümün neden daha iyi, hatta kabul edilebilir olduğunu düşündüğünüze bazı bilgiler eklemeyi düşünmelisiniz.
HalosGhost
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.