pam debian mysql_解决Debian下sudo命令unable to initialize PAM问题

配置的Debian系统,先是用root账户apt-get install sudo安装sudo命令;然后通过useradd命令建立子账户;最后修改sudoers通过添加相应账户名来开放执行sudo的权限。

本以为做完一切万事大吉,可以切换到子账户痛快的用sudo了。其实不然,当我切换到刚才建立的子账户并执行sudo命令时出现了下面的错误提示:

$ sudo ls

sudo: unable to initialize PAM: No such file or directory

$ sudo ls

sudo: unable to initialize PAM: No such file or directory

无法初始化PAM,什么是PAM?引用百度百科上的描述:PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制。它通过提供一些动态链接库和一套统一的API,将系统提供的服务 和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系统中添加新的认证手段。

实际上这是通过配置模块实现认证的认证模式,PAM的配置文件均位于Debian下/etc/pam.d目录下,通过ls列出该目录当前文件,发现sudo果然在其中。使用cat /etc/pam.d/sudo出现以下信息:

# cat /etc/pam.d/sudo

#%PAM-1.0

@include common-auth

@include common-account

@include common-session-noninteractive

# cat /etc/pam.d/sudo

#%PAM-1.0 @include common-auth

@include common-account

@include common-session-noninteractive

这里分别通过@include指令包含了三类共享的认证模块配置文件,这些文件也处于/etc/pam.d目录下,好,问题也来了,我竟然没有找到common-session-noninteractive这个配置文件,联想到刚才PAM错误的No such file or directory消息,基本可以推断是这个配置文件丢失导致PAM无法引导sudo启动。

上网搜索了一下,得知关于common-session-noninteractive配置文件的内容如下:session[default=1]pam_permit.so

sessionrequisitepam_deny.so

sessionrequiredpam_permit.so

sessionrequiredpam_unix.so

当然我们可以根据上述内容自己建立一个common-session-noninteractive配置文件,好了,做完这些我们再一次进入子账户,然后尝试sudo ls,呵呵,发现sudo能够正常使用了,问题已经解决!

参考文档:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值