[#5498] postscript — Kikutani Makoto <kikutani@...>

TkCanvasの

23 messages 1997/12/02
[#5499] Re: postscript — matz@... (Yukihiro Matsumoto) 1997/12/02

まつもと ゆきひろです

[#5502] Re: postscript — Kikutani Makoto <kikutani@...> 1997/12/02

きくたにです。

[#5535] wave viewer (Re: postscript) — Kikutani Makoto <kikutani@...> 1997/12/05

きくたにです。

[#5536] Re: wave viewer (Re: postscript) — Kikutani Makoto <kikutani@...> 1997/12/05

きくたにです。

[#5538] Re: wave viewer (Re: postscript) — matz@... (Yukihiro Matsumoto) 1997/12/05

まつもと ゆきひろです

[#5547] Re: wave viewer (Re: postscript) — Kikutani Makoto <kikutani@...> 1997/12/06

きくたにです。

[#5504] cgi-lib.rb — 青山 和光 <PXN11625@...>

cgi-lib.rb, shellwords.rb の新版です。

22 messages 1997/12/02
[#5505] Re: cgi-lib.rb — matz@... (Yukihiro Matsumoto) 1997/12/03

まつもと ゆきひろです

[#5506] Re: cgi-lib.rb — keiju@... (石塚圭樹 ) 1997/12/03

けいじゅ@日本ラショナルソフトウェアです.

[#5508] Re: cgi-lib.rb — matz@... (Yukihiro Matsumoto) 1997/12/03

まつもと ゆきひろです

[#5512] Re: cgi-lib.rb — Shin-ichiro HARA <sinara@...> 1997/12/03

原です。

[#5539] ruby 1.0-971204 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

25 messages 1997/12/05
[#5542] Re: ruby 1.0-971204 released — Noritsugu Nakamura <nnakamur@...> 1997/12/05

[#5572] Re: ruby 1.0-971204 released — Shoichi OZAWA <ozawa@...> 1997/12/08

こんにちは 小澤@日立 です。

[#5615] bug in String#scan ?? — Yuji Shigehiro <sigehiro@...>

しげひろです.

17 messages 1997/12/10
[#5616] Re: bug in String#scan ?? — matz@... (Yukihiro Matsumoto) 1997/12/10

まつもと ゆきひろです

[#5668] Re: ObjectDBM — 青山 和光 <PXN11625@...>

石塚さん(B... さんですよね?)、おはようございます。

14 messages 1997/12/13

[ruby-list:5712] script to rewrite a pap-secrets

From: tateishi@... (Takaaki.Tateishi)
Date: 1997-12-17 17:01:03 UTC
List: ruby-list #5712
立石です。

度々、失礼致します。
rubyを久々に使い始めました。

それでTCPsocketを使用したスクリプトを
作成中なのですが、セキュリティの面での
アドバイスを頂きたいと思いこのメーリング
リストにスクリプトを流します。

スクリプトはPAPで使用されるpap-secretsの
パスワードを変更するもので、root以外の
ユーザからパスワード変更ができるようにするためで、
rootで以下のスクリプトを走らせておき、
ユーザは
	telnet localhost 16016
としてパスワード変更を行なうものです。

実際には、pap-secrets,pap-hosts,pap-logと
3つのファイルも必要となります。

------------[ pap-hosts ]---------------------------
localhost	127.0.0.1
----------------------------------------------------

------------[ pap-secrets ]------------------------
tate	tatespass	???.???.???.?0
hoge	hoge		???.???.???.?1
fuge	fuge		???.???.???.?2
---------------------------------------------------

------------[ pappasswd ]--------------------------
#!/usr/local/bin/ruby

# pappasswd server

require "socket"

PROTOCOL = 16016;
PAP_FILE = "/home/tateishi/work/pappasswd/pap-secrets";
CERT_FILE = "/home/tateishi/work/pappasswd/pap-hosts";
LOG_FILE = "/home/tateishi/work/pappasswd/pap-log";

def certify?(client,file=CERT_FILE)
	addr = client.peeraddr(); # get client info
	address = addr[3];
	host = addr[2];
	log = open(LOG_FILE,"a");
	log.print(host + "\t" + address + "\t" + `date`);
	log.close();
	f = open(file,"r");
	while line = f.gets()
		line.chop!();
		line_list = line.split(/[ \t]+/);
		if (line_list[0] == host)&&(line_list[1] == address) then
			f.close();
			return TRUE;
		end;
	end;
	f.close();
	return FALSE;	
end;

serv = TCPserver.open(PROTOCOL);

while TRUE
	ns = serv.accept();	# open client socket
	if ( ! certify?(ns)) then
		ns.close();
		continue;
	end;
	ns.write("user name: ");
	user_name = ns.gets().chop(); 		# get a user name
	ns.write("old password: ");
	old_passwd = ns.gets().chop();		# get a old password
	ns.write("new password: ");
	new_passwd = ns.gets().chop();		# get a new password

	file = open(PAP_FILE,"r")
	i = 0;
	entry = Array.new();
	while line = file.gets()
		line.chop!();
		entry << line.split(/[ \t]+/);
	end;
	file.close();

	file = open(PAP_FILE,"w");
	for line_entry in entry
		if (line_entry[0]==user_name)&&(line_entry[1]==old_passwd) then
			line_entry[1] = new_passwd;
			ns.write("--------------------------\n");
			ns.write("password is changed.\n");
			ns.write("--------------------------\n");
		end;
		file.print(line_entry.join("\t"));
		file.print("\n");
	end;
	file.close();

	ns.close();		# close a client
end;
------------------------------------------------------------

In This Thread

Prev Next