11

我正在开发centOS 5.5 OS

它显示 /security/pam_appl.h 和 /security/misc.h 文件丢失的错误。

实际上我的 rshd.c 没有加载 PAM 模块,可能是通过放置这个库,它可以帮助我很好地工作我的 rshd。这就是我发布这个问题的原因。

错误:-

rshd.c:90:31: error: security/pam_appl.h: No such file or directory
rshd.c:91:31: error: security/pam_misc.h: No such file or directory

我搜索了很多,但没有得到任何提供这些文件的有用 rpm。

一些链接在这里。但不适合centOS。

帮我。告诉我如何克服这个问题。

编辑 1

您的第三个链接似乎很有用。当我尝试安装 pam-devel 时,它显示了一些错误。

当我跑

./configure --prefix=/usr \
            --sysconfdir=/etc \
            --docdir=/usr/share/doc/Linux-PAM-1.1.6 \
            --disable-nis &&
make

它检查一些变量,然后生成目标文件,但最后它显示,

make[3]: *** [pam_xauth.lo] Error 1
make[3]: Leaving directory `~/Linux-PAM-1.1.6/modules/pam_xauth'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `~/Linux-PAM-1.1.6/modules'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `~/Linux-PAM-1.1.6'
make: *** [all] Error 2

编辑第 2 号

当我按照您的命令进行操作时,最后会显示以下错误。

这个错误来了,当我跑 make && make install

pam_xauth.c:64:27: error: selinux/label.h: No such file or directory
pam_xauth.c: In function âpam_sm_open_sessionâ:
pam_xauth.c:616: error: âSELABEL_CTX_FILEâ undeclared (first use in this function)
pam_xauth.c:616: error: (Each undeclared identifier is reported only once
pam_xauth.c:616: error: for each function it appears in.)
pam_xauth.c:616: warning: initialization makes pointer from integer without a cast
make[3]: *** [pam_xauth.lo] Error 1
make[3]: Leaving directory `/root/Linux-PAM-1.1.6/modules/pam_xauth'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/root/Linux-PAM-1.1.6/modules'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/Linux-PAM-1.1.6'
make: *** [all] Error 2
4

4 回答 4

21

我目前没有 CentOS,但似乎这是一个常见问题。有关信息,请参阅此处,建议您安装 pam-devel,这样您就不必通过以下方式从源代码构建:

yum install pam-devel

似乎每次我找到一个问题与您的问题相同的站点时,解决方法就是安装它。我现在正在下载 CentOS 5.5 来试一试,但您是否只是尝试运行该命令?

如果您确实安装了它并且仍然找不到头文件,我会尝试一下:

cd /
sudo find . -name "pam_appl.h"
sudo find . -name "pam_misc.h"

可能它们已安装但没有进入您的标准包含路径,或者没有进入security/目录,在这种情况下,您需要移动它们或更改标头包含在代码中的方式。

请注意sudo您必须输入密码的命令。

于 2013-04-09T12:24:00.377 回答
17

如果有人正在寻找 debian/ubuntu,试试这个sudo apt-get install libpam0g-dev

于 2017-08-15T05:51:00.193 回答
3

您需要pam-devel的 rpm,可在此处获得 CentOS 。或者,您可以从此处下载 pam并在本地安装。

编辑: 要编译它,这在我的系统上运行良好:

wget http://linux-pam.org/library/Linux-PAM-1.1.6.tar.bz2
tar xvjf Linux-PAM-1.1.6.tar.bz2
cd Linux-PAM-1.1.6/
./configure --prefix=$HOME/local
make && make install

如果没有,请报告编译器错误。

于 2013-03-25T15:08:41.820 回答
1

对于通过搜索引擎找到此内容的人,以下在 CentOS 7 上对我有用:

yum install pam-devel
于 2015-08-27T21:53:43.880 回答