- - PR -
パスワード有効期限に対する通知(警告)メールについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-12-08 19:51
いつもお世話になっております。
SMTP&POPサーバとして稼動しているRedHatLinux9のサーバに 複数のユーザが存在します。それぞれのユーザのパスワードに 有効期限を設定し、一定期間でパスワードを変更してもらう 運用を行いたいのですがそれぞれのユーザにパスワードの有効 期限がきれる何日か前に「パスワードの有効期限がきれます」 という内容のメールを自動的に送信したいのですが、可能 でしょうか? WEBで検索した情報では、サーバにログインした際にメッセージ を表示させるようなことはできると書いてありましたが、 一般のユーザにメーラやブラウザからのパスワード変更以外で このサーバにログインさせるような運用は行ってないんです。 何とかして自動的にメールで通知(警告)メールを送りたい のですが、どなたかご存知の方がおられましたら教えて下さい。 宜しくお願いします。 |
|
投稿日時: 2003-12-08 20:00
やったことはないですが・・・
cron(定期的に処理を行なうプログラム)を使って 毎日「/etc/shadow(パスワード情報登録ファイル)」を見に行って 有効期限をが近づいていたら mailを送るようなスクリプト書いてあげればいいんではないですかね? |
|
投稿日時: 2003-12-08 20:19
takeさんご回答ありがとうございます。
確かにできそうな気がしますが、本当に初心者で申し訳ないのですが まともに動くスクリプト自体作成することができないレベルなのです。 もしよければ参考になるようなスクリプトやスクリプトの作成方法が 記載されているようなWEBの情報を教えて頂けますでしょうか。 スクリプト以外の方法って無いものなのでしょうか??? |
|
投稿日時: 2003-12-09 14:43
スクリプト(シェル)レベルでの制御以外ならば、ウィンドウズと同じように全て実行ファイル
で賄うとかするしかないでしょう。各種コンパイラはデフォルトでついてますから。 #include <string.h> #include <unistd.h> #include <time.h> #include <shadow.h> #include <errno.h> #define RANGE 7 extern int errno; main() { __uid_t uid=0; __gid_t gid=0; struct spwd *shadow; time_t secs, *timer; unsigned char buf[2048]; unsigned long sgap, mgap; unsigned int hgap, days, dstd=0; unsigned int i,len; seteuid(uid); setegid(gid); shadow = (struct spwd *)malloc(sizeof(struct spwd)); memset(buf, 0x00, sizeof(buf)); while(shadow = getspent()){ if(shadow->sp_expire < 0) continue; sprintf(buf, "%ld", shadow->sp_expire); len = strlen(buf); for(i=0; i<len; i++){ dstd *= 10; if(isdigit(buf[i]) == 0) exit(-1); dstd += (buf[i] - 0x30 ); } timer = (time_t *)malloc(1); secs = time(timer); free(timer); sgap = secs % 60; secs -= sgap; secs /= 60; mgap = secs % 60; secs -= mgap; secs /= 60; hgap = secs % 24; secs -= hgap; days = secs / 24; if(dstd > days) if((dstd - days) < RANGE) system("echo | /usr/sbin/sendmail user@host"); } free(shadow); exit(0); } シャドーを見る訳ですから、当然 root 権限は必要になるでしょう。 |
1