最近、彼らは訪問者が無料で使用できるように小さなカフェの1つにラップトップをセットアップするように私に頼みました、さらに、時間制限があり、データを心配しません。
したがって、 初期状況と必要な機能 :
- ノートブックAcer i3、4GB RAM、WIFI / USB、640GB HDD(1リカバリパーティション+ 1システム/データ)、Win 7 Home Premium;
- 必要なセッション時間は30分に制限されています。
- 2分間のセッション間の休憩(ログイン間の最小間隔)。
- さらに、セッションデータは保存されません-セッションの終了時にラップトップから削除する必要があります。
- 時間制限なしで特定のユーザー(カフェの従業員)のために働く能力;
- 必要に応じて、プリインストールされたWindows 7を使用する機能。
インターネットカフェのプログラムのトピックに関する集中的なインターネット検索の後、私はスズメに銃を撃つ価値がないと判断し、問題を解決するために次のツールを選択しました。
- 2番目の主要なオペレーティングシステムとしてのLinux(Ubuntu 12.04 LTS。これは数年のアップデートでサポートされるため)。
- 12.04に存在し、セッションの終了後にすべてのユーザーデータを削除するゲストアカウント。
- オプションのWindowsブートを使用した二重の非表示ブート。
順番に。
システムのインストール
「System-Management-Disk Management」のウィンドウで、メインパーティション(「Acer」というラベル)を200 GB減らし、ディスクの未フォーマットの空き領域(200 GB)を取得し、そこにubuntuを配置しました。
Ubuntuのインストールは標準で、cd / dvdから起動します。
インストール中に、「既存のオペレーティングシステムの隣」オプションを選択できます。手動パーティション分割を選択しました。
- (高度)ルートルートパーティション(「/」として使用)20 GB ext4(/ dev / sda5);
- ホームパーティション(「/ home」として使用)176 GB ext4(/ dev / sda6);
- スワップファイルセクション(スワップとして使用)4 GB(/ dev / sda7)。ただし、原則的には不要です。 ディスクへの保存を伴うディープスリープは想定されておらず、インターネットサーフィンには必要ありません。
ユーザー名の管理者でシステムをインストールします(「admin」はすでにubuntuで予約されています)。
最初の再起動後、ネットワーク/ WIFIを接続し(まだ接続していない場合)、すべての更新プログラムと、通常の操作に必要ないくつかの追加をインストールします。
sudo apt-get update sudo apt-get dist-upgrade sudo apt-get install flashplugin-downloader sudo apt-get install gimp
java(たとえば、オンラインバンキングなど)を使用する予定がある場合は、それも配置します。
sudo apt-get install openjdk-7-jre icedtea-7-plugin
このラップトップでは、最初のパーティション(/ dev / sda1)がWindowsリカバリパーティションであるため、GRUBブートメニューから有害な方法から削除することをお勧めします。
私はこれが好きでした:
/boot/grub/grub.confから目的のセクションを/etc/grub.d/40_customにコピーしました:
#!/bin/sh exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. menuentry "Windows 7 (loader) (on /dev/sda2)" --class windows --class os { insmod part_msdos insmod ntfs set root='(hd0,msdos2)' search --no-floppy --fs-uuid --set=root 70E253CBE25393E6 chainloader +1 }
ファイルの最後に追加する/ etc / default / grub
GRUB_DISABLE_OS_PROBER="true"
ターミナルでGRUBメニューの更新を実行します
sudo update-grub
これで、リブートすると、Linuxに関連するアイテムと、インストールされたWindowsをロードする最後のアイテムのみがメニューに表示されます。
ブートメニューを非表示にする必要がある場合、ubuntu 12.04に存在する1つのバグ、つまり、 / etc / default / grubのパラメーターの変更だけをバイパスする必要があります。
GRUB_HIDDEN_TIMEOUT="5" GRUB_HIDDEN_TIMEOUT_QUIET="false"
起動時にメニューを非表示にすると失敗します。
これは、/ etc / grub.d / 00_headerファイルの最後にフラグメントを追加することで処理されます
### BEGIN Hidden Menu Test ### cat << EOF if [ ${timeout} != -1 ]; then if sleep --verbose --interruptible ${GRUB_HIDDEN_TIMEOUT} ; then set timeout=0 fi fi EOF ### END Hidden Menu Test ###
最終的に、ファイル/ etc / default / grubはこのようになります。
GRUB_DEFAULT="0" GRUB_HIDDEN_TIMEOUT="5" GRUB_HIDDEN_TIMEOUT_QUIET="false" GRUB_TIMEOUT="5" GRUB_DISTRIBUTOR="`lsb_release -i -s 2> /dev/null || echo Debian`" GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX="" # Uncomment to enable BadRAM filtering, modify to suit your needs # This works with Linux (no patch required) and with any kernel that obtains # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...) #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" # Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL="console" # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' GRUB_GFXMODE="640x480" # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID="true" # Uncomment to disable generation of recovery mode menu entries #GRUB_DISABLE_RECOVERY="true" # Uncomment to get a beep at grub start #GRUB_INIT_TUNE="480 440 1" GRUB_DISABLE_OS_PROBER="true"
そしてもちろん、再起動する前にgrubを更新することを忘れないでください:
sudo update-grub
BIOS画面が5秒間消えた後、ESCを押すと、GRUBメニューが表示されます。そうでない場合、最初のデフォルトメニュー項目(Ubuntu)が静かにロードされます。
ゲストセッションを構成する
- 新しいユーザーユーザーを作成します(これが最初にゲストのサンプルになり、次にカフェの従業員のログインになります)。
- 壁紙を変更します。
- デスクトップへの必要なショートカットを設定し、Unityパネルを好みに合わせて構成します。
- LibreOffice、Gimpなどの設定を変更します。
ログアウトして、管理者として再度ログインします。
フォルダ/ etc / guest-session / skelを作成します。
sudo mkdir -p /etc/guest-session/skel
ユーザーのホームディレクトリをそこにコピーします。
sudo cp -a /home/user/* /etc/guest-session/skel/ sudo cp -a /home/user/.* /etc/guest-session/skel/
ゲストとしてログインした場合、デスクトップと環境はユーザーユーザーとまったく同じに見えるはずです。
ゲストセッションの制限時間
管理者としてシステムにログインします。
remove_account()関数の最後にある/ usr / sbin / guest-accountファイルに次の行を追加します(ゲストのログアウト時に実行されます)。
remove_account () { … … rm -f /tmp/*.guest touch /tmp/$(date -d "today" +"%Y%m%d%H%M").guest }
次の内容で/etc/guest-session/skel/.guest.shファイルを作成します。
#!/bin/sh if [ -f /tmp/*.guest ] then TIMEOUT=2 TIMESTAMP=`date -d "today" +"%Y%m%d%H%M"` for FNAME in /tmp/*.guest do OLDTIME="$(basename $FNAME .guest)" done if [ $(($TIMESTAMP-$OLDTIME)) -lt $TIMEOUT ] then sleep 10 notify-send -u critical " !" " ( )." sleep 10 gnome-session-quit --logout --no-prompt fi fi sleep 10 notify-send -u critical " " " 30 .\n\n!" sleep 600 notify-send -u critical " 20 ..." sleep 600 notify-send -u critical " 10 ..." sleep 300 notify-send -u critical " 5 !\n ." sleep 300 notify-send -u critical " " " 10 .\n ." sleep 10 gnome-session-quit --logout --no-prompt
そして実行可能にします:
sudo chmod a+x /etc/guest-session/skel/.guest.sh
/etc/guest-session/skel/.profileファイルの最後に行を追加するだけです
$HOME/.guest.sh &
そして実際にはそれだけです。
結果
その結果、警告なしでメニューを表示するラップトップを取得しました。管理者、ユーザー、および「ゲスト」の3人のユーザー、および「ゲスト」セッションの制限時間は30分、強制停止は2分です。 ラップトップを再起動すると、一時停止をリセットできます。 これが望ましくない場合は、.guestファイルを/ tmpではなく、たとえば/ var / log( / usr / sbin / guest-accountを参照)に保存する価値があります。
特定の間隔で、ユーザーには残りのセッション時間に関するメッセージが表示されます。
セッション中に、ユーザーを変更することができます(たとえば、ユーザーをシステムに完全に終了させることなく、ユーザーに戻したり、ゲストに戻したりすることができます)。
短所
スクリプト.guest.shはホームフォルダーには表示されませんが(少なくともすぐには)、プロセスのリストには表示され、このプロセスはゲストによって静かに強制終了されます(方法がわかっている場合)。これにより、原則としてセッションの時間制限が削除されます。
このソリューションを改善するための建設的な批判と提案を歓迎します!