导航:首页 > 源码编译 > pamso文件c语言编译

pamso文件c语言编译

发布时间:2022-12-19 06:34:21

编译php提示出错找不到libc-client.无法编译PHP怎么办

I. 安装devel库
yum install pam-devel libc-client libc-client-devel -y
如果使用了yum安装了libc-client,那么在以后编译参数--with-imap=/usr/local/php-imap中的路径应该删除,即--with-imap。
如果这样还不能解决,那么就需要手动编译imap2007f了!
II. 手动编译imap2007f
脚本取自 forum.directadmin.com/showthread.php?t=45434
在/usr/src目录下运行以下脚本,将会在/usr/local/php-imap目录下生成imap需要的库
#!/bin/sh
# Script for PHP-IMAP installation. 0.1b
# Written by Martynas Bendorius (smtalk)
CWD=`pwd`
OS=`uname`
#Is it a 64-bit OS?
B64=0
B64COUNT=`uname -m | grep -c 64`
if [ "$B64COUNT" -eq 1 ]; then
B64=1
LD_LIBRARY_PATH=/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
fi
if [ ! -e /usr/include/krb5.h ] && [ -e /etc/redhat-release ]; then
echo "Installing krb5-devel"
yum -y install krb5-devel
fi
VERSION=2007f
PROTOCOL=ftp
URL="${PROTOCOL}://ftp.cac.washington.e/imap/imap-${VERSION}.tar.Z"
FILENAME=imap-${VERSION}
TARBALL=${FILENAME}.tar.Z
echo "Downloading ${TARBALL}..."
wget -O ${TARBALL} ${URL}
tar xzf ${TARBALL}
cd ${FILENAME}
echo "Installing ${FILENAME}..."
if [ ${OS} = "FreeBSD" ]; then
if [ ${B64} -eq 0 ]; then
make bsf
else
make bsf EXTRACFLAGS=-fPIC
fi
else
perl -pi -e 's#SSLDIR=/usr/local/ssl#SSLDIR=/etc/pki/tls#' src/osdep/unix/Makefile
perl -pi -e 's#SSLINCLUDE=\$\(SSLDIR\)/include#SSLINCLUDE=/usr/include/openssl#' src/osdep/unix/Makefile
perl -pi -e 's#SSLLIB=\$\(SSLDIR\)/lib#SSLLIB=/usr/lib/openssl#' src/osdep/unix/Makefile
if [ ${B64} -eq 0 ]; then
make slx
else
make slx EXTRACFLAGS=-fPIC
fi
fi
echo "Copying files to /usr/local/php-imap"
mkdir -p /usr/local/php-imap/include
mkdir -p /usr/local/php-imap/lib
chmod -R 077 /usr/local/php-imap
cp -f c-client/*.h /usr/local/php-imap/include/
cp -f c-client/*.c /usr/local/php-imap/lib/
cp -f c-client/c-client.a /usr/local/php-imap/lib/libc-client.a
cd ..
rm -rf ${FILENAME}
if [ -d /usr/lib/x86_64-linux-gnu ] && [ ! -d /usr/kerberos/lib ]; then
mkdir -p /usr/kerberos
ln -s /usr/lib/x86_64-linux-gnu /usr/kerberos/lib
fi

exit 0;
III. 开始编译
下面是编译PHP的参数,如果出现问题,请参考编译PHP5.6 和 PHP编译错误的解决办法。
./configure --prefix=/usr/local/php --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-pdo-mysql --with-mysqli --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl --enable-ftp --with-imap=/usr/local/php-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm --with-fpm-user=www --with-fpm-group=www --disable-fileinfo
IV. 其他问题
在本次编译中,老高又遇到了几个怪事
set --enable-opcache=no
configure: error: Don't know how to define struct flock on this system, set --enable-opcache=no
这个问题还是库文件的链接问题
解决:
echo /usr/local/lib > /etc/ld.so.conf.d/local.conf
ldconfig -v
让编译的PHP支持memcache

② 系统之家Linux如何通过PAM限制用户登录失败次数怎么办

现在很多地方都有限制用户登录的功能,Linux也是如此,当你登录失败多次后就可以限制用户登录,从而起到保护电脑安全的作用,通过PAM模块即可实现,下面随小编一起来了解下吧。
Linux有一个pam_tally2.so的PAM模块,来限定用户的登录失败次数,如果次数达到设置的阈值,则锁定用户。
编译PAM的配置文件# vim /etc/pam.d/login
#%PAM-1.0
auth required pam_tally2.so deny=3 lock_time=300 even_deny_root root_unlock_time=10
auth [user_unknown=ignore success=ok ignoreignore=ignore default=bad] pam_securetty.so
auth include system-auth
account required pam_nologin.so
account include system-auth
password include system-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session optional pam_keyinit.so force revoke
session required pam_loginuid.so
session include system-auth
session optional pam_console.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open
各参数解释
even_deny_root 也限制root用户;
deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户
unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time 设定root用户锁定后,多少时间后解锁,单位是秒;
此处使用的是 pam_tally2 模块,如果不支持 pam_tally2 可以使用 pam_tally 模块。另外,不同的pam版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则。
在#%PAM-1.0的下面,即第二行,添加内容,一定要写在前面,如果写在后面,虽然用户被锁定,但是只要用户输入正确的密码,还是可以登录的!

③ 在red hat 5.9下安装vsftpd解压完,make的时候报错:/lib/libpam.so

这是由于64位操作系统引起的原因,解决方法如下:
编辑vsf_findlibs.sh
# vi vsf_findlibs.sh
找到如下代码:
if find_func pam_start sysdeputil.o; then
locate_library /lib/libpam.so.0 && echo "/lib/libpam.so.0";

修改成
if find_func pam_start sysdeputil.o; then
locate_library /lib64/libpam.so.0 && echo "/lib64/libpam.so.0";

④ LINUX设置密码复杂度的文件/etc/pam.d/system-auth,具体需要怎么改

一、准备工作:

安装 PAM 的 cracklib 模块,cracklib 能提供额外的密码检查能力。

二、具体操作:

Debian、Ubuntu 或 Linux Mint 系统上:

代码如下:


$ sudo apt-get install libpam-cracklib


CentOS、Fedora、RHEL 系统已经默认安装了 cracklib PAM 模块,所以在这些系统上无需执行上面的操作。

为了强制实施密码策略,需要修改 /etc/pam.d 目录下的 PAM 配置文件。一旦修改,策略会马上生效。

注意:此教程中的密码策略只对非 root 用户有效,对 root 用户无效。

策略设置:

1、禁止使用旧密码

找到同时有 “password” 和 “pam_unix.so” 字段并且附加有 “remember=5” 的那行,它表示禁止使用最近用过的5个密码(己使用过的密码会被保存在 /etc/security/opasswd 下面)。

Debian、Ubuntu 或 Linux Mint 系统上:

代码如下:

$ sudo vi /etc/pam.d/common-password
password [success=1 default=ignore] pam_unix.so obscure sha512 remember=5


CentOS、Fedora、RHEL 系统上:

代码如下:


$ sudo vi /etc/pam.d/system-auth
password sufficient pamunix.so sha512 shadow nullok tryfirstpass useauthtok remember=5

二、设置最短密码长度

找到同时有 “password” 和 “pam_cracklib.so” 字段并且附加有 “minlen=10” 的那行,它表示最小密码长度为(10 - 类型数量)。这里的 “类型数量” 表示不同的字符类型数量。PAM 提供4种类型符号作为密码(大写字母、小写字母、数字和标点符号)。如果密码同时用上了这4种类型的符号,并且 minlen 设为10,那么最短的密码长度允许是6个字符。

Debian、Ubuntu 或 Linux Mint 系统上:

代码如下:

$ sudo vi /etc/pam.d/common-password
password requisite pam_cracklib.so retry=3 minlen=10 difok=3

CentOS、Fedora、RHEL 系统上:

代码如下:

$ sudo vi /etc/pam.d/system-auth
password requisite pam_cracklib.so retry=3 difok=3 minlen=10

三、设置密码复杂度

找到同时有 “password” 和 “pam_cracklib.so” 字段并且附加有 “ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1” 的那行,表示密码必须至少包含一个大写字母(ucredit),两个小写字母(lcredit),一个数字(dcredit)和一个标点符号(ocredit)。

Debian、Ubuntu 或 Linux Mint 系统上:

代码如下:

$ sudo vi /etc/pam.d/common-password
password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1

CentOS、Fedora、RHEL 系统上:

代码如下:

$ sudo vi /etc/pam.d/system-auth
password requisite pam_cracklib.so retry=3 difok=3 minlen=10 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1

四、设置密码过期期限

编辑 /etc/login.defs 文件,可以设置当前密码的有效期限,具体变量如下所示:

代码如下:

$ sudo vi /etc/login.defs
PASSMAXDAYS 150 PASSMINDAYS 0 PASSWARNAGE 7

这些设置要求用户每6个月改变密码,并且会提前7天提醒用户密码快到期了。

如果想为每个用户设置不同的密码期限,使用 chage 命令。下面的命令可以查看某个用户的密码限期:

代码如下:


$ sudo chage -l xmolo
Last password change : Dec 30, 2013 Password expires :
never Password inactive : never Account expires :
never Minimum number of days between password change :
0 Maximum number of days between password change :
99999 Number of days of warning before password expires : 7


默认情况下,用户的密码永不过期。

五、下面的命令用于修改 xmolo 用户的密码期限:

代码如下:

$ sudo chage -E 6/30/2014 -m 5 -M 90 -I 30 -W 14 xmolo

上面的命令将密码期限设为2014年6月3日。另外,修改密码的最短周期为5天,最长周期为90天。密码过期前14天会发送消息提醒用户,过期后帐号会被锁住30天。

设置完后,验证效果如下:

⑤ 16 CentOS7登录安全修复——密码复杂度-登录限制-root限制登录

一、密码复杂度设置

CentOS密码复杂度配置通过/etc/pam.d/system-auth文件中的pam_cracklib.so模块来实现。

首先查看/etc/pam.d/system-auth文件

可以看到当前并没有看到pam_cracklib.so模块

原因:

pam_pwquality.so是兼容pam_cracklib.so模块的,所以pam_cracklib.so的选项也适用于pam_pwquality.so

pam_cracklib.so支持的部分选项如下:

retry=N:定义登录/修改密码失败时,可以重试的次数

minlen=N:新密码的最小长度

dcredit=N:当N>0时表示新密码中数字出现的最多次数;当N<0时表示新密码中数字出现最少次数;

ucredit=N: 当N>0时表示新密码中大写字母出现的最多次数;当N<0时表示新密码中大写字母出现最少次数;

lcredit=N: 当N>0时表示新密码中小写字母出现的最多次数;当N<0时表示新密码中小写字母出现最少次数;

ocredit=N:当N>0时表示新密码中特殊字符出现的最多次数;当N<0时表示新密码中特殊字符出现最少次数;

maxrepeat=N:拒绝包含多于N个相同连续字符的密码。 默认值为0表示禁用此检查

maxsequence=N:拒绝包含长于N的单调字符序列的密码。默认值为0表示禁用此检查。实例是'12345'或'fedcb'。除非序列只是密码的一小部分,否则大多数此类密码都不会通过简单检查。

enforce_for_root: 如果用户更改密码是root,则模块将在失败检查时返回错误。默认情况下,此选项处于关闭状态,只打印有关失败检查的消息,但root仍可以更改密码。不要求root用户输入旧密码,因此不会执行比较旧密码和新密码的检查

接下来修改system-auth文件,配置密码复杂度策略

在system-auth文件中 pam_pwquality.so后添加minlen=8 dcredit=-2 ucredit=-1 lcredit=-1 ocredit=-1

参数含义:密码长度最小为8位,数字出现的最少次数为2次,大写字母出现最少1次,小写字母出现最少1次,特殊字符出现最少1次

保存退出后,进行测试密码复杂度配置是否生效

新建一个test账户,使用root账户设置test账户的密码为test,密码修改成功。(证明root账户不受pam认证规则的限制)

账号密码规则测试:

然后切换到test账户设置test账户的密码。这里尝试设置密码为Pw39@。

报错提示大写字母少于8位,说明minlen=8已经生效。

接下来尝试设置密码为Pwqwert@

报错提示数字少于2位,说明dcredit=-2已经生效。

接下来尝试设置密码为pw12qwer@

报错提示大写字母少于1位,说明ucredit=-1已经生效。

passwd:Have exhausted maximum number of retries for service(passwd:已经用尽了最多可重试的服务次数),说明retry=3已经生效。

接下来重新设置密码,尝试设置密码为PW12QWER@

报错提示小写字母少于1位,说明lcredit=-1已经生效。

接下来尝试设置密码为Pw12qwer

报错提示特殊字符少于1位,说明ocredit=-1已经生效。

限制root用户

vi etc/pam.d/system-auth

在sysstem-auth文件中pam_pwquality.so行添加enforce_for_root

然后测试是否root被限制,也要遵守密码复杂度策略

用root账户设置test账户密码为Pw12qwer

报错提示特殊字符少于1位,说明root用户已经被限制,也要遵守pam认证规则。

二、禁用root用户登录

注意:禁用root前必须要创建一个普通账户,并且验证用户可以正常登录

1、首先增加一个普通账号,别禁止root账号后没有其他账号登录系统了:

——增加用户:adser xxxx

——设置密码:passwd xxxx

2、修改ssh配置:

——修改配置文件:vi /etc/ssh/sshd_config

——配置文件中增加一行:PermitRootLogin no

——保存退出,重启ssh服务:service sshd restart

3、下次登录系统,root账号会被拒绝登录。

——可以先用xxxx登录,之后su root即可

三、限制用户登录失败次数并锁定用户

⑥ 怎么样编译pam

获取目标系统所使用的PAM版本:
rpm -qa|grep pam

下载后,在对应的系统环境下(32或x86_64位系统下)编译生成后门,patch目录下的“pam_unix_auth.c.patch”文件就是
补丁文件,pam_unix_auth.c 是PAM
1.1.1版本pam_unix.so的源文件,仅作参考。我们将补丁文件移动到源码目录,并使用patch命令对PAM源代码打补丁,然后编译生成即可。

⑦ linux中的PAM到底是什么 如何使用配置呢 麻烦说的通俗点

简单地说,PAM主要是由一组共享库文件(也就是后缀名为.so文件)和一些配置文件组成的用于系统服务授权的一套东西,其中,PAM 就是 Pluggable Authentication Moles 这几个英文单词的缩写。当你在请求服务的时候,具有PAM认证功能的应用程序将与这些.so文件进行交互,以便得知是否可以授权给发起请求的用户来使用服务,比如su, vsftp, httpd,等。如果认证成功了,那么这个用户便可以使用服务或完成命令,如果认证失败了,那么这个用户将不能使用服务,同时,PAM将向指定的log文件写入警告信息。我们可以将PAM看作是一个中间裁判,它不依赖于任何应用或服务。你完全可以升级这些应用或服务而不必管PAM的共享库的更新或升级,反之亦然。所以它非常的灵活。

阅读全文

与pamso文件c语言编译相关的资料

热点内容
华为adb命令行刷机 浏览:963
人像摄影pdf 浏览:755
解压文件密码怎样重新设置手机 浏览:999
高考指南pdf 浏览:693
爬虫python数据存储 浏览:240
u盘怎么取消加密 浏览:429
567除以98的简便算法 浏览:340
pdf手机如何解压 浏览:15
python描述器 浏览:60
战地联盟3解压密码 浏览:805
s型命令 浏览:25
php年薪5年 浏览:71
如何上网上设个人加密账户 浏览:44
linux打开ssh服务 浏览:78
微信位置可以加密吗 浏览:470
算法蛮力法 浏览:438
随机排练命令 浏览:147
python多进程并发 浏览:41
安卓软件安装如何躲避安全检测 浏览:647
奇幻潮翡翠台源码百度云盘 浏览:187