passwd: symbol lookup error: passwd: undefined symbol: selinux_check_access
时间: 2023-08-26 10:17:57 浏览: 181
这个错误提示意味着在`passwd`程序运行时,它无法找到一个名为`selinux_check_access`的符号。这通常是由于动态链接库的问题引起的,可能是因为`libselinux`(包含`selinux_check_access`函数)没有正确加载或链接到`passwd`程序中。
你可以尝试以下步骤来解决该问题:
1. 确认`libselinux`库已被正确安装。你可以使用以下命令检查:
```
rpm -q libselinux
```
如果该库未安装,请使用以下命令安装:
```
sudo yum install libselinux
```
2. 检查`/etc/nsswitch.conf`文件中是否正确配置了`passwd`的相关条目。你可以使用以下命令检查:
```
grep passwd /etc/nsswitch.conf
```
如果结果为`passwd: files`,则表示`passwd`程序将从`/etc/passwd`文件中读取用户信息。如果你使用了其他用户信息源,例如LDAP或NIS,请相应地修改`/etc/nsswitch.conf`文件。
3. 确认`/usr/libexec/authconfig/authinfo`文件已正确配置。你可以使用以下命令检查:
```
cat /usr/libexec/authconfig/authinfo
```
如果其中包含`USESELINUX=yes`,则表示`passwd`程序将检查SELinux策略以确定用户是否可以更改其密码。如果你没有启用SELinux或不需要使用SELinux策略,请相应地修改该文件。
如果以上步骤都没有解决问题,请尝试重新安装`libselinux`库,或者尝试运行`ldconfig`命令以刷新动态链接库缓存。
阅读全文