デジタル百葉箱製作覚え書き

ラズベリーパイで教材づくり IOT百葉箱

パーミッションをいじり中

明けましておめでとうございます。


PHPからシェルスクリプトが動かないのであれこれやってます。
そのうち、/etc/sudoers を編集すると、一般ユーザーにsudo権限を与えることができる、という記事があったので、やってみました。そしたらsudo が一切きかず、/etc/sudoers の編集すらできなくなり、途方にくれました。
WindowsにSDカードを移して編集しようとしたけど、できず。
他のリナックスマシンに入れて、何とか編集でき、ようやく元通りになりました。
焦りました。
その後いろいろ調べたら、sudoersは直接編集してはダメ絶対。だそうです。やっちまったな。
visudoというコマンドを使うと、安全に編集できるそうです。


apacheは、www-dataというユーザー名であることがわかったので、visudoしてみました。

$sudo visudo

次の1行を追記しました。

www-data ALL=(ALL) NOPASSWD: /home/pi/gnup/make-graph-monthly.sh

で、sudo reboot でラズパイを再起動します。


Windowsのgoogle chromeで、raspberrypiにアクセスするが、表示が変わらず。
一時ファイルの作成場所を/tmpにしてみたけど、これでもだめ。


で、しょうがないので、sudo visudo してさっきのをこのように書き換えました。

www-data ALL=(ALL) NOPASSWD: ALL

...動きました。ただし、gnuplotが再びトーフ化。
そして、NOPASSWORD: ALLだといろいろやばそうな気配がする。

ううむ。手ごわいな。

phpファイルに実行権を

昨日のエラーについて。
webページからphpを呼び出し、phpからシェルファイルを呼び出し、シェルファイルからgnuplotの.gnuファイルを呼び出し、ってやってたらエラーに。
シェルファイルには、
chmod +x /home/pi/gnup/make-graph-monthly.sh
で、実行権を与えていたので、大丈夫だろうたぶん。
あと、もしかしらた、phpファイルにも実行権が必要?と思い、
chmod +x /var/www/html/pastmontylydata.php
とやってアクセスしてみたが、ファイルは更新されてないっぽい。


関係ないけど、windowsのFFFTPで、ラズパイのパーミッションも変更できるんですねたった今気づいた。


ディレクトリのパーミッションにも実行権があるのに。
まだ、こんなエラーが出てる。

We trust you have received the usual lecture from the local System

Administrator. It usually boils down to these three things:


#1) Respect the privacy of others.

#2) Think before you type.

#3) With great power comes great responsibility.


sudo: no tty present and no askpass program specified

sudoがダメみたい?なので、make-graph-monthly.shの、catの前からsudoを削除する。たぶん必要ないと思ったから。

#1か月分のデータをまとめる20191227おー

for i in `seq -f %02g 1 31`;

do

if [ -e /home/pi/denpa-gardening/sensor_data/sensor_data_$1$i.csv ]; then

cat /home/pi/denpa-gardening/sensor_data/sensor_data_$1$i.csv >> /home/pi/denpa-gardening/sensor_data/sensor_data_monthly.csv

fi

done

...動かない。よく考えれば(よく考えなくても)sudoでできないのに一般ユーザーの自分ができるわけないじゃないか(えなりかずきふう)。
よくわからなくなってきたので、意味もなくsudo rebootする。


どうやらPHPからシェルを実行しようとすると、その権限はwebサーバであるapacheにあると。そして、apacheには権限がないからsudoできないらしい?
よくわかりません。残念ながらこのまま年を越すことにします。

エラー発生

webページのpastmonthdata.php で、グラフが更新されない。見てみるとCSVファイルも生成されていない。SSHで直打ちしたときはできていたので、パーミッションがらみと思われ、エラーログを見たらこうなってました。
pi@raspberrypi:/var/log/apache2 $ cat error.log

gnuplot> set output "/home/pi/denpa-gardening/sensor_data/sensor_data_temp_humid_monthly.png"

^

"/home/pi/gnup/temphumidmonthly.gnu" line 12: cannot open file; output not changed

system error: Permission denied



gnuplot> set output "/home/pi/denpa-gardening/sensor_data/sensor_data_temp_monthly.png"

^

"/home/pi/gnup/tempmonthly.gnu" line 8: cannot open file; output not changed

system error: Permission denied



gnuplot> set output "/home/pi/denpa-gardening/sensor_data/sensor_data_humid_monthly.png"

^

"/home/pi/gnup/humidmonthly.gnu" line 8: cannot open file; output not changed

system error: Permission denied



gnuplot> set output "/home/pi/denpa-gardening/sensor_data/sensor_data_pressure_monthly.png"

^

"/home/pi/gnup/pressmonthly.gnu" line 8: cannot open file; output not changed

system error: Permission denied


/home/pi/gnup/make-graph-monthly.sh: 16: /home/pi/gnup/make-graph-monthly.sh: cannot create /home/pi/denpa-gardening/sensor_data/sensor_data_monthly.csv: Permission denied

/home/pi/gnup/make-graph-monthly.sh: 16: /home/pi/gnup/make-graph-monthly.sh: cannot create /home/pi/denpa-gardening/sensor_data/sensor_data_monthly.csv: Permission denied

touch: cannot touch '/home/pi/denpa-gardening/sensor_data/sensor_data_monthly.csv': Permission denied

touch: cannot touch '/home/pi/denpa-gardening/sensor_data/sensor_data_monthly.csv': Permission denied


.gnuファイルが開けない。.csvファイルがcreateとtouchができてない。
眠いので明日にします。
やっぱり、年末進行で、検証をしっかりやっていなかったのが響いた。