Whoami: không thể tìm thấy tên cho id người dùng 0


8

Khi tôi chạy whoaminó nói:

whoami: không thể tìm thấy tên cho id người dùng 0

/etc/passwdTập tin của tôi trông như thế này:

root::0:0:root:/root:/bin/bash

/ Vv / passwd của bạn bị hỏng? Bạn có thể đăng nội dung
daisy

Bạn là gì id commandtrong current shellkhi bạn nhận được whoami ?.
Tiếng Ba Tư

7
(1) Phân phối linux nào? (2) Sản lượng của pwckvà là grpckgì? (3) Tập tin /etc/shadowcó tồn tại không?
John Siu

5
Ngoài ra, bạn đã thiết lập (hoặc cố gắng) các dịch vụ thư mục thuộc loại nào đó (LDAP, NIS, v.v.) chưa? Bạn đã chạm vào /etc/nsswitch.conf?
derobert

1
Tôi đang nghĩ nsswitch.confnhư derobert đã đề cập. Nhưng tôi đã thấy nscdnguyên nhân tào lao kỳ lạ như thế này trước đây. Nếu nó đang chạy, hãy thử dừng nó. Nếu nó không chạy, hãy thử khởi động nó (mặc dù khởi động nó nếu nó không chạy là một lỗi cũ của RHEL không còn tồn tại nữa).
Patrick

Câu trả lời:


7

Thông báo thiếu x

Đây là nội dung của tôi trên Linux Mint với kernel 3.8.0-35-generic

root:x:0:0:root:/root:/bin/zsh

xnghĩa là thông tin mật khẩu thực tế đang được lưu trữ trong một tệp mật khẩu bóng riêng biệt, theo thời gian/etc/shadow

https://en.wikipedia.org/wiki/Passwd


6

Tôi sẽ khuyên bạn nên kiểm tra các quyền trên /etc/passwd/etc/group. Nếu chúng không được đặt thành 644 ( -rw-r--r--), thì hãy chạy:

chmod 644 /etc/passwd; chmod 644 /etc/group


vẫn nói không thể tìm thấy tên cho id người dùng 0
gabemai

6

chỉ nói kinh nghiệm của tôi

0. vấn đề

trên thiết bị hỏng:

cat /etc/passwd
root:x:0:0:root:/root:/bin/bash

whoami
whoami: cannot find name for user ID 0

trên thiết bị bình thường:

whoami
root

1. nghiên cứu

cố gắng tìm lý do:

strace whoami 2>&1 | grep -E '/etc|/lib'
...
open("/lib/arm-linux-gnueabi/libnss_compat.so.2", O_RDONLY) = 3
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/arm-linux-gnueabi/libnsl.so.1", O_RDONLY) = 3
open("/etc/ld.so.cache", O_RDONLY)      = 3
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/arm-linux-gnueabi/libnss_nis.so.2", O_RDONLY) = 3
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/arm-linux-gnueabi/libnss_files.so.2", O_RDONLY) = 3
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3

tìm thấy nó cần những * .so:

/lib/arm-linux-gnueabi/libnss_compat.so.2
/lib/arm-linux-gnueabi/libnsl.so.1
/lib/arm-linux-gnueabi/libnss_nis.so.2
/lib/arm-linux-gnueabi/libnss_files.so.2

// tất cả đều đến từ libc6gói, tôi làm việc với thiết bị linux linux.

2. độ phân giải

tôi sao chép chúng vào thiết bị hỏng, sau đó whoamihoạt động đúng,

và bash nhắc I have no name!@localhostcố định.


1

Kiểm tra xem mỗi và mỗi dòng trong /etc/passwdcó chính xác bảy trường.


0

Tôi biết điều đó đúng thời gian, nhưng lý do có thể được coreutilsbiên soạn mà không cần hỗ trợ ACL. Kiểm tra nó và xây dựng lại gói nếu cầ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.