Tôi thay đổi dòng cuối cùng trong / etc / passwd và tôi không thể sử dụng sudo


15

Đây là những gì tôi đã làm:

  1. Thay đổi tên người dùng ở dòng cuối cùng: tinythànhabc

    • tiny@tty7:~$ sudo vim /etc/passwd
    • Thay đổi cái này:
      tiny:x:1000:1000:tiny,,,:/home/tiny:/bin/bash
      thành cái này:
      abc:x:1000:1000:tiny,,,:/home/tiny:/bin/bash
  2. tiny@tty7:~$ sudo vim /etc/shadow

    • nó cho thấy: [sudo] passwork for abc:

    • Tôi đã không thay đổi mật khẩu nhưng nó không thể đăng nhập root!

    • Tôi gõ Ctrl+ Alt+ F1đến tty1nhưng không nhỏ hoặc abc không thể đăng nhập bằng mật khẩu của tôi

và tôi cố gắng nhìn vào ls ~ -la, ở đây nó hiển thị như thế này:

drwxr-xr-x 28 abc tiny 4096 Apr 6 03:04 .

Làm thế nào tôi có thể đăng nhập root? và tại sao tên người dùng nhanh chóng tiny@tty7vẫn còn nhỏ trong khi sudo nó hiển thị mật khẩu của abc?

Câu trả lời:


18

Lý do bạn bị kẹt sau khi chỉnh sửa là /etc/shadowtệp chứa mục nhập mật khẩu tinynhưng không có mục nhập abc, trong khi /etc/passwdtệp chứa mục nhập abcvà không dành cho tiny. Khi sudonhìn, nó xác định chính xác bạn (theo tệp mật khẩu) abcdựa trên UID của quá trình bạn đang chạy, nhưng khi xem xét để so sánh những gì bạn đã nhập với mật khẩu được mã hóa (băm) được lưu trữ /etc/shadow, nó không thể Tôi không tìm thấy một mục cho abc, vì vậy nó đã phải báo cáo sự thất bại.

Như shaddy đã nói trong câu trả lời của mình , đừng chỉnh sửa mật khẩu hoặc tập tin bóng bằng tay. Nếu bạn phải phá vỡ quy tắc, sau đó chỉnh sửa cả hai trong một lệnh gọi vimvà không thoát ra vimcho đến khi bạn chứng minh rằng các thay đổi đủ để hoạt động bằng cách sử dụng một cửa sổ đầu cuối khác và lưu các bản sao lưu của các tệp trước đó bạn bắt đầu hack chúng và xem xét lại lý do tại sao bạn vi phạm các quy tắc ngay từ đầu, bởi vì đó có thể không phải là một ý tưởng tốt.


22

Bạn KHÔNG BAO GIỜ chỉnh sửa tệp passwd của mình theo cách thủ công vì bạn sẽ làm mọi thứ rối tung lên.

Cách thích hợp để thay đổi tên người dùng của bạn là:

usermod -l newUsername oldUsername

Sau đó thay đổi thư mục nhà:

usermod -d /home/newHomeDir -m newUsername

Để thay đổi mật khẩu, bạn nên sử dụng:

sudo passwd yourusername

Tôi khuyên bạn nên hoàn nguyên lại tệp passwd của mình hoặc nếu bạn không thể chỉnh sửa tệp vì bạn không thể đăng nhập bằng root - sau đó khởi động với cd trực tiếp và hoàn nguyên lại tệp. Sau đó sử dụng đúng cách.


1
cảm ơn bạn ~ Tôi nghĩ khó khăn nhất là đăng nhập bằng root sau đó tôi khởi động lại, chọn chế độ phục hồi, root và sau đó lấy lại tệp passwd của tôi ~ nó hoạt động ~
tinyork

0

Sử dụng: vipw

Tôi đã luôn sử dụng nó trên FreeBSD và chỉ xác nhận rằng bạn cũng có thể sử dụng nó cho Ubuntu. Vui lòng đọc trang này: Ubuntu Man Page cho vipw


-3

thủ tục thay đổi tên người dùng của bạn (nhưng không phải là uid) bằng tay:

  1. kiểm tra đầu của bạn, khi điều đó không tiến hành bước hai.
  2. chỉnh sửa tập tin bóng trùng lặp dòng người dùng với tên người dùng mới.
  3. chỉnh sửa nhóm, sudoers, cho phép quyền tên người dùng mới, giữ cũ
  4. tượng trưng liên kết thư mục nhà đến tên mới
  5. chỉnh sửa tập tin passwd thay đổi tên người dùng và thư mục nhà
  6. chỉnh sửa bóng, sudoers, nhóm để xóa các mục cũ chúng tôi đã giữ ở bước ba
  7. chỉnh sửa bí danh và các tham chiếu khác cho tên người dùng cũ.
  8. đăng xuất, chuyển sang bảng điều khiển văn bản (bước tiếp theo sẽ không hoạt động nếu có bất kỳ chương trình nào đang chạy trong thư mục chính của người dùng, bao gồm cả trình quản lý cửa sổ)
  9. cd vào một thư mục trên thư mục nhà của bạn.
  10. xóa liên kết tượng trưng và đổi tên thư mục nhà.
  11. đăng xuất và đăng nhập như bình thường.

Mọi thứ đơn giản hơn nhiều để thay đổi tên người dùng, mặc dù vẫn không đơn giản.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.