[w3m-dev 03639] Re: smb.cgi
* Bonus/2ch.cgi: change password handling * Bonus/README: update * Bonus/README.eng: ditto
This commit is contained in:
11
Bonus/README
11
Bonus/README
@@ -15,9 +15,14 @@ smb.cgi
|
||||
SMB <20>˥<EFBFBD><CBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> local CGI <20>Ǥ<EFBFBD><C7A4><EFBFBD>
|
||||
nmblookup,smbclient <20><><EFBFBD>Ȥ<EFBFBD><C8A4>Τ<EFBFBD> sabma <20><><EFBFBD><EFBFBD><EFBFBD>ȡ<F3A5B9A5><C8A1>뤵<EFBFBD><EBA4B5><EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD>
|
||||
ɬ<>פ<EFBFBD><D7A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD>
|
||||
<20>ѥ<EFBFBD><D1A5><EFBFBD>ɤϡ<C9A4>smbclient <20><> -A <20><><EFBFBD>ץ<EFBFBD><D7A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȥ<EFBFBD><C8A4><EFBFBD><EFBFBD>ʤ顢
|
||||
smbclient -A ~/.w3m/smb <20>Ȥ<EFBFBD><EFBFBD>ơ<EFBFBD><EFBFBD>Ȥ<EFBFBD><EFBFBD>ʤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ~/.w3m/smb <EFBFBD><EFBFBD>
|
||||
<EFBFBD>ɤ<EFBFBD><EFBFBD>ǴĶ<EFBFBD><EFBFBD>ѿ<EFBFBD> PASSWD <EFBFBD><EFBFBD><EFBFBD>Ϥ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
<20>ѥ<EFBFBD><D1A5><EFBFBD>ɤϡ<C9A4>
|
||||
1) ~/.w3m/smb <20>˥ѥ<EFBFBD><EFBFBD><EFBFBD>ɤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꤵ<EFBFBD><EFBFBD><EFBFBD>Ƥ<EFBFBD><EFBFBD>ꡢ
|
||||
smbclient <20><> -A <20><><EFBFBD>ץ<EFBFBD><D7A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʤ<EFBFBD>
|
||||
smbclient -A ~/.w3m/smb <20>Ȥ<EFBFBD><C8A4><EFBFBD><EFBFBD>Ϥ<EFBFBD><CFA4>ޤ<EFBFBD><DEA4><EFBFBD>
|
||||
2) <20>Ķ<EFBFBD><C4B6>ѿ<EFBFBD> PASSWD_FILE (<28>ѥ<EFBFBD><D1A5><EFBFBD>ɤΤߤΥե<CEA5><D5A5><EFBFBD><EFBFBD><EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϡ<EFBFBD><CFA1>Ķ<EFBFBD><C4B6>ѿ<EFBFBD> PASSWD_FILE <20><><EFBFBD>Ȥ<EFBFBD><C8A4>ޤ<EFBFBD><DEA4><EFBFBD>
|
||||
3) ~/.w3m/smb <20>˥ѥ<CBA5><D1A5><EFBFBD>ɤ<EFBFBD><C9A4><EFBFBD><EFBFBD>ꤵ<EFBFBD><EAA4B5><EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD>С<EFBFBD>
|
||||
<20>Ķ<EFBFBD><C4B6>ѿ<EFBFBD> PASSWD_FD <20><><EFBFBD>Ȥä<C8A4>ɸ<EFBFBD><C9B8><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>Ϥ<EFBFBD><CFA4>ޤ<EFBFBD><DEA4><EFBFBD>
|
||||
<20>ɤ<EFBFBD><C9A4><EFBFBD><EFBFBD>ˤ<EFBFBD><CBA4>衢<EFBFBD><E8A1A2><EFBFBD>ޤ<EFBFBD><DEA4>ɤ<EFBFBD><C9A4><EFBFBD><EFBFBD>ǤϤʤ<CFA4><CAA4>Τ<EFBFBD> SMB(CIFS)<29>ץ<EFBFBD><D7A5>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>Ǥ<EFBFBD><C7A4><EFBFBD>˾<EFBFBD><CBBE>
|
||||
|
||||
|
@@ -5,19 +5,22 @@
|
||||
|
||||
w3m file:/cgi-bin/2ch.cgi?http://pc.2ch.net/test/read.cgi/unix/1035755937/
|
||||
|
||||
it uses wget -c
|
||||
dat is recorded under ~/w3m2ch/
|
||||
You can post
|
||||
It uses wget -c.
|
||||
`dat' files are recorded under ~/w3m2ch/.
|
||||
You can not post.
|
||||
|
||||
smb.cgi
|
||||
|
||||
[w3m-dev 03634] smb.cgi
|
||||
localcgi to access SMB.
|
||||
Since it uses nmblookup, smbclient, you should install samba.
|
||||
Password can be configured in ~/.w3m/smb:
|
||||
when -A option available smbclient -A ~/.w3m/smb
|
||||
otherwise, environment variable PASSWD
|
||||
that is set by contents of ~/.w3m/smb
|
||||
Password can be passed to smbclient:
|
||||
1) When the password is set by contents of ~/.w3m/smb and
|
||||
-A option available, `smbclient -A ~/.w3m/smb' is used.
|
||||
2) When the environment variable PASSWD_FILE, it is used.
|
||||
3) When the password is set by contents of ~/.w3m/smb,
|
||||
the password is passed via standrad I/O using
|
||||
the environment variable PASSWD_FD.
|
||||
|
||||
google.cgi
|
||||
|
||||
|
@@ -9,9 +9,17 @@
|
||||
#
|
||||
# ----- ~/.w3m/smb -----
|
||||
# workgroup = <workgroup>
|
||||
# username = <username>
|
||||
# password = <password>
|
||||
# [ username = <username> ]
|
||||
# [ password = <password> ]
|
||||
# [ password_file = <password_file> ]
|
||||
# ----------------------
|
||||
# --- <password_file> ---
|
||||
# <password>
|
||||
# -----------------------
|
||||
# default:
|
||||
# <username> = $USER
|
||||
# <password> = $PASSWD (Don't use!)
|
||||
# <password_file> = $PASSWD_FILE
|
||||
|
||||
$DEBUG = 1;
|
||||
|
||||
@@ -22,18 +30,35 @@ $AUTH_FILE =~ s@^~/@$ENV{"HOME"}/@;
|
||||
$WORKGROUP = "-";
|
||||
$USER = $ENV{"USER"};
|
||||
$PASSWD = $ENV{"PASSWD"};
|
||||
$PASSWD_FILE = $ENV{"PASSWD_FILE"};
|
||||
&load_auth_file($AUTH_FILE);
|
||||
|
||||
$NMBLOOKUP = "nmblookup";
|
||||
$SMBCLIENT = "smbclient";
|
||||
@NMBLOOKUP_OPT = ("-T");
|
||||
@SMBCLIENT_OPT = ("-N");
|
||||
$USE_OPT_A = &check_opt_a();
|
||||
$USE_OPT_A = defined($PASSWD) && (-f $AUTH_FILE) && &check_opt_a();
|
||||
if ($USE_OPT_A) {
|
||||
undef $USER;
|
||||
undef $PASSWD;
|
||||
push(@SMBCLIENT_OPT, "-A", $AUTH_FILE);
|
||||
} elsif (-f $PASSWD_FILE) {
|
||||
$USE_PASSWD_FILE = 1;
|
||||
} elsif (defined($PASSWD)) {
|
||||
$USE_PASSWD_FD = 1;
|
||||
$PASSWD_FD = 0;
|
||||
}
|
||||
if (defined($PASSWD)) {
|
||||
$passwd = "*" x 8;
|
||||
}
|
||||
$DEBUG && print <<EOF;
|
||||
DEBUG: NMBLOOKUP=$NMBLOOKUP @NMBLOOKUP_OPT
|
||||
DEBUG: SMBCLIENT=$SMBCLIENT @SMBCLIENT_OPT
|
||||
DEBUG: WORKGROUP=$WORKGROUP
|
||||
DEBUG: USER=$USER
|
||||
DEBUG: PASSWD=$passwd
|
||||
DEBUG: PASSWD_FILE=$PASSWD_FILE
|
||||
DEBUG: PASSWD_FD=$PASSWD_FD
|
||||
EOF
|
||||
|
||||
$PAGER = "cat";
|
||||
$FILE = "F000";
|
||||
|
||||
@@ -44,6 +69,10 @@ $_ = &file_decode($QUERY);
|
||||
$DEBUG && print "DEBUG: QUERY_STRING=\"$_\"\n";
|
||||
if (s@^//([^/]+)@@) {
|
||||
$server = $1;
|
||||
# if (!$USE_OPT_A && !defined($PASSWD)) {
|
||||
# &print_form("//$server$_");
|
||||
# exit;
|
||||
# }
|
||||
if (s@^/([^/]+)@@) {
|
||||
&file_list("//$server/$1", &cleanup($_));
|
||||
} else {
|
||||
@@ -250,9 +279,11 @@ sub get_list {
|
||||
@cmd = ($SMBCLIENT, @SMBCLIENT_OPT, "-L", $server);
|
||||
$F = &open_pipe($passwd, @cmd);
|
||||
while (<$F>) {
|
||||
/^\s*$header/ && last;
|
||||
}
|
||||
if (/^\s*$header/) {
|
||||
$DEBUG && print "DEBUG: $_";
|
||||
last;
|
||||
}
|
||||
}
|
||||
while (<$F>) {
|
||||
/^\s*$/ && last;
|
||||
$DEBUG && print "DEBUG: $_";
|
||||
@@ -277,9 +308,18 @@ sub exec_cmd {
|
||||
local($passwd, @cmd) = @_;
|
||||
|
||||
$ENV{"LC_ALL"} = "C";
|
||||
if (!$USE_OPT_A && $passwd) {
|
||||
$ENV{"USER"} = $USER if $USER;
|
||||
$ENV{"PASSWD"} = $PASSWD if $PASSWD;
|
||||
$ENV{"USER"} = $USER;
|
||||
if ($passwd && !$USE_OPT_A) {
|
||||
if ($USE_PASSWD_FILE) {
|
||||
$ENV{"PASSWD_FILE"} = $PASSWD_FILE;
|
||||
} elsif ($USE_PASSWD_FD) {
|
||||
$ENV{"PASSWD_FD"} = $PASSWD_FD;
|
||||
if (open(W, "|-")) {
|
||||
print W $PASSWD;
|
||||
close(W);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
open(STDERR, ">/dev/null");
|
||||
exec @cmd;
|
||||
@@ -287,8 +327,15 @@ sub exec_cmd {
|
||||
}
|
||||
|
||||
sub print_form {
|
||||
local($_) = @_;
|
||||
local($q) = &html_quote($_);
|
||||
$_ = &file_encode($_);
|
||||
|
||||
print <<EOF;
|
||||
<form action="$CGI" method=POST>
|
||||
Content-Type: text/html
|
||||
|
||||
<h1>$q</h1>
|
||||
<form action="$CGI?$_" method=POST>
|
||||
<table>
|
||||
<tr><td>Workgroup <td>User <td>Password
|
||||
<tr><td><input type=text size=8 name=group value="$WORKGROUP">
|
||||
@@ -315,6 +362,8 @@ sub load_auth_file {
|
||||
$USER = $_;
|
||||
} elsif (s/^passw(or)?d\s*=\s*//i) {
|
||||
$PASSWD = $_;
|
||||
} elsif (s/^passw(or)?d_file\s*=\s*//i) {
|
||||
$PASSWD_FILE = $_;
|
||||
}
|
||||
}
|
||||
close(F);
|
||||
|
Reference in New Issue
Block a user