2013年6月30日日曜日

Linux Mint≒ubuntuでKIOSK端末もどきを作る

Linux MintでKIOSK端末もどきを作った顛末。
ぶっちゃけubuntuでもKIOSK端末になるが、とにかくUnityがうざい。

KIOSK端末を作らなければならなくなり、簡単に仕上げるため、やっつけでLinux MintのKIOSK端末を仕上げた。

以下はLinux Mintを使っての作り方。

●どういうものをつくりたいのか?
・一定時間でゲストユーザの仕様がまっさらになる
 無駄にホームページを変えたり変なフォルダ作っていたりといろんなことをしてくれるので、何をされても最終的にまっさらになるようにしたい。
・ブラウザ以外いじれない
 無駄に(ry
・少なくとも思うように動かすには大変時間がかかる(linuxを知らないとクラックできない)
  クラックはもとより、無駄に(ry


・インストールするPCには、光学ドライブはつけない。

・PCにLinux Mintをインストールする
LILI(linuxlive usb creator)で、インストール用のライブUSBを作り、それでインストール。
http://www.gigafree.net/system/os/linuxliveusbcreator.html
今回はLinux Mint15(Mate版)を使った。
ubuntuを使わなかったのは、pcがATOMのD525で非力なので、3Dメニューは厳しい。
あと、いまいちUnityがわからない。うざい。
管理アカウントは、一応ホームディレクトリ暗号化しておくことをおすすめする。

インストールが終わった後、端末を開いて日本語環境整理。
日本語環境は、Linux Mint15のベースであるubuntu13.10のjapaneseteamより諸々拝借する。
http://www.ubuntulinux.jp/japanese
下のほうに掲載されているリポジトリを端末から入れていく。

Ubuntu 13.04の場合:

        wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
        wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
        sudo wget https://www.ubuntulinux.jp/sources.list.d/raring.list -O /etc/apt/sources.list.d/ubuntu-ja.list
        sudo apt-get update
手順に従い

sudo apt-get upgrade

sudo apt-get install ubuntu-defaults-ja

再起動後、コントロールセンターよりlanguage supportを開いて、日本語をシステム全体に適用。
これで日本語環境は整った。
日本語環境に関しては、ubuntu japanese teamの通りです。

次に、コントロールセンターから、ユーザとグループを開き、デスクトップユーザ(一般ユーザ)を普通に作る。
僕が作ったのはguestというユーザ。適当なパスワードを入力するが、
パスワードはログイン時に尋ねない、に設定。

次にログイン画面を開き、セキュリティの項目から自動ログインを有効にする、でguestを選択。

自動的にインストールされたアプリケーションをがりがり削除する。
firefoxとシステム関係の設定があれば大丈夫なので、それだけ残す。

一度管理アカウントから抜けて、ゲストアカウントにログイン。

コントロール・センター→スクリーンセーバーから、スクリーンセーバーを起動したら画面をロックする、のチェックを外す。


firefoxを起動し、KIOSK用の拡張を入れる。
それがこれ。R-KIOSK。
https://addons.mozilla.org/ja/firefox/addon/r-kiosk/

http://fine.ap.teacup.com/hepo/16.html
を参考に、設定していく。
現状のfirefoxのバージョンだと、navbarをtrueにするとまずいのでやらない。

次に、タブで開かれるのが色々まずいので、タブで開かないように
http://d.hatena.ne.jp/tanemori/20120630/browsernewtabpageenabled
を参考に、about:configで設定していく。
最後に、ホーム画面をgoogleなどの検索できるページに設定。
これでfirefoxはフルスクリーンのみ、右クリックメニュー禁止などのKIOSKっぽい感じになる。
この時、まだALT+F4(閉じる)が効くので、もし立ち上げた場合はそれで抜けられる。
また、「パネルの「アプリケーションの実行」ダイヤログボックスを表示する」で、
firefox -safe-mode
と入力すると、セーフモードで拡張が無効化された状態のfirefoxが起動する。

次に、コントロールセンターを開いて、自動起動するアプリにfirefoxを追加する。
追加を選んで、全項目にfirefoxと入力すればOK。
閉じてから、コントロールセンターからキーボードショートカットを呼び出す。
デスクトップにある、パネルの「アプリケーションの実行」ダイヤログボックスを表示する「以外」のショートカットをすべて無効にする。
無効にするのはバックスペースでできる。
最終的に、パネルの「アプリケーションの実行」ダイヤログボックスを表示するのショートカットも、滅多に使わない組み合わせで変更する。
これがキモ。
シャットダウンはCTRL+ALT+DELというおなじみの三つ指なので、逆に残しておく。
どうものこしておくとまずそうなので、これもなし。

次にメニュー。
コントロールセンターのメニューの編集から、全部表示させないようにチェックを外す。
また、mintmenuを右クリックして設定を出し、いらないチェックボックスを片っ端からオフにしていく。
すると、メニューをクリックしても何も表示されなくなるし、カスタムメニューやメインメニューでもコントロールセンターが出なくなる。

パネルも消す。
一番早いのが、パネルを右クリックして「新しいパネル」で新規に一つ作り、初めからあったパネルを右クリック→このパネルを削除する、で一気に消す。どうしてもからっぽのパネルは消せなかったので、
全部消したら、またパネルを右クリックして「プロパティ」。
自動的に隠すのチェックをオン。

一度これで動作確認のため、再起動する。
三つ指をついて再起動すると、guestユーザでフルスクリーンのfirefoxが立ち上がっており、パネルも見えないはず。

はたと気づくのが、ちょっとした設定だったりするときにどうするのかということ。
そこで、「パネルの「アプリケーションの実行」ダイヤログボックスを表示する」をショートカットで実行する。
デフォルトはALT+F2。変更してください。
出てきたウインドウに、「mate-control-center」と入力すると、コントロールセンターが開ける。
逆にここまで苦労してメニューを出すなら、ALT+CTRL+F1とかでコマンドラインでいじったほうが楽かもね、と思わせるくらいのうざさがあるから、
やっつけKIOSKとしては上等だろう。

全部設定したところで、KIOSK端末のかなめである書き戻し。
30分に一回初期化したかったので(長居されても困るし)、crontabとシェルスクリプトでお手軽に行うことにした。
まず、最終的なguestの設定が終わったところでログアウトし、管理者アカウントでログイン。
端末で
sudo cp -r /home/guest /home/guest.orig
としてコピーを取る。
改変されたくないのであれば、コピーは/root内に入れておくほうがいいかもしれない。
次にrootディレクトリにshutdown.shを作成する。
sudo vi /root/shutdown.sh
内容は、

#!/bin/sh
rm -rf /home/guest #強制的にすべてのguest以下を削除
cp -r /home/guest.orig /home/guest #guest.origとして保存していたものを、guestとして書き戻す
chown -R guest /home/guest #/home/guest以下のアクセス権をguestに。
shutdown -r now #すぐに再起動

次にcrontabを編集。
sudo vi /etc/crontab

http://www.server-memo.net/tips/crontab.html
を参考に設定する。
2時間に一回実行するには、
0  */2  *  *  * /root/shutdown.sh
と追記する。

これで2時間に一回再起動し、まっさらなKIOSK環境のguestアカウントが作れたことになる、はず。

疑問点、問題点
何とも中途半端だが、これだけ七面倒なことにしておけば、わざわざいろいろいじろうと思うやつもいないだろう。
そもそもALT+F4とか、ショートカットを無効にしてあるので、ターミナルから入れるような人でなければ入れないだろうし、
入ってもゲストアカウント。そのうえ一定時間で再起動がかかるという。
理想は、スクリーンセーバーのように、一定時間触らなかったらログアウト→書き戻しできれいになって、
だれか触ったら自動ログイン、なんだけどなあ。

2013年6月17日月曜日

Y字USB(二股USB)ケーブルの正しい使い方

目から鱗が落ちました。
なるほど、これが正しいのか。
http://jp.pqigroup.com/faq_in.aspx?mnuid=1334&modid=277&nid=460


まず、ミニb端子を抜いておいて、A端子の根っこの報を接続、次に端を接続、
最後に機器を接続。

何故調べようと思ったのかというと、
Transcend ポータブルHDD StoreJet 2.5 Mobile SATA 500GB TS500GSJ25M
を買って前面に付いているUSBコネクタに繋いでも認識しなかったから。

因みに正しいつなぎ方をしても認識しなかったので、背面に繋ぎなおしたところあっさり接続。
マザーの仕様らしい。色々あきらめる。

2013年6月12日水曜日

wiresharkでインターフェースが見えない

linuxmint15でwiresharkをインストールしたところ、どうもネットワークインターフェースが見えない。
有線も無線もないと、こう仰有る。

そんなことはないので調べたところ、

wireshark インターフェース 見えない

http://linuxandxx.blog.fc2.com/blog-entry-39.html

に答えが書いてあった。
setcapコマンドでケーパビリティを変更するらしい。

sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap

引用元の
http://www005.upp.so-net.ne.jp/develop-tom/deb/wireshark-deb.html

に詳しく書いてあるが、言われてみればなるほど、という感じ。
setcap・・・知らなかった・・・。
http://www.usupi.org/sysad/183.html

も参考になる。

ちなみにwindowsでも管理者権限を持っていないと、同様のことが起きるかもしれない、らしいというのをどこかでちら見した。