Beberapa waktu yang lalu ketika saya menginstal Ubuntu saya memilih nama pengguna yang agak bodoh untuk akun saya yang tidak ingin saya gunakan lagi.
Bagaimana cara mengubah ini (termasuk nama direktori rumah saya, dan nama di terminal) tanpa kehilangan pengaturan untuk aplikasi?
Bagaimana cara saya menjaga izin dan kunci saya untuk berbagai otentikasi (mis. Email, SSH, GPG, dan lainnya)?
Pengaturan apa yang mungkin hilang jika saya mengubah nama pengguna saya?
permissions
keyrings
gnupg
ssh
user-profile
Takkat
sumber
sumber
Jawaban:
Sistem operasi mirip Unix memisahkan nama pengguna dari identitas pengguna, sehingga Anda dapat dengan aman mengubah nama tanpa memengaruhi ID. Semua izin, file, dll terikat pada identitas Anda (uid), bukan nama pengguna Anda.
Untuk mengelola setiap aspek dari basis data pengguna, Anda menggunakan
usermod
alat ini.Untuk mengubah nama pengguna (mungkin yang terbaik adalah melakukannya tanpa login):
Namun ini, tidak mengganti nama folder rumah.
Untuk mengubah folder-rumah, gunakan
setelah Anda mengubah nama pengguna.
Misalnya, Anda bisa logout, drop ke konsol ( Ctrl+ Alt+ F1), dan
sudo su -
menjadi akar sejati (sebagai lawansudo -s
, di mana $ HOME masih / home / namaAnda.) Mungkin Anda juga harus membunuh beberapa proses masih berjalan dari pengguna ini pertama. Untuk melakukannya, masukkanps -u username
, cari PID yang cocok dan bunuh merekakill PID-number
.Pembaruan: seperti yang telah disebutkan, beberapa file dapat merujuk ke direktori home lama Anda. Anda dapat menyimpan symlink untuk kompatibilitas ke belakang, misalnya
ln -s /home/newname /home/oldname
atau Anda dapat mengubah konten file dengansed -i.bak 's/*oldname*/*newname*/g' *list of files*
Ini menciptakan cadangan untuk setiap file dengan ekstensi .bak.Beberapa informasi tambahan untuk pengguna yang tidak begitu berpengalaman seperti saya:
Karena saya hanya memiliki SATU akun pengguna (administrator), itu tidak akan membiarkan saya mengubah nama pengguna ("Anda sudah masuk" adalah tanggapan di TTY1 ( Ctrl+ Alt+ F1). Untuk mendapatkan sekitar ini:
Login dengan kredensial lama Anda dan tambahkan pengguna baru, misalnya "sementara" di TTY1:
atur kata sandi.
Izinkan pengguna sementara menjalankan sudo dengan menambahkan pengguna ke grup sudo:
exit
.exit
(sampai Anda mendapatkan prompt login)Hapus pengguna dan folder sementara:
sumber
grep -IRFl /home/username ~
dan Anda akan melihat berapa banyak referensi ke direktori home Anda yang disimpan di sana./home/.ecryptfs/oldusername/.ecryptfs/Private.mnt
untuk menunjuk ke folder rumah baru Anda, jika tidak, Anda tidak akan dapat masuk melalui Unity.sudo usermod -d /home/edge -m edge
hasil:usermod: Directory /home/empedokles could not be renamed in /home/edge
yaitu langkah 4 tidak akan berhasil.sudoers
dengan polosnano
. Selalu gunakanvisudo
.Untuk menyatukan semuanya:
Tetapkan kata sandi untuk akun "root".
Keluar.
Masuk menggunakan akun "root" dan kata sandi yang telah Anda tetapkan sebelumnya.
Ubah nama pengguna dan folder beranda menjadi nama baru yang Anda inginkan.
Ubah nama grup menjadi nama baru yang Anda inginkan.
Kunci akun "root".
Jika Anda menggunakan ecryptfs (direktori home terenkripsi). Pasang direktori terenkripsi Anda menggunakan
ecryptfs-recover-private
dan mengedit<mountpoint>/.ecryptfs/Private.mnt
untuk mencerminkan direktori home baru Anda.Keluar.
Tekan Ctrl+ Alt+ F7.
Dan sekarang Anda dapat masuk menggunakan nama pengguna baru Anda.
sumber
usermod -l
Anda mendapatkanuser <oldname> is currently used by process <processno>
, Anda dapat menemukan proses itu (mungkin daemon, atau tmux / layar) menggunakanps aux | grep <processno>
. Anda mungkin ingin menghentikan proses itu dengan anggun, jika tidak, Anda bisakill <processno>
.Mulai ulang dalam mode pemulihan dan buka shell prompt root ("Drop to root shell prompt")
Pertama remount root
Untuk mengubah nama pengguna dan nama folder rumah,
Untuk nama grup,
sumber
usermod -l <newname> -d /home/<newname> -m <oldname>
ini memberi saya kesalahanusermod: user oldusername is currently used by process 3170
dan jika saya membunuh proses masih memberi saya kesalahan yang sama. menggunakan ubuntu 13.10Di Ubuntu 13.10, 14.04, 16.04:
sumber
Saat menerima,
usermod: can't change /etc/password
jalankan saja perintah berikut:Dalam menjalankan konsol pemulihan root:
Kemudian jalankan kembali:
sumber
Jawaban yang tercantum di sini oleh @ karthick87 berfungsi dengan baik tetapi di sini adalah apa yang akan saya lakukan hanya untuk aman dan menghindari semua gangguan:
sumber
ketika Anda melakukannya,
usermod -l <newname> -d /home/<newname> -m <oldname>
Anda akan mendapatkanuseradd: can't change /etc/passwd
pesan kesalahan untuk menghindari ini tambahkan sajasudo --
perintah di atas sepertidan
sumber
Karena tidak semua PC memiliki
usermod
aplikasi, Anda dapat melakukannya secara manual. Pada root terbuka/etc/passwd
untuk mengedit:dan ubah nama pengguna di awal baris:
untuk:
kemudian jika Anda bekerja dengan login root saja, dan jika Anda telah login ke
user
, logoff, dan login kembali.sumber
usermod
perintah) dan kata sandi pengguna tidak lagi diterima.usermod
menginstal Anda rusak karena itu adalah bagian daripasswd
paket, yang diperlukan .