Ubuntu veya herhangi bir Linux'ta kullanıcı adını değiştirmenin doğru yolu


26

Ubuntu 12.04 kullanıyorum ve bazı uyarlamalar yaptım. Ayrıca ubuntu özelleştirilmiş olan yeni bir iso yapacağım.

Sormak istediğim, kullanıcı adımı nasıl değiştirebilirim. Geçerli giriş klasörümde çok fazla yapılandırma var. Bu yüzden kullanıcı adınızı değiştirmekten vazgeçmek istemiyorum.

Peki bunu yapmak için en iyi uygulama veya iş akışı var mı?


Ana dizininiz genellikle kullanıcı adınızla oluşturulur, ancak / etc / passwd ve / etc / shadow öğesindeki ilk öğelerin değiştirilmesini sağlayarak ana dizini değiştirmeden kullanıcı adını değiştirebilirsiniz. Hata yapmanız durumunda root olarak giriş yapabileceğinden emin olun (sadece kullanıcı giriş bilgilerinizden sudo değil).
Anthon

Ana dizinin adını değiştirmek istersem ne yapmalıyım? ve tam olarak ilk unsurları söyleyerek ne demek istiyorsun?
CorpusCallosum

Yanıtlar:


28

Gerçekten doğru yol? 'Peter' kullanıcısını 'paul' olarak değiştirmek istediğinizi söyleyin.

groupadd paul
usermod -d /home/paul -m -g paul -l paul peter

Bu, tüm dosyaları ile birlikte, adını, grubunu, giriş dizinini ve bu dizinin sahipliğini ve grubunu yenilerine değiştirir. Sonunda 'paul' olarak yaratılmasından ayırt edilemeyen bir kullanıcıyla karşılaşıyorsunuz.

Başka bir yol ise, ilk önce /etc/passwdve sonra /etc/shadowdosyadaki Peter'ın giriş alanlarını düzenlemektir . Ardından her 'peter' oluşumunu 'paul' olarak değiştirin /etc/group. Sonra eve dizini yeniden adlandırmak /home/peteriçin /home/paul. Ve sonra chown -R paul /home/peterdizinin sahipliğini ve gruplarını ve altındaki tüm dosyaları ve dizinleri almak için yenilerine sahip olmak.


3
/ Etc / {passwd, shadow, group} 'ı düzenlediyseniz, chown'a gerek yok - inode sahibi ve grupları sayısal olarak depolar
Graham Nicholls

5

Bir kullanıcının adını değiştirmeyi denememeyi tavsiye ederim. Bu genellikle, kullanıcının adı yapılandırma dosyalarında kullanıcının giriş dizini biçiminde statik olarak atıfta bulunulduğunda, sorunlarla sonuçlanır /home/<username>. Bunlar neredeyse hiçbir zaman genel bir şekilde yazılmadığından, genellikle yeni bir kullanıcı adı oluşturmak ve ardından kullanıcının dosyalarını ve verilerini yeni hesaba geçirmek en iyisidir.


1
Yorumunuz için teşekkürler. Yeni kullanıcı yarattım ve eskisine göre kullanıcı / grup ve ev dizinini değiştirdim. her şey yolunda çalışıyor gibi görünüyor. Bu yöntemin de sorunlara neden olabileceğini düşünüyor musunuz?
CorpusCallosum

3

Usermod komutunu deneyin .

exec sudo su
usermod --login newname oldname

Sadece ne yaparsan yap, sudo yap. Sudo su yapmak komutları düzgün bir şekilde kaydetmez.
Keith Twombley

3

Değiştirebilirsin; bkz. Kullanıcı adımı nasıl değiştiririm? AskUbuntu'da. Bu talimatlar benim için iyi çalıştı. Konfigürasyonunuzu korumak için, eski ev dizininiz için bu sorunun cevabında açıklandığı gibi bir bağlantı yapın.


3

Kullanıcı adını ve ana dizini değiştirmek için usermod kullanın . Peter kullanıcısını paul olarak değiştir:

usermod -l paul peter
grep paul /etc/passwd /etc/shadow       # check

Giriş dizinini değiştirin ve her şeyi oraya taşıyın (gerekirse oluşturuldu)

usermod -m -d /home/paul paul
grep paul /etc/passwd               # check

Grup adını değiştirin , ancak önce başka bir grup oluşturmanızı gerektirdiği için usermod kullanmayın (örn. GID 1001) ve $ HOME dizini içindeki her şey için GID'yi güncellese de, aramanız ve değiştirmeniz gerekir. eski grup sahipliğine sahip başka bir yerde dosya ve dizin. Bunun yerine, sadece grup adını manuel olarak değiştirin.

nano /etc/group

ve değişim

peter:x:1000:

için

paul:x:1000:

Cron, at ve UID yerine kullanıcı adını kullanan diğer hizmetler tarafından kullanılan dosya adlarını değiştirmeniz gerekecektir . kullanım

find /var -name "*peter*"

bu dosyaları bulmak için.

Posta işleme uygulamalarınız gibi bazı servisler tarafından kullanılan yapılandırma dosyalarını da değiştirmeniz gerekecektir .

Son olarak, "/ home / peter /" kullanarak komut dosyalarının düzenlenmesi gerekir. "/ Home / peter /" oluşumunu "$ HOME" olarak değiştirin.

Kullanıcı kimliklerini değiştirmek çok fazla bir iş değil, sadece kapsamlı olmanız gerekiyor.


Bu, kullandığımla aynı yaklaşım olduğu için geliştirildi (GID’nin korunmasında aynı nedenlerle). BTW, aslında iki usermodkomutu bir araya getirebilir ve /etc/gshadowbirlikte düzenlemeyi de unutmamalısınız /etc/group; İkisi GNU sed ile değiştirilebilir: sudo sed -i 's/oldname/newname/g' /etc/{group,gshadow}- veya hala daha iyisi sudo groupmod -n newname oldname. Kullanıcının crontab adını (varsa) el ile değiştirmek zorunda olmak gibi diğer bazı hedefleri vurgulamak için aferin.
Anthony G - Monica

Bunun için hızlı ek ... bunu yaparken giriş yapamazsınız. Sudoers grubunun bir parçası olan yeni geçici kullanıcı olun, bununla giriş yapın, değişiklikleri yapın, yeni geçici hesaptan giriş yapın, yeniden adlandırılana giriş yapın ve geçici hesabı silin.
Janus
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.