
Ubuntu日本語フォーラム

ログインしていません。
Ubuntu 7.04を利用している者です。
子供にも利用させているのですが、深夜までPCで遊んでしまうので困っています。
そこで、PCをする時刻を制限したいと思っています。
例えば
月曜〜金曜は PM4:00〜PM6:00
土日 PM12:00〜PM6:00
どなたか設定方法をご存知な方はいらっしゃいませんか?
オフライン
ログイン可能な時間帯を制限するだけであれば、/etc/security/time.confを
設定することで行えます。
http://www.atmarkit.co.jp/fsecurity/rensai/securitytips/036time.html
まずこちらで、
・月曜〜金曜は PM4:00〜PM6:00
・土日 PM12:00〜PM6:00
にしかログインできないようにしてください。
そして状況的には「時間が来たら強制的に利用終了」もされたいのだと思います。
shutdownしてしまっても良ければ、cronでできます。
[アクセサリ]→[端末]から
sudo crontab -e
として、
00 18 * * * shutdown -h +5
を設定しておけば毎日18:00になるとシャットダウンプロセスが開始され、
18:05に電源を切る処理が走ります。
オフライン
iptablesとかでxserverへのアクセスを制限したりすると面白いかもしれないですね。
ただの思いつきですが(´∀`)
本気でやるとなるとSELinuxになるでしょうが、私には難しすぎて解説できないのでリンクだけ。
https://wiki.ubuntu.com/SELinux
オフライン
hitoさん。ありがとうございます。
>ログイン可能な時間帯を制限するだけであれば、/etc/security/time.confを
>設定することで行えます。
>http://www.atmarkit.co.jp/fsecurity/ren … 6time.html
早速、以下のように設定を変更してみましたが、普通にログインできてしまいます。
何か設定方法に誤りがあるでしょうか?
1. /etc/security/time.confファイルに
*;* & !tty*;*;Wk1600-1800
を追加。(PM4:00〜PM18:00の間しか全てのユーザがログインできないように設定)
this is an example configuration file for the pam_time module. Its syntax
# was initially based heavily on that of the shadow package (shadow-960129).
#
# the syntax of the lines is as follows:
#
# services;ttys;users;times
#
・
中略
・
#xsh;ttyp*;root;!WdMo0000-2400
*;* & !tty*;*;Wk1600-1800
#
# End of example file.
2.pam_time.soの有効化
account requisite pam_time.so (この行のコメントをはずす)
# Uncomment and edit /etc/security/time.conf if you need to set
# time restrainst on logins.
# (Replaces the `PORTTIME_CHECKS_ENAB' option from login.defs
# as well as /etc/porttime)
account requisite pam_time.so
3.PCの再起動
4.ログイン (現在時刻が12:00PMですがログインできてしまいます。)
Cron ですが、
コード:
00 18 * * * shutdown -h +5ron
でためしてみましたが、 Shutdownプロセスが開始されません。
ログインしているユーザにルート権限がないとできないのでしょうか?
オフライン
kamekichi による投稿:
1. /etc/security/time.confファイルに
*;* & !tty*;*;Wk1600-1800
この設定は「コンソールからのログインをのぞいて」16-18時にしか
ログインできないようにする、です。
コンソールというのはキーボードやマウスやモニタに正面に向かって
アクセスする、通常のログインのことですから、これを塞がなくては
いけません。
*;*;*;Wk1600-1800
とすれば良いはずです。(テストしてません)
kamekichi による投稿:
Cron ですが、
00 18 * * * shutdown -h +5ron
でためしてみましたが、 Shutdownプロセスが開始されません。
ログインしているユーザにルート権限がないとできないのでしょうか?
こちらは、
00 18 * * * /sbin/shutdown -h +5
としてみてください。
sudo crontab -e で設定してあれば、特に他の条件はありません。
最後の編集者: hito (2007-08-13 14:36:40)
オフライン
hitoさん、
ありがとうございます。
早速、教えて頂いた通りに以下の手順で設定してみました。
1./etc/security/time.confファイルに *;*;*;Wk1600-1800の追加
結果
残念ながら、時間外で普通にログインできました。。
2. Cronの設定
御指示頂いたコードは、
コード:
00 18 * * * /sbin/shutdown -h +5
なのですが、これだと、18:00に確かにシャットダウンしますが、その後すぐに電源をいれて
しまうと普通にログインできてしまうので再度電源をいれても10分後に電源がきれるようにコード
を追加しました。(せっかちなので時間がきたら2分後に電源がきれるようにしました。)
# m h dom mon dow command
00 00 * * * /sbin/shutdown -h +2
10 00 * * * /sbin/shutdown -h +2
20 00 * * * /sbin/shutdown -h +2
30 00 * * * /sbin/shutdown -h +2
40 00 * * * /sbin/shutdown -h +2
50 00 * * * /sbin/shutdown -h +2
00 01 * * * /sbin/shutdown -h +2
10 01 * * * /sbin/shutdown -h +2
20 01 * * * /sbin/shutdown -h +2
30 01 * * * /sbin/shutdown -h +2
40 01 * * * /sbin/shutdown -h +2
50 01 * * * /sbin/shutdown -h +2
・・中略
00 15 * * * /sbin/shutdown -h +2
10 15 * * * /sbin/shutdown -h +2
20 15 * * * /sbin/shutdown -h +2
30 15 * * * /sbin/shutdown -h +2
40 15 * * * /sbin/shutdown -h +2
50 15 * * * /sbin/shutdown -h +2
00 18 * * * /sbin/shutdown -h +2
10 18 * * * /sbin/shutdown -h +2
20 18 * * * /sbin/shutdown -h +2
30 18 * * * /sbin/shutdown -h +2
40 18 * * * /sbin/shutdown -h +2
50 18 * * * /sbin/shutdown -h +2
・・中略
00 23 * * * /sbin/shutdown -h +2
10 23 * * * /sbin/shutdown -h +2
20 23 * * * /sbin/shutdown -h +2
30 23 * * * /sbin/shutdown -h +2
40 23 * * * /sbin/shutdown -h +2
50 23 * * * /sbin/shutdown -h +2
このコードを使うと確かに普通にPCを利用できるのは16:00〜18:00の間だけになります。
(16:00〜18:00以外は10分おきにシャットダウンプロセスが開始される。)
ただ、ちょっとプアーなコードであると思います。
おそらく、数行で同様の内容のコードを書けると思うのですが、、、こういうものなのでしょうか??
オフライン
PAMが効かない理由は追いかけていませんが、cronについては、
* 0-15,18-23 * 1,2,3,4,5 /sbin/shutdown -h +2 * 0-11,18-23 * 6,7 /sbin/shutdown -h +2
あたりでどうぞ。平日は16:00-18:00の間、土日は12:00-18:00にだけ
使えると思います。……祝日のフォローは考えていません。
修正したい場合、man 5 crontab として頂けると記法が分かると思います。
祝日フォローは思いつきですが、祝日にだけ sudo touch /root/todayok をして頂いて、
もともとのcrontabを以下のようにしておく、というのが手かもしれません。
/root/todayok がなければシャットダウンがかかります。祝日が終わったら
sudo rm /root/todayok して消してください。
* 0-15,18-23 * 1,2,3,4,5 cat /root/todayok || /sbin/shutdown -h +2 * 0-11,18-23 * 6,7 cat /root/todayok || /sbin/shutdown -h +2
オフライン
hitoさん、ありがとうございます。
Cronについてですが、教えていただいたコードでは、うまく動作しなかったのですが、
以下の通りに変更してみたらPC利用可能時間外にShutdownできました。
変更したコード
0-59 0-15,18-23 * * 1,2,3,4,5 /sbin/shutdown -h +2
0-59 0-11,18-23 * * 6,7 /sbin/shutdown -h +2
0-59の箇所は*でいいと思うのですが、とりあえず希望通りに動きました。
祝日の件もいろいろと教えて頂いてありがとうございます。
子供向けに利用時間を制限できるGUI化されたアプリケーションができれば、
私と同じ悩みをもつ多くの(?)ユーザに利用してもらえるかもしれませんね。
オフライン
利用時刻の制限について、pamの設定がうまく動作しないという問題点があったようですが、
下の方法で問題なく動作しましたので、参考にしていただければと思います。
gedit /etc/pam.d/common-account
#下の1行を追加して上書き保存してください
account requisite pam_time.so
gedit /etc/pam.d/login
#下の#を削除して上書き保存してください
#account requisite pam_time.so
gedit /etc/security/time.conf
#このスレッドもしくはグーグル先生を参考に設定してください。
sudo crontab -e もしくは sudo gedit /etc/cron.d/anacron
#このスレッドもしくはグーグル先生を参考に設定してください。
kamekichiさんの言われるようにユーザのログイン時間制限ができるGUIパッケージがあれば、
世界中のUbuntuユーザに喜ばれるような気がします。ひょっとしたらもうあったりして?
オフライン