易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux PAM Program/弹出获得root权限对话框

 什么也不要说,先来一个程序吧。
/*
注意要和你的系统一致redhat是这样/etc/pam.d/check_user
auth required /lib/security/pam_unix_auth.so
account required /lib/security/pam_unix_acct.so
1.如果需要出现密码弹出框还需要在添加
/etc/security/console.apps/check_user
USER=root
PROGRAM=~/check_user #这个路径就是下面编译好后的路径,不能和3中作链接的路径一样
SESSION=true
2.再对/usr/bin/consolehelper作ln
sudo ln -s consolehelper check_user
3.这样运行/usr/bin/check_user就实际在调用consolehelper,再去读取
/etc/security/console.apps/check_user里PROGRAM设定的路径
4.编译时要这样:
gcc check.c -ldl -lpam -lpam_misc -o ~/check_user
*/
#include <security/pam_appl.h>
#include <security/pam_misc.h>
#include <stdio.h>
static struct pam_conv conv = {
 misc_conv, //定义在pam_misc.h中, 方便你编程
 NULL
};
int main(int argc, char *argv[])
{
 pam_handle_t *pamh=NULL;
 int retval;
 const char *user="root"; //用户名设置为系统上的一个合法用户
 if(argc == 2) {
  user = argv[1];
 }
 if(argc > 2) {
  fprintf(stderr, "Usage: check_user [username]\n");
  exit(1);
 }
 retval = pam_start("check_user", user, &conv, &pamh);
 /* 开始 */
 if (retval == PAM_SUCCESS)
  retval = pam_authenticate(pamh, 0);
 
 /* 认证是不是该用户? 提示你输入一个密码 */
 if (retval == PAM_SUCCESS)
  retval = pam_acct_mgmt(pamh, 0);
 /* 账号是否有效? */
 if (retval == PAM_SUCCESS) {
  fprintf(stdout, "Authenticated\n");
 } else {
  fprintf(stdout, "Not Authenticated\n");
 }
 if (pam_end(pamh,retval) != PAM_SUCCESS) {
  /* 结束 */
  pamh = NULL;
  fprintf(stderr, "check_user: failed to release authenticator\n");
  exit(1);
 }
 return ( retval == PAM_SUCCESS ? 0:1 ); /* indicate success */
}
#gcc check.c -ldl -lpam -lpam


相关文档:

实战Linux Bluetooth编程(三) HCI层编程

1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI)  就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......

linux网址精选

 linux网址精选
http://hi.baidu.com/digast/blog/item/31cd94efba1348ebcf1b3ed3.html
2008-04-01 14:57
国外
  http://lwn.net/
  http://www.tldp.org/
  https://rhn.redhat.com
  http://www.justlinux.com/
  http://www.linuxtoday.com/
  http://www.linuxquestions.org/
  http://ww ......

Linux 引导过程内幕

 
Linux 引导过程内幕
http://www.lemote.com/bbs/redirect.php?goto=newpost&tid=1723
当系统首次引导时,或系统被重置时,处理器会执行一个位于已知位置处的代码。在个人计算机(PC)中,这个位置在基本输入/输出系统(BIOS)中,它保存在主板上的闪存中。嵌入式系统中的中央处理单元(CPU)会调用这个重置向 ......

Linux 下 Squid 安装

目录
 
一、确保Linux 系统中装有NET-SNMP 协议... 1
1.Net-snmp 获取与安装... 1
2.Net-snmp 的配置... 1
3.Net-snmp 常用命令... 2
二、Squid. 3
1.检查linux是否存在squid老版本... 3
2.Squid 获取与安装... 3
3.Squid 配置... 4
4.Squid 测试... 4
5.Squid 常用命令... 5
6.Squid 其他... 6
7.Squid. ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号