Pertanyaan Bagaimana cara mengubah nama pengguna saya?


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 menjaga izin dan kunci saya untuk berbagai otentifikasi (mis. Email, SSH, GPG, dan lainnya)?
Pengaturan apa yang mungkin hilang jika saya mengubah nama pengguna saya?


262
2018-04-08 08:25


asal




Jawaban:


Sistem operasi mirip Unix memisahkan nama pengguna dari identitas pengguna, sehingga Anda dapat dengan aman mengubah namanya tanpa mempengaruhi ID. Semua izin, file, dll terkait dengan identitas Anda (uid), bukan nama pengguna Anda.

Untuk mengelola setiap aspek dari basis data pengguna, Anda menggunakan usermod alat.

Untuk mengubah nama pengguna (mungkin lebih baik untuk melakukan ini tanpa login):

sudo usermod -l newUsername oldUsername

Namun ini, tidak mengubah nama folder rumah.

Untuk mengubah home-folder, gunakan

sudo usermod -d /home/newHomeDir -m newUsername

setelah Anda mengubah nama pengguna.

Misalnya, Anda dapat keluar, turun ke konsol (Ctrl+Alt+F1), dan sudo su - untuk menjadi root sejati (sebagai lawan dari sudo -s, di mana $ HOME masih / home / yourname.) Mungkin Anda juga harus membunuh beberapa proses yang masih berjalan dari pengguna ini terlebih dahulu. Untuk melakukannya, masukkan ps -u username, cari PID yang cocok dan bunuh mereka dengan kill PID-number.

Pembaruan: seperti yang disebutkan di atas, beberapa file mungkin merujuk pada direktori rumah lama Anda. Anda dapat menyimpan symlink untuk kompatibilitas ke belakang, misalnya ln -s /home/newname /home/oldname atau Anda dapat mengubah isi file dengan sed -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 respons dalam TTY1 (Ctrl+Alt+F1). Untuk menyiasati ini:

  1. Masuk dengan kredensial lama Anda dan tambahkan pengguna baru, mis. "sementara" di TTY1:

    sudo adduser temporary
    

    mengatur kata sandinya.

  2. Izinkan pengguna sementara untuk menjalankan sudo dengan menambahkan pengguna ke grup sudo:

    sudo adduser temporary sudo
    
  3. Logout dengan perintah exit.
  4. Kembali ke tty1: Login dengan akun pengguna dan kata sandi 'sementara'. Ubah nama pengguna dan folder Anda seperti yang disebutkan di atas. exit (sampai Anda mendapatkan prompt login)
  5. Kembali ke TTY7 (Ctrl+Alt+F7) untuk masuk pada layar desktop GUI / normal dan melihat apakah ini berfungsi.
  6. Hapus pengguna dan folder sementara:

    sudo deluser temporary
    sudo rm -r /home/temporary
    

257
2018-04-08 08:48



Sayangnya ini tidak benar untuk file konfigurasi yang berbeda di bawah $ HOME, coba jalankan sesuatu seperti grep -IRFl /home/username ~ dan Anda akan melihat berapa banyak referensi ke direktori home Anda yang disimpan di sana. - arrange
Adalah perbaikan sederhana - Cukup gunakan editor User Accounts dalam kesatuan, diikuti dengan restart. - Steve Koch
Bagi mereka dengan folder rumah terenkripsi, Anda harus mengedit /home/.ecryptfs/oldusername/.ecryptfs/Private.mnt untuk mengarahkan ke folder rumah baru Anda, jika tidak Anda tidak akan dapat masuk melalui Unity. - raphael
sudo usermod -d /home/edge -m edge hasil: usermod: Directory /home/empedokles could not be renamed in /home/edge yaitu langkah 4 tidak akan berfungsi. - empedokles
@JTC tak pernah sunting sudoers dengan polos nano. Selalu gunakan visudo. - styrofoam fly


Untuk menggabungkan semuanya:

  1. Di layar mulai tekan Ctrl+Alt+F1.
  2. Masuk menggunakan nama pengguna dan kata sandi Anda.
  3. Tetapkan kata sandi untuk akun "root".

    sudo passwd root
    
  4. Keluar.

    exit
    
  5. Masuk menggunakan akun "root" dan kata sandi yang telah Anda set sebelumnya.

  6. Ubah nama pengguna dan folder rumah ke nama baru yang Anda inginkan.

    usermod -l <newname> -d /home/<newname> -m <oldname>
    
  7. Ubah nama grup menjadi nama baru yang Anda inginkan.

    groupmod -n <newgroup> <oldgroup>
    
  8. Kunci akun "root".

    passwd -l root
    
  9. Jika Anda menggunakan ecryptfs (direktori rumah terenkripsi). Pasang direktori terenkripsi Anda menggunakan ecryptfs-recover-privatedan edit <mountpoint>/.ecryptfs/Private.mnt untuk mencerminkan direktori rumah baru Anda.

  10. Keluar.

    exit
    
  11. tekan Ctrl+Alt+F7.

Dan sekarang Anda dapat masuk menggunakan nama pengguna baru Anda.


90
2017-07-06 09:43



