Deprecated : The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
samba$B$N%3%s%Q%$%k(B
samba$B$r2~B$$7$F(Bpam$B7PM3$G(Bslapd$B$K%"%/%;%9$7$F(BNTLM$BG'>Z$r$9$k$h$&$K$7$^$9!#(B
slapd$B$O(BNTLM$BG'>ZBP1~(B $B$K2~B$$7$F$*$$$F$/$@$5$$!#(B
% apt-get source samba
% cd samba-2.2.3a
% vi source/smbd/password.c
...
($B4X?t(Bpassword_ok)
/* if 24 bytes long assume it is an encrypted password */
uchar challenge[8];
if (!last_challenge(challenge)) {
DEBUG(0,("Error: challenge not done for user=%s\n", user));
return False;
}
if(pwlen==24) {
const char b64[]=
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
char pass[6+44+1];
int i, e0, e1, e2;
char *p;
uchar *c;
memcpy(pass, "{NTLM}", 6);
p= pass+6;
c= password;
for(i= 0; i<32; i+=3) {
if(i==24) c= challenge;
e0= c[0];
e1= i+1<32?c[1]:0;
e2= i+2<32?c[2]:0;
*p++= b64[e0>>2];
*p++= b64[e0<<4&0x30|e1>>4];
*p++= i+1<32?b64[e1<<2&0x3c|e2>>6]:'=';
*p++= i+2<32?b64[e2&0x3f]:'=';
c+= 3;
}
*p= 0;
ret= pass_check(user, pass, strlen(pass), pwd, NULL);
if(ret) return True;
}
ret = pass_check_smb(user, global_myworkgroup,
challenge, (uchar *)password, (uchar *)password, pwd);
...
$B=$@5$O$3$l$@$1$G$9!#%3%s%Q%$%k$7$F%$%s%9%H!<%k$7$^$9!#(B
# dpkg-buildpackage
($B$3$N;~$K=P$k%3%s%Q%$%k$KI,MW$J%Q%C%1!<%872$O(Bapt-get install$B$G
$BF~$lBX$($k$N$O(B/usr/sbin/smbd $B$@$1$J$N$G!"$U$D$&$K(Bsamba$B$rF~$l$F$+$i!"(B
# /etc/init.d/samba stop
# cd source/bin
# strip smbd; cp smbd /usr/sbin/smbd
# /etc/init.d/samba start
$B$H$+$7$^$9!#(B
$B$$$:$l$K$;$h(Bapt-get upgrade$B$5$l$J$$$h$&$K(Bdselect$BEy$G(B
samba$B$r(Bhold-state$B$K$7$F$*$/$+!"(B
upgrade$B$,$+$+$C$?$i:G?7$N%=!<%9$G:F%3%s%Q%$%k$7$FF~$lBX$($k$N$rK:$l$:$K!#(B
samba$B$N@_Dj(B
samba$B$O%"%+%&%s%H>pJs$r(Bpam$B7PM3$G
# vi /etc/pam.d/samba
auth sufficient pam_ldap.so
account sufficient pam_ldap.so
session sufficient pam_ldap.so
password sufficient pam_ldap.so
auth required pam_unix.so nullok use_first_pass nodelay
account required pam_unix.so
session required pam_unix.so
password required pam_unix.so try_first_pass
samba$B$O%Q%9%o!<%I$r$$$/$D$+;n$9$N$G!"(B
auth$B$N(Bpam_unix.so$B$K(Bnodelay$B$r@_Dj$7$F$*$+$J$$$H%m%0%$%s$d%U%!%$%k%"%/%;%9$K?tIC$N;~4V$,$+$+$k$3$H$K$J$j$^$9!#(B
$B$"$k$$$O(Bauth$B$+$i(Bpam_unix$B$=$N$b$N$r
$B0J>e$G$9!#(B/etc/samba/smb.conf$B$K(Bsamba$B$N$=$NB>$N@_Dj$r$7$F(B
Windows2000$BEy$+$i(Bsamba$B$K@\B3$7$F$_$^$7$g$&!#(B
$B$J$*!"(Bpam$B7PM3$G(BNTLM$B$NG'>Z$K<:GT$7$?>l9g$O(B
/etc/samba/smbpass$B$N9`L\$,;2>H$5$l$^$9!#(B