68user's page 掲示板

Prev< No. 3177〜3182> Next  [最新発言に戻る] [過去ログ一覧]
No. 3177 # ある厨 2003/04/05 (土) 00:56:50
ども。以前erro.cgiの件でお世話になった者ですが、
どうしても解決できない事が有り、質問させてください。

Web上にてユーザーがアカウントを自動登録できるようにしたのですが
登録したユーザーのquotaをcronで設定したく下記のようにしてみました。
つか見つけてきました。
*/5 * * * * edquota -p foo `awk -F":" '$3 > 1000 {print $1}' /etc/passwd`

idが1000以上のユーザーに予め設けたユーザーfooのquotaを例えばsoft 20000
と同じに設定すると言うものですが、これをcronで走らせても
なぜか登録ユーザーのquotaには反映されません。
しかし、直接#rootで上記コマンドを打つと反映されます。

で、コマンドが長すぎるのかとも思い、
下記のように二つに分けてcronで走らせてもだめでした。
勿論、直接コマンドではOKです。

*/5 * * * * awk -F":" '$3 > 1000 {print $1}' /etc/passwd > member_id.txt
*/6 * * * * edquota -p foo `cat /root/member_id.txt`

二つに分けた場合ではmember_id.txtは作成されているから
edquota -p info `cat /root/member_id.txt`がcronで作動してない
ということになりますが、理由がわかりません。

長文で申し訳ありませんがご教授お願いします。

No. 3178 # ある厨 2003/04/05 (土) 01:11:02
あ!
edquota -p info `cat /root/member_id.txt`がcronで作動してないは
edquota -p foo `cat /root/member_id.txt`がcronで作動してないです。

No. 3179 # ある厨 2003/04/05 (土) 02:11:59
すみません。自己解決しました。
cronからメールが来てました。
/bin/sh: edquota: command not found

/usr/sbin/edquotanにしたら解決しました。
板汚してすみませんでした。
で、ついでと言っては何ですが、、、

suEXECを使ったCGIはその所有者の権限で動くわけですが、
その所有者には/bin/falseとしてシェルは利用出来ないようにしています。
でも、コマンドが使える(例えばtelnet.cgi)CGIではcat /etc/passwd
等と出来てしまいます。
これは誰の権限で動いているのでしょうか。
OSはLinuxで鯖はApacheです。

No. 3180 # 68user 2003/04/05 (土) 16:42:15
>>3179 ある厨
> その所有者には/bin/falseとしてシェルは利用出来ないようにしています。
/etc/passwd に書くログインシェルはあくまで
    「ログインするときに起動するシェル」
です。

ログインとは telnet や rlogin や ssh 経由でログインすることを指します。
よって、cron から起動したり、setuid(2) して exec(3) する場合は関係
ありません。

web サーバは nobody や www 権限で動かされることが多いでしょうが、
/etc/passwd で
      nobody:*:65534:65534:Unprivileged user:/nonexistent:/sbin/nologin
      www:*:80:80:World Wide Web Owner:/nonexistent:/sbin/nologin
などと /sbin/nologin となっているのは、単にその権限でログインさせない
という設定になっているだけで、その権限でのプロセスの実行を制限している
わけではありません。


>>3176 へにか
(狭義の) checksum や parity や CRC や hash はデータ誤りを検出するための
一方式だと思うのですが、「データ誤りを検出するためのもの」一般は英語で
何て言うんでしょうね?

      http://www.wikipedia.org/wiki/Checksum
にあるように「integrity-protection measure」としか言いようがないなら、
「データ誤りを検出するためのもの」という意味で「checksum」という用語を
使ってもいいんじゃないかなぁ、となんとなく思っております。

No. 3181 # ある厨 2003/04/05 (土) 20:10:43
>>3180 68user
なるほど、ただ単にログインできないと言うことであって
実行制限ではないと言うことですか。
勉強になりました。

#やぱり独学では限度があるにゃぁ。

No. 3182 # へにか 2003/04/05 (土) 21:31:38
>>3180 68user
>「データ誤りを検出するためのもの」一般は英語で何て言うんでしょうね?
Error Detecting Code (誤り検出符合)です。

因みに、CRCは、なんと、1bit-errorまでは訂正できてしまいます。
即ち、Error Correcting Code (誤り訂正符合)でもあるところが、parityやchecksumとは違うところで、面白いです。
#訂正方法は遠い昔に忘れました・・・
#hashは方式を知らないので、訂正できるのかどうか分からないです。

#今日本屋で調べても、歴史的なことは見つかりませんでした。A^^;

http://www.wikipedia.org/ は現在crashしているみたいです。

Prev< No. 3177〜3182> Next  [最新発言に戻る] [過去ログ一覧]