|
追記します。 下記の例は、添付ファイルがついていた場合 メール転送しないという意味で書いています |
|
68userさん、hsjさん。返信ありがとうございます。 やはりそうですか・・・。 さすがにセキュリティを下げると問題があるので、コマンドレベルから やることは破棄せざるをえなくなりました。 その代替となると、passwdコマンドのソースを研究するしかないのかもしれませんね。どこかにそんなことを詳しくのっている場所はないでしょうか? 現在自分自身でも検索中です。 |
|
@68userさん スミマセン、ぼくの確認方法が正しくなかったようです。 確実な方法で確認したところ、確かにnews.yahoo.co.jpは LFしか返してきませんね。はー > http://x68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=1135 > の書き方はちょっとアレなので、書き直すと、 > http://news.yahoo.co.jp/headlines/top/ > のヘッダ/ボディのセパレータは LF になってます。 こっちの意味は取り違えてなかったんですが(苦笑 @超初心者さん いやそうではなくて、ユーザが任意の文字列を選ぶ際に、 その文字列のパスワードとしての強度を(ある程度)判定してくれる物を 取り除いてしまうこと自体が「改悪」だと言う意味です・・・。 |
|
お礼が遅れてすいませんでした。 てっきり頼り過ぎたので無視されたと 思って掲示板を見てませんでした(^^; なるほど、良く分かりました。 ありがとうございました |
|
> 超初心者 > 超メール初心者 > 超ビギナー こういうハンドルはやめてください。そこまで匿名性を 求めるならば、www.2ch.net などを利用してください。 > 今、procmailを用いて転送制限の設定を行っているのですが > 添付ファイル付きのメールを転送しない設定ができません。 まずは ~/.procmailrc の先頭に LOGFILE=$HOME/procmail-log などと書いて、ログを取りましょう。原因究明はその後です。 > passwdコマンドのソースを研究するしかないのかもしれませんね。 まぁそうなりますが、passwd は人間様が対話的に使うコマンド なので、*BSD ならスクリプト向きの pw コマンドってのが あります。これは root での使用を前提としているので、 指定したパスワードをそのまま設定してくれます。Redhat Linux にも、その手のコマンドがあるかもしれません。 で、以下のようなスクリプト #!/usr/bin/suidperl $username=$ARGV[0]; $newpasswd=<STDIN>; chomp($newpasswd); echo $newpasswd | pw usermod -n $username -h 0 を passwd_change という名前で保存して、 # chmod 4755 passwd_change # chown root passwd_change しておけば、誰でも % echo newpasswd | passwd_change username で変更できます。 もちろんこのままでは、セキュリティもへったくれもないので 何かしらの制限を付けないといけません。 @has 文字コードの件、了解です。 |
|
どうも皆さん始めまして。 私は最近Cygwinでプログラミングの勉強を始めました。 Linuxのことはまだほとんどわからないので2つ同時に 勉強しなければならないので大変です(^_^;) で、インターネットで拾ってきたいろんなサンプルソースを コンパイルして遊んでるんですが、LinuxとWin32での ソースレベルでの互換性に疑問があります。 たとえば、あるサンプルソースの場合、シリアルポートにアクセス するのに #makefile SERIALDEVICE = /dev/ttyS0 #tool.c /* setup serial port */ void open_serial(char *devicename) { struct termios newtio; dfd = open(devicename, O_RDWR | O_NOCTTY); if (dcfd < 0) { perror(devicename); exit(-1); } open_serial(SERIALDEVICE); という具合にデバイスをオープンしているのですが、 このソースをWin32アプリとしてコンパイルしても当然(?)動きません。 で、SERIALDEVICEの部分を COM1 に変えて見たのですが、これも 動きませんでした。 他のファイルやソースを眺めてみても、良くわからないのですが、 この場合、Win32で動作させるにはどのようにすべきなのでしょうか? |
|
ども、はじめまして。雅人と言います。 質問なのですが 掲示板をつくろう(1)でperlを書くならEUCで書くべきと 書かれてたのでSJIS(CRLF)からEUC(CRLF)に変換したところ 逆に文字化けが起こってしまいました。 ローカルな環境(win95)でもアップロード先(virtualave.net) でも文字化けが起こってしまいます。 これの原因とは一体なんなのでしょうか? よろしくお願いします。 |
|
超メール初心者あらため宗佑です。 procmailの転送設定、自己解決しました。 記述が足りなかっただけでした。 うーん、奥が深いですね、メール転送。 これからスクリプトを徐々に複雑にしていこうと思います。 でもprocmailを記述しているHPって少ないものなんですね。 載っている例も基本的なものです。 私も自分で試している途中ですが、procmailの達人みたいな例の 載っているHPをどなたかご存知内でしょうか? お願いいたします |
|
@雅人さん > ローカルな環境(win95)でも メモ帳などのエディタで化ける、ということならば EUC を読めるエディタを入手して下さい。 > アップロード先(virtualave.net) でも ブラウザの文字コード設定を「日本語 EUC」として直るならば、 CGI の出力する日本語部分が短かすぎるため、ブラウザが 文字コードを正しく解釈していないのでしょう。その場合は、 print "Content-type: text/html\n\n"; を print "Content-type: text/html; charset=EUC-JP\n\n"; として下さい。 @宗佑さん > でもprocmailを記述しているHPって少ないものなんですね。 > 載っている例も基本的なものです。 確かに少ないですね。僕もあまり見かけたことがありません。 ただ、基本的なところをわかっていれば procmailrc(5) と procmailex(5) でなんとかなることも多いです。 @Madstar さん うーん、さっぱりです。シリアルポートの操作さえしたことがないので…。 |
|
> print "Content-type: text/html; charset=EUC-JP\n\n"; > として下さい。 というより、Content-type ヘッダには EUC-JP/Shift_JIS/ISO-2022-JP などの charset を付加 *すべき* です。 僕のところの CGI プログラムには一部にしか付いていませんが、 これは悪い CGI の見本です。必ず charset を付けましょう。 |
|
どうも、ありがとうございました! 無事できました。 |
|
みなさん、はじめまして。海苔王と申します。 現在、ソラリス7でサーバーを構築しています。 apache,sendmail,popper と動かしてきて、昨日までは メールが動いていたのですが、突如、受信ができなくな ってしまいました。電八で出たエラーは以下のとおりです。 +OK QPOP (version 3.0.2) a ******starting. C: USER *** S: +OK Password required for ****** C: PASS ******** S: -ERR [SYS/TEMP] maillock error 3: '/usr/mail/*****' といった内容でした。sendmail.def からいろいろ見直したのですが、 うごきませんでした。どうかアドバイスお願いします。 |
|
チェック項目を思い付くままに。 1. /var/log/messages や /var/log/maillog に詳細なエラーは出ていないか 2. /usr/mail/ のパーミッションがおかしくなったのではないか (ls -ld /usr/mail) 3. /usr/mail/ にロックファイルらしきものは残っていないか (ls -lA /usr/mail) 4. ディスクの残り容量は (df -k)。i-node space が枯渇していないか (dk -ki) 5. ソースから grep maillock して、エラー箇所を捜し出す あと重要なのが、全ユーザでメールを取得できないのか、 一人だけメールを取得できないのかってこと。全ユーザなら 1,2,4 あたり。一人だけなら 3 をチェック。 ってな感じでしょうか。 |
|
>うーん、さっぱりです。シリアルポートの操作さえしたことがないので…。 残念です(T_T) まぁシリアルポートなんて今更余り使わないですよねぇ(^_^;) いろいろ検索かけてるんですが、さっぱりです。 |
|
>まぁシリアルポートなんて今更余り使わないですよねぇ(^_^;) DOS時代には、awkで print "AT" > "AUX" みたいな感じでモデムとお話してましたが、 Windowsではどうなんだろう…試してません(^^; |
|
> シリアルポート ぼくの当てにならない記憶によると、 winでシリアルポートを開くときはAPIのCreateFile()を使うはずです。 その辺を調べてみてください。 で、この辺のソースはwin系と*nix系での互換性を維持するのは 難しいところだと思います。 ぼくはCygwinは使ったことありませんが、おそらくopen()を実装するのに このAPIを使ってると思うので、もしかしたら開けるかもしれません。 が、結局フラグが違うでしょうからあまり意味無いと思います・・・。 #そもそもLinuxのopen()ってシステムコールですしね |
|
初めまして。 Perlの勉強をし始めたばかりなのですけど、ソケットを使ったクライアントプログラムの作り方とか…全くの初心者な私にはすごく解りやすくて、それに読みやすかったです。 全部説明しよとう難しくなってるサイトや、簡単に説明しようと補足説明が抜けてるサイトも多いですけど、このサイトの説明はとても解りやすいです。 えっと感想をここに書いて良い物かどうか解りませんが、本当に参考になりました。ありがとうございます。 |