pam_appl.h и pam_misc.h отсутствуют в исходном коде rshd.c

Я работаю на ОС CentOS 5.5.

Он показывает ошибку, что отсутствуют файлы /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

Я много искал, но не получил никаких полезных оборотов, которые дают эти файлы.

Некоторые ссылки здесь. Но не подходит для 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 ответа

Решение

В данный момент у меня нет 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 Команды вы должны будете ввести свой пароль.

Если кто-то ищет Debian/ Ubuntu, попробуйте это sudo apt-get install libpam0g-dev

Вам нужен rpm для pam-devel, доступный для 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

Если это не так, пожалуйста, сообщите об ошибках компилятора.

Для людей, которые находят это через поисковые системы, на CentOS 7 у меня сработало следующее:

yum install pam-devel
Другие вопросы по тегам