請問執行權限的問題

看板FreeBSD作者時間21年前 (2004/05/29 18:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
請教各位大大們: 說明一、小弟使用自行寫的一支 perl(030_CreateEmailAccount.pl) 程式,會 由 crontab 執行之(身份是 root) 1.程式中會 use conndb.pm 2.這支程式又會呼叫一些系統程式:pw、chown、chmod 等等 說明二、網頁PHP也會呼叫到 030_CreateEmailAccount.pl(但網頁執行者是 nobody) 在(說明一)中,如果是使用 crontab 執行之則不會有問題,(說明二)由PHP呼叫這 個 030_CreateEmailAccount.pl 則會無法執行。error.log如下: Can't locate conndb.pm in @INC (@INC contains: /usr/local/lib/perl5/site_perl /5.6.1/mach /usr/local/lib/perl5/site_perl/5.6.1 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.6.1/BSDPAN /usr/local/lib/perl5/5.6.1/mach /usr/local/ lib/perl5/5.6.1 .) at /home/bofan/program/030_CreateEmailAccount.pl line 3. BEGIN failed--compilation aborted at /home/bofan/program/030_CreateEmailAcco unt.pl line 3. 這個錯誤訊息,如果我把行號 3 的 conndb.pm 放至 /usr/local/lib/perl5/5.6.1 下 則可解決,想請教各位大大們的是,是否有其他的解決辦法!因為我比較希望能保持所 有的程式放在同一個目錄下,不知 perl 執行時是否有 path 可設,就如同 java 在執行時設的 JAVA_HOME or CLASSPATH 類似的功能。 mkdir: /home/student/CSIE/m90/m9021522: Permission denied pw: you must be root to run this program 如果由(說明一)的方式執行之則不會有問題,但由 PHP 執行之則會有權限的問題。不 知perl在呼叫外部程式是否有定義執行者身份的方式呢? ex. perl 程式呼叫的方式如下: $dir="/home/student/$department/$degree/$user"; `mkdir -p $dir`; $group="student"; $shell="/bin/sh"; `echo $passwd | /usr/sbin/pw useradd -n $user -d $dir -g $group -c "" -s $shell -h0`; -- ※ Origin: 交大機械工廠 ◆ From: mis.ndhu.edu.tw
文章代碼(AID): #10k5zU00 (FreeBSD)
文章代碼(AID): #10k5zU00 (FreeBSD)