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