私が実行すると、whoami
次のように言います。
whoami:ユーザーID 0の名前が見つかりません。
私の/etc/passwd
ファイルは次のとおりです。
root::0:0:root:/root:/bin/bash
答え1
私の経験を教えてください
////etc/passwd、/etc/shadowを確認した後
0.質問
損傷した装置の場合:
cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
そして
whoami
whoami: cannot find name for user ID 0
一般的なデバイスでは:
whoami
root
1. 研究
理由を調べてください:
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
*.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
libc6
// パッケージ全体に arm linux デバイスを使用します。
2. ソリューション
故障した機器にコピーしたら元気になりwhoami
ました。
BashプロンプトI have no name!@localhost
が修正されました。
答え2
/etc/passwd
と権限を確認することをお勧めします/etc/group
。 644(-rw-r--r--
)に設定されていない場合は、次を実行します。
chmod 644 /etc/passwd; chmod 644 /etc/group
答え3
欠けている部分があるので注意してくださいx
これはカーネル3.8.0-35-genericを使用するLinux Mintにあります。
root:x:0:0:root:/root:/bin/zsh
これはx
、実際のパスワード情報が通常別々のシャドウパスワードファイルに保存されることを意味します。/etc/shadow
答え4
私は時が来たことを知っていますが、これがcoreutils
ACLサポートなしでコンパイルされる理由です。これを確認し、必要に応じてパッケージを再構築してください。