Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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);
 
 /* ÈÏÖ¤ÊDz»ÊǸÃÓû§? ÌáʾÄãÊäÈëÒ»¸öÃÜÂë */
 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±à³Ì(Áù) L2CAP±à³ÌʵÀý

ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
 Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......

LinuxÓëWindowsÔÚÊ®Èý·½Ãæ´ó¶Ô¾ö£¨ËÄ£©

 (Ê®)Îȶ¨ÄÜÁ¦Æª¡¡
¡¡¡¡ÔËÐÐLinuxµÄ»úÆ÷Æô¶¯Ò»´Î¿ÉÒÔÔËÐÐÊýÔ¡£LinuxÌṩÁËÍêÈ«µÄÄÚ´æ±£»¤£¬Ã¿¸ö½ø³Ì¶¼ÔËÐÐÔÚ×Ô¼ºµÄÐéÄâµØÖ·¿Õ¼äÖУ¬²¢ÇÒ²»»áËð»µÆäËû½ø³Ì»òÄÚºËʹÓõĵØÖ·¿Õ¼ä¡£ÈÎÎñÓëÄں˼äÒ²ÊÇÏ໥¸ôÀ룬¼´ÐÐΪ²»Á¼»ò±àд²»Á¼µÄ³ÌÐòÖ»Äܻٻµ×Ô¼º¡£Òò´Ë±»ÆÆ»µµÄ½ø³Ì¼¸ºõ²»¿ÉÄÜʹϵͳ±ÀÀ£¡£LinuxÔÚºÍWindows98ºÍNTÔ ......

ǶÈëʽÉ豸É쵀 Linux ϵͳ¿ª·¢ 0

ǶÈëʽÉ豸É쵀 Linux ϵͳ¿ª·¢(¹ý³Ì)
http://hi.baidu.com/%D6%AF%CD%F8%B5%C4%D0%A1%D3%E3/blog/item/df918b3fbaae83fd828b1389.html
Èç¹ûÄú¸Õ½Ó´¥Ç¶Èëʽ¿ª·¢£¬ÄÇô´óÁ¿¿ÉÓõÄÒýµ¼×°ÔسÌÐò£¨bootloader£©¡¢¹æÄ£ËõСµÄ·Ö·¢°æ£¨distribution£©¡¢ÎļþϵͳºÍ GUI ¿´ÆðÀ´¿ÉÄÜÌ«¶àÁË¡£µ«ÊÇÕâЩ·á¸»µÄÑ¡Ïîʵ¼ÊÉÏÊÇÒ»ÖÖ¶÷´Í£¬ÔÊ ......

LINUXÏÂÎļþ²Ù×÷º¯Êý

 
LinuxµÄÎļþ²Ù×÷APIÉæ¼°µ½´´½¨¡¢´ò¿ª¡¢¶ÁдºÍ¹Ø±ÕÎļþ¡£
1.linux API
¡¡¡¡´´½¨
int creat(const char *filename, mode_t mode);
¡¡¡¡²ÎÊýmodeÖ¸¶¨Ð½¨ÎļþµÄ´æÈ¡È¨ÏÞ£¬ËüͬumaskÒ»Æð¾ö¶¨ÎļþµÄ×îÖÕȨÏÞ£¨mode&umask£©£¬ÆäÖÐumask´ú±íÁËÎļþÔÚ´´½¨Ê±ÐèҪȥµôµÄһЩ´æÈ¡È¨ÏÞ¡£umask¿Éͨ¹ýϵͳµ÷ÓÃumask()À´¸ ......

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 ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