UbuntuのUnityのmenu barには、私にとって不要なアイコンがある。まず、メールのアイコンだ。これは、メールやチャットやTwitterなどにアクセスできる機能だ。しかし、私はその手のサービスを利用するのには、別のソフトウェアを使っているので、このアイコンからアクセスできる機能は使っていない。むしろ、このアイコンは隣のネットワークとかサウンドのアイコンをクリックしたい時に邪魔になる。
このアイコンは、indicatorと呼ばれている。メールのアイコンが必要なければ、indicator-messagesというパッケージを取り除くことによって、消すことができる。
sudo apt-get remove indicator-messages
さて、もうひとつ、私にとって不要なindicatorがある。ユーザー切り替えの項目だ。Ubuntuに移行した当初、このアイコンに悩まされた。というのも、このメニュー項目は、確認もせず有無を言わさずログイン画面に切り替わってしまう。しかも、このメニューは非常に誤クリックしやすい位置にあるのだ。当時、一瞬何が起きたか分からずに困惑したものだ。思うに、大多数のユーザーにとって、あるユーザーでログインしたままのユーザー切り替えは不要ではないか。
残念ながら、この機能を受け持つパッケージ、indicator-sessionを取り除くと、シャットダウンなどのindicatorも消えてしまう。幸い、ユーザー切り替えの項目だけを非表示にする方法はある。
dconf-editorでapps→indicator-sessionを開き、user-show-menuのチェックを外せば良い。
ちなみに、lightdm上でログインしたままのユーザー切り替えは、dm-toolを使うことによってコマンドからでも行える。
$dm-tool -h Usage: dm-tool [OPTION...] COMMAND [ARGS...] - Display Manager tool Options: -h, --help Show help options -v, --version Show release version --session-bus Use session D-Bus Commands: switch-to-greeter Switch to the greeter switch-to-user USERNAME [SESSION] Switch to a user session switch-to-guest [SESSION] Switch to a guest session lock Lock the current seat list-seats List the active seats add-nested-seat Start a nested display add-local-x-seat DISPLAY_NUMBER Add a local X seat add-seat TYPE [NAME=VALUE...] Add a dynamic seat
さらに、Guestアカウントの問題もある。UbuntuのGuestアカウントの権限は、Apparmorによって厳しく制限されている。その設定ファイルは、/etc/apparmor.d/lightdm-guest-sessionにある。
view /etc/apparmor.d/lightdm-guest-session
読めばわかるが、理想とは裏腹に、この設定は危険である。なぜならば、compizの設定ファイルに対する書き込みを許可しているし、そもそも/etc/下への書き込みも許可している。コメントによれば、Compizのバグに対処するためらしいが、パスワードの設定されていないゲストアカウントにcompizの設定ファイルや/etc/下のファイルの書き込み権限を与える理由にはならない。バグによって機能しないのであれば、バグを直すまでGuestアカウントは無効にしておくべきなのだ。
この問題さえ解決されれば、UbubntuのGuestアカウントは、他人に一時的にコンピューターを使わせる際に使えるかもしれない。しかし、もし悪意を持った諜報員が、所有者の監視下にないコンピューターに物理的にアクセスできるならば、レスキューディスク的なものでブートしたり、あるいはHDDを取り外して別のコンピューターに接続した上で、必要な変更をするであろうし、やはりGuestアカウントの意味はよく分からない。
残念ながら、Guestアカウントを無効にする簡単な方法は用意されていない。用意するべきだと思うし、現在のApparmorの設定がバグ回避のために骨抜きである以上、デフォルトで無効にされているべきだと思う。Guestアカウントを無効にするには、 /etc/lightdm/lightdm.confを書き換えなければならない。このファイルを開くと、以下のようになっているはずだ。
[SeatDefaults] greeter-session=unity-greeter user-session=ubuntu
これに、"allow-guest=false"という行を付け加える。つまり、以下のようになる。
[SeatDefaults] greeter-session=unity-greeter user-session=ubuntu allow-guest=false
あまりおすすめしないがワンライナーのために。
echo "allow-guest=false" | sudo tee -a /etc/lightdm/lightdm.conf
この変更をした後に、lightdmを再起動する必要がある。最も簡単な方法は、リブートすることである。一応、sudo restart lightdmでもいいのだが、もちろんこれは、ログアウトと同様、というよりもっと大きな効果がある。
No comments:
Post a Comment