Jika setelah usermod -l  kamu mendapatkan user <oldname> is currently used by process <processno>, Anda dapat menemukan proses itu (mungkin daemon, atau tmux / layar) menggunakan ps aux | grep <processno>. Anda mungkin ingin menghentikan proses itu dengan anggun, jika tidak Anda bisa kill <processno>. - RedPixel
Terima kasih telah menuliskan komentar ini. Itu sangat berguna. Dua hal yang mungkin disebutkan sekalipun. Setelah langkah 4 saya reboot sehingga saya tidak akan mendapatkan pesan kesalahan pada langkah 6. Juga, setelah proses ini selesai, file / etc / passwd akan memiliki dan komentar ID yang cocok dengan nama pengguna lama. Ini akan menyebabkan layar masuk menampilkan nama login yang lama. Saya tidak dapat menemukan cara yang layak untuk memperbaikinya dari baris perintah, tetapi saya memperbaikinya dengan masuk ke akun pengguna, pergi ke pengaturan akun dan mengubah "Nama Login" ke nama pengguna. Ini memperbarui file / etc / passwd dan memperbaiki masalah. - Jibbers
Ini adalah cara paling mudah dan tolol untuk melakukannya. Lebih baik reboot setelah langkah 4 sebagai @Jibbers disarankan. - Yerke
Saya menyebutkan bahwa "bookmark di jendela peramban File" sekarang mengarah ke folder lama, jadi saya harus menghapus bookmark itu. - ollydbg23
Tidak akan bekerja. Jika Anda menekan Ctrl + Alt + F1 di awal, ia mencoba untuk masuk ke pengguna yang baru dibuat yang tidak memungkinkan. - empedokles


Restart dalam mode recovery dan pergi ke shell prompt root ("Drop ke prompt shell root")

Pertama, atur kembali akarnya

mount -o remount,rw /

Untuk mengubah nama pengguna dan nama folder asal,

usermod -l <newname> -d /home/<newname> -m <oldname>

Untuk nama grup,

groupmod -n <newgroup> <oldgroup>

24
2018-04-08 09:23



ketika saya gunakan usermod -l <newname> -d /home/<newname> -m <oldname> ini memberi saya kesalahan usermod: user oldusername is currently used by process 3170 dan jika saya membunuh proses itu masih memberi saya kesalahan yang sama. menggunakan ubuntu 13.10 - Waqas
JANGAN LAKUKAN INI JIKA DIREKTORI RUMAH ANDA DILALUI !!!! Saya mengikuti prosedur ini dan mengirim saya untuk perjalanan liar selama 2 jam ... Satu-satunya cara untuk pulih adalah melakukan prosedur ini lagi dan memasukkan kembali nama asli (yang tidak disukai). Masalah yang akan Anda hadapi adalah "Tidak bisa melakukan chdir ke mount titik" - Mike


(Menggunakan Ubuntu 13.10, 14.04, 16.04) Klik pada ikon "Pengaturan Sistem". Kemudian klik "Akun Pengguna". Akun administrator Anda harus ditampilkan. Klik pada tombol "Buka Kunci". Masukkan kata sandi pengguna Anda seperti yang diminta untuk memungkinkan perubahan pada akun Anda. Setelah dibuka, Anda dapat mengklik nama Pengguna lama Anda yang ingin Anda ubah dan ketik nama Pengguna baru untuk menggantikannya. Saat Anda mengetikkan nama baru, klik tombol "Kunci" untuk membuat perubahan permanen. Mulai ulang Ubuntu.


10
2017-07-07 22:45



Ini tidak mengubah nama pengguna untuk saya, hanya namanya. Nama pengguna lama masih muncul di terminal, dan sebagai direktori home dan grup (bahkan setelah reboot). - DougC


Saat menerima usermod: can't change /etc/password jalankan saja perintah berikut:

Dalam menjalankan konsol pemulihan root:

mount -o remount,rw /

Kemudian jalankan kembali:

usermod -l <newname> -d /home/<newname> -m <oldname>

3
2017-07-30 12:14





saat kamu melakukan usermod -l <newname> -d /home/<newname> -m <oldname> kamu akan mendapatkan useradd: can't change /etc/passwd pesan kesalahan untuk menghindari ini tambahkan saja sudo -- untuk perintah di atas seperti

sudo -- usermod -l <newname> -d /home/<newname> -m <oldname>

dan

sudo --  groupmod -n <newgroup> <oldgroup>

0
2017-08-06 06:12





Karena tidak semua PC memiliki usermod aplikasi Anda dapat melakukannya secara manual. Saat root terbuka /etc/passwd untuk mengedit:

sudo vim /etc/passwd

dan mengubah nama pengguna di awal baris:

user:x:500:501:username:home/user:/bin/bash

untuk:

newuser:x:500:501:username:home/user:/bin/bash

kemudian jika Anda bekerja dari root, cukup masuk, dan jika Anda telah masuk ke user, logoff, dan relogin.


-3
2017-12-16 13:15



Saya mencoba cara ini (sebelum saya menemukan usermod perintah) dan kata sandi pengguna tidak lagi diterima. - Ben Voigt
@BenVoigt tidak semua PC memiliki usermod - Малъ Скрылевъ
Ini Ubuntu! Jika tidak ada usermod pemasangan Anda rusak karena merupakan bagian dari passwd paket, yang mana wajib. - Auspex