Cara yang tepat untuk mengubah nama pengguna di Ubuntu atau linux apa pun

26

Saya menggunakan Ubuntu 12.04 dan membuat beberapa penyesuaian. Saya juga akan membuatnya menjadi iso baru yang dikustomisasi ubuntu.

Yang ingin saya tanyakan adalah bagaimana cara mengubah nama pengguna saya. Ada banyak konfigurasi di folder rumah saya saat ini. Jadi saya tidak ingin mengacaukan perubahan nama pengguna.

Jadi, apakah ada praktik terbaik atau alur kerja untuk melakukan itu?

Corpus callosum
sumber
Direktori home Anda sering dibuat dengan nama pengguna Anda, tetapi Anda dapat mengubah nama pengguna tanpa mengubah direktori home dengan mengubah elemen pertama dari entri di / etc / passwd dan / etc / shadow. Pastikan Anda dapat login sebagai root (bukan hanya sudo dari login pengguna Anda) jika Anda melakukan kesalahan.
Anthon
bagaimana jika saya ingin mengubah nama direktori home? dan apa sebenarnya yang dikatakan oleh elemen pertama?
CorpusCallosum

Jawaban:

28

Cara yang benar ? Katakanlah Anda ingin mengubah 'peter' pengguna menjadi 'paul'.

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

Ini mengubah nama, grup, direktori home dan kepemilikan dan grup dari direktori itu ke yang baru, bersama dengan semua file. Anda berakhir dengan pengguna yang tidak dapat dibedakan dari yang awalnya dibuat sebagai 'paul'.

Cara lain adalah dengan mengedit bidang pertama dari entri peter di file /etc/passwddan /etc/shadow. Kemudian ubah setiap kemunculan 'peter' menjadi 'paul' di /etc/group. Kemudian ganti nama direktori home dari /home/petermenjadi /home/paul. Dan kemudian chown -R paul /home/peteruntuk mendapatkan kepemilikan dan pengelompokan direktori dan semua file dan dir di bawahnya untuk memiliki yang baru.

Steve Bergman
sumber
3
Tidak perlu untuk chown jika Anda telah mengedit / etc / {passwd, shadow, group} - pemilik inode & grup secara numerik
Graham Nicholls
5

Saya akan merekomendasikan untuk tidak mencoba mengubah nama pengguna. Ini umumnya menimbulkan masalah ketika nama pengguna direferensikan secara statis dalam file konfigurasi dalam bentuk direktori home pengguna /home/<username>,. Ini hampir tidak pernah ditulis dengan cara umum sehingga biasanya hanya membuat nama pengguna baru dan kemudian memigrasikan file dan data pengguna ke akun baru.

slm
sumber
1
Terima kasih atas komentarnya. Saya membuat pengguna baru dan mengubah direktori userid / grup dan home tentang yang lama. sepertinya semuanya bekerja dengan baik. Apakah Anda pikir metode ini juga dapat menyebabkan masalah?
CorpusCallosum
3

Coba perintah usermod .

exec sudo su
usermod --login newname oldname
dgmltn
sumber
Lakukan saja 'sudo apa pun yang akan Anda lakukan'. Melakukan sudo su tidak akan mencatat perintah dengan benar.
Keith Twombley
3

Anda bisa mengubahnya; lihat Bagaimana cara mengubah nama pengguna saya? di AskUbuntu. Instruksi itu bekerja dengan baik untuk saya. Untuk mempertahankan konfigurasi Anda, cukup buat symlink untuk direktori home Anda seperti yang dijelaskan dalam jawaban untuk pertanyaan itu.

z0r
sumber
3

Gunakan usermod untuk mengubah nama pengguna dan direktori home . Ubah peter pengguna ke paul:

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

ubah direktori home dan pindahkan semua yang ada di sana (dibuat jika perlu)

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

Ubah nama grup , tetapi jangan gunakan usermod karena mengharuskan Anda untuk membuat grup lain terlebih dahulu (mis. GID 1001) dan meskipun itu akan memperbarui GID untuk semua yang ada dalam direktori $ HOME, Anda harus mencari dan mengubah file dan direktori di tempat lain dengan kepemilikan grup lama. Sebagai gantinya, cukup ganti nama grup secara manual.

nano /etc/group

dan berubah

peter:x:1000:

untuk

paul:x:1000:

Anda harus mengubah nama file yang digunakan oleh cron, at, dan layanan lain yang menggunakan nama pengguna alih-alih UID. Menggunakan

find /var -name "*peter*"

untuk menemukan file-file ini.

Anda juga harus mengubah file konfigurasi digunakan oleh beberapa layanan seperti Anda mengirim aplikasi penanganan.

Akhirnya, skrip menggunakan "/ home / peter /" perlu diedit. Ubah kejadian "/ home / peter /" menjadi "$ HOME".

Tidak banyak pekerjaan untuk mengubah identitas pengguna, Anda hanya perlu teliti.

Duane
sumber
Terpilih karena ini adalah pendekatan yang sama yang saya gunakan (untuk alasan yang sama berkaitan dengan menjaga GID). BTW, Anda sebenarnya dapat menggabungkan dua usermodperintah menjadi satu dan Anda juga harus ingat untuk mengedit /etc/gshadowbersama /etc/group; Keduanya dapat diubah dengan GNU sed: sudo sed -i 's/oldname/newname/g' /etc/{group,gshadow}- atau lebih baik lagi dengan sudo groupmod -n newname oldname. Dilakukan dengan baik untuk menyoroti beberapa gotcha lainnya seperti harus secara manual mengubah nama crontab pengguna (jika mereka memilikinya).
Anthony G - keadilan untuk Monica
Tambahan cepat untuk ini ... Anda tidak dapat login saat melakukan ini. Buat pengguna temp baru yang merupakan bagian dari grup sudoers, login dengan itu, buat perubahan, logout dari acc temp baru, login ke yang diubah namanya, dan hapus akun temp.
Janus