Câu hỏi Làm cách nào để thay đổi tên người dùng của tôi?


Một số thời gian trước khi tôi cài đặt Ubuntu tôi đã chọn một tên người dùng khá ngu ngốc cho tài khoản của tôi mà tôi không muốn sử dụng nữa.

Làm cách nào để thay đổi điều này (bao gồm tên thư mục chính của tôi và tên trong thiết bị đầu cuối) mà không mất cài đặt cho các ứng dụng?
Làm cách nào để giữ quyền và khóa của tôi cho việc xác thực khác nhau (ví dụ: email, SSH, GPG và hơn thế nữa)?
Cài đặt nào có thể bị mất nếu tôi thay đổi tên người dùng của mình?


262
2018-04-08 08:25


gốc




Các câu trả lời:


Các hệ điều hành giống Unix tách riêng tên người dùng khỏi danh tính người dùng, vì vậy bạn có thể thay đổi tên một cách an toàn mà không ảnh hưởng đến ID. Tất cả các quyền, tệp, v.v. đều được gắn với danh tính của bạn (uid), không phải tên người dùng của bạn.

Để quản lý mọi khía cạnh của cơ sở dữ liệu người dùng, bạn sử dụng usermod dụng cụ.

Để thay đổi tên người dùng (có thể là tốt nhất để làm điều này mà không cần đăng nhập):

sudo usermod -l newUsername oldUsername

Tuy nhiên, không đổi tên thư mục gốc.

Để thay đổi thư mục gốc, sử dụng

sudo usermod -d /home/newHomeDir -m newUsername

sau khi bạn thay đổi tên người dùng.

Ví dụ: bạn có thể đăng xuất, thả xuống bảng điều khiển (Ctrl+Alt+F1), và sudo su - trở thành gốc thực (trái ngược với sudo -s, nơi $ HOME vẫn là / home / yourname.) Có thể bạn cũng phải giết một số tiến trình đang chạy từ người dùng này trước. Để làm như vậy, hãy nhập ps -u username, tìm PID phù hợp và tiêu diệt chúng kill PID-number.

Cập nhật: như sắp xếp được đề cập, một số tệp có thể tham chiếu đến thư mục chính cũ của bạn. Bạn có thể giữ liên kết tượng trưng cho tính tương thích ngược, e g ln -s /home/newname /home/oldname hoặc bạn có thể thay đổi nội dung tập tin bằng sed -i.bak 's/*oldname*/*newname*/g' *list of files* Nó tạo bản sao lưu cho mỗi tệp có phần mở rộng .bak.

Một số thông tin bổ sung cho những người dùng không có kinh nghiệm như tôi:
Vì tôi chỉ có MỘT tài khoản người dùng (quản trị viên), nó sẽ không cho phép tôi thay đổi tên người dùng ("bạn đã đăng nhập" là phản hồi trong TTY1 (Ctrl+Alt+F1). Để giải quyết vấn đề này:

  1. Đăng nhập bằng thông tin đăng nhập cũ của bạn và thêm người dùng mới, ví dụ: "tạm thời" trong TTY1:

    sudo adduser temporary
    

    đặt mật khẩu.

  2. Cho phép người dùng tạm thời chạy sudo bằng cách thêm người dùng vào nhóm sudo:

    sudo adduser temporary sudo
    
  3. Đăng xuất với lệnh exit.
  4. Quay lại tty1: Đăng nhập bằng tài khoản và mật khẩu người dùng 'tạm thời'. Thay đổi tên người dùng và thư mục của bạn như đã đề cập ở trên. exit (cho đến khi bạn nhận được dấu nhắc đăng nhập)
  5. Quay lại TTY7 (Ctrl+Alt+F7) để đăng nhập trên màn hình GUI / màn hình bình thường và xem nó có hoạt động hay không.
  6. Xóa người dùng và thư mục tạm thời:

    sudo deluser temporary
    sudo rm -r /home/temporary
    

258
2018-04-08 08:48



Điều này không may là không đúng đối với các tệp cấu hình khác nhau trong $ HOME, hãy thử chạy một cái gì đó như grep -IRFl /home/username ~ và bạn sẽ thấy có bao nhiêu tham chiếu đến thư mục chính của bạn được lưu trữ ở đó. - arrange
Là một sửa chữa đơn giản - Chỉ cần phải sử dụng trình chỉnh sửa Tài khoản người dùng trong sự thống nhất, tiếp theo là khởi động lại. - Steve Koch
Đối với những người có thư mục gốc được mã hóa, bạn sẽ phải chỉnh sửa /home/.ecryptfs/oldusername/.ecryptfs/Private.mnt để trỏ đến thư mục chính mới của bạn, nếu không bạn sẽ không thể đăng nhập qua Unity. - raphael
sudo usermod -d /home/edge -m edge sản lượng: usermod: Directory /home/empedokles could not be renamed in /home/edge tức là bước 4 sẽ không hoạt động. - empedokles
@JTC không bao giờ chỉnh sửa sudoers với đồng bằng nano. Luôn luôn sử dụng visudo. - styrofoam fly


Để kết hợp tất cả lại với nhau:

  1. Tại màn hình bắt đầu bấm Ctrl+Alt+F1.
  2. Đăng nhập bằng tên người dùng và mật khẩu của bạn.
  3. Đặt mật khẩu cho tài khoản "root".

    sudo passwd root
    
  4. Đăng xuất.

    exit
    
  5. Đăng nhập bằng tài khoản "root" và mật khẩu bạn đã đặt trước đó.

  6. Thay đổi tên người dùng và thư mục chính thành tên mới mà bạn muốn.

    usermod -l <newname> -d /home/<newname> -m <oldname>
    
  7. Thay đổi tên nhóm thành tên mới mà bạn muốn.

    groupmod -n <newgroup> <oldgroup>
    
  8. Khóa tài khoản "root".

    passwd -l root
    
  9. Nếu bạn đang sử dụng ecryptfs (thư mục nhà được mã hóa). Gắn kết thư mục được mã hóa của bạn bằng ecryptfs-recover-privatevà chỉnh sửa <mountpoint>/.ecryptfs/Private.mnt để phản ánh thư mục chính mới của bạn.

  10. Đăng xuất.

    exit
    
  11. nhấn Ctrl+Alt+F7.

Và bây giờ bạn có thể đăng nhập bằng tên người dùng mới của mình.


90
2017-07-06 09:43



Nếu sau usermod -l  Bạn nhận được một user <oldname> is currently used by process <processno>, bạn có thể tìm thấy quy trình đó (có thể là daemon, hoặc tmux / màn hình) bằng cách sử dụng ps aux | grep <processno>. Bạn có thể muốn tạm dừng quá trình đó, nếu không bạn có thể kill <processno>. - RedPixel
Cảm ơn bạn đã đưa nhận xét này cùng nhau. Nó rất hữu ích. Hai điều có thể được đề cập mặc dù. Sau bước 4 tôi khởi động lại để tôi không nhận được thông báo lỗi ở bước 6. Ngoài ra, sau khi quá trình này hoàn tất, tệp / etc / passwd sẽ có và nhận xét ID khớp với tên người dùng cũ. Điều này sẽ làm cho màn hình đăng nhập hiển thị tên đăng nhập cũ. Tôi không thể tìm thấy một cách tốt để sửa chữa nó từ dòng lệnh, nhưng tôi đã sửa chữa nó bằng cách đăng nhập vào tài khoản người dùng, đi đến cài đặt tài khoản và thay đổi "Tên đăng nhập" thành tên người dùng. Điều này đã cập nhật tệp / etc / passwd và khắc phục sự cố. - Jibbers
Đây là cách dễ dàng và ngu ngốc nhất để làm điều đó. Khởi động lại tốt hơn sau bước 4 khi @Jibbers đề xuất. - Yerke
Tôi muốn đề cập rằng "dấu trang trong cửa sổ trình duyệt tệp" hiện trỏ đến các thư mục cũ, vì vậy tôi phải xóa các dấu trang đó. - ollydbg23
Sẽ không hoạt động. Nếu bạn nhấn Ctrl + Alt + F1 ở đầu nó cố gắng đăng nhập vào người dùng mới được tạo mà nó sẽ không cho phép. - empedokles


Khởi động lại trong chế độ phục hồi và đi đến trình bao nhắc gốc ("Thả vào dấu nhắc trình bao gốc")

Đầu tiên remount gốc

mount -o remount,rw /

Để thay đổi tên người dùng và tên thư mục chính,

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

Đối với tên nhóm,

groupmod -n <newgroup> <oldgroup>

24
2018-04-08 09:23



khi tôi sử dụng usermod -l <newname> -d /home/<newname> -m <oldname> điều này cho tôi lỗi usermod: user oldusername is currently used by process 3170 và nếu tôi giết quá trình này, nó vẫn cho tôi lỗi tương tự. sử dụng ubuntu 13.10 - Waqas
KHÔNG LÀM NÀY NẾU DANH SÁCH TRANG CHỦ CỦA BẠN ĐƯỢC ĐẢM BẢO !!!! Tôi làm theo quy trình này và nó đã gửi cho tôi một chuyến đi hoang dã 2 giờ ... Cách duy nhất để phục hồi là thực hiện lại thủ tục này và đặt tên ban đầu (không thích) trở lại. Vấn đề bạn sẽ có là "Không thể chdir vào mount điểm" - Mike


(Sử dụng Ubuntu 13.10, 14.04, 16.04) Nhấp vào biểu tượng "Cài đặt hệ thống". Sau đó nhấp vào "Tài khoản người dùng". Tài khoản quản trị viên của bạn sẽ được hiển thị. Nhấp vào nút "Mở khóa". Nhập mật khẩu người dùng của bạn theo yêu cầu để cho phép thay đổi tài khoản của bạn. Sau khi mở khóa, bạn có thể nhấp vào tên người dùng cũ của mình mà bạn muốn thay đổi và nhập tên người dùng mới để thay thế. Khi bạn đã nhập tên mới, hãy nhấp vào nút "Khóa" để thực hiện thay đổi vĩnh viễn. Khởi động lại Ubuntu.


10
2017-07-07 22:45



Điều này đã không thay đổi tên người dùng cho tôi, chỉ là tên. Tên người dùng cũ vẫn xuất hiện trong thiết bị đầu cuối, và như là thư mục chính và nhóm (ngay cả sau khi khởi động lại). - DougC


Khi nhận usermod: can't change /etc/password chỉ cần chạy các lệnh sau:

Trong bảng điều khiển khôi phục gốc chạy:

mount -o remount,rw /

Sau đó chạy lại:

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

3
2017-07-30 12:14





khi bạn làm usermod -l <newname> -d /home/<newname> -m <oldname> bạn sẽ nhận được useradd: can't change /etc/passwd thông báo lỗi để tránh điều này chỉ cần thêm sudo -- đến lệnh trên như

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

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

0
2017-08-06 06:12





Vì không phải tất cả các PC đều có usermod ứng dụng bạn có thể thực hiện thủ công. Kể từ gốc mở /etc/passwd chỉnh sửa:

sudo vim /etc/passwd

và thay đổi tên của người dùng ở đầu dòng:

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

đến:

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

sau đó nếu bạn làm việc của root chỉ cần đăng nhập, và nếu bạn đã đăng nhập vào user, đăng xuất và relogin.


-3
2017-12-16 13:15



Tôi đã thử cách này (trước khi tôi phát hiện ra usermod lệnh) và mật khẩu của người dùng không còn được chấp nhận nữa. - Ben Voigt
@BenVoigt không phải tất cả các chiếc đều có usermod - Малъ Скрылевъ
Đó là Ubuntu! Nếu nó không có usermod cài đặt của bạn bị hỏng vì nó là một phần của passwd gói, đó là cần thiết. - Auspex