Ubuntu で、仕事と遊びとでユーザを使い分けている。
仕事中にターミナルを開き、遊びユーザに su して
そのホームディレクトリ以下にある不謹慎な写真を
見ようとする。しかし、コマンドラインからしかるべき
アプリケーションを起動しようとすると、
Error: Can't open display: になる。
↓
仕事ユーザで X を立ち上げている状態で、
ターミナルから
$ xhost +local:
として X サーバへのローカルな非ネットワーク接続を広範に許可し、
次に、
$ su asobi
として遊びユーザでログインしたあと、
$ export DISPLAY=unix:0
として非ネットワークのローカル接続なりということをしめす
「 unix 」と、ディスプレイ番号 0 を DISPLAY 変数にセットする。
(上記は bash での例)
ユーザごとに許可設定してやるには、xauth を使うんだろうなあ。
でも、このデスクトップ機は私しか使ってないから xhost でいいや。
(別解)
たぶん、仕事ユーザで
$ xhost +localhost
とし、遊びユーザで
$ export DISPLAY=localhost:0
とやってローカルなネットワーク接続をしても
同じようなことができるだろうと思う。
...などと書いたら、つちや殿にコメントをいただきたり。いわく、
あっ! その通りだ!! しかも安全だ。
頭が完全に telnet のままじゃった(悲)。
ssh は、xauth をうまいこと使って安全な
X フォワーディングをしてくれるのだ。
つちや殿、コメント忝(かたじけな)く存じ候(そうろう)。
仕事中にターミナルを開き、遊びユーザに su して
そのホームディレクトリ以下にある不謹慎な写真を
見ようとする。しかし、コマンドラインからしかるべき
アプリケーションを起動しようとすると、
Error: Can't open display: になる。
↓
仕事ユーザで X を立ち上げている状態で、
ターミナルから
$ xhost +local:
として X サーバへのローカルな非ネットワーク接続を広範に許可し、
次に、
$ su asobi
として遊びユーザでログインしたあと、
$ export DISPLAY=unix:0
として非ネットワークのローカル接続なりということをしめす
「 unix 」と、ディスプレイ番号 0 を DISPLAY 変数にセットする。
(上記は bash での例)
ユーザごとに許可設定してやるには、xauth を使うんだろうなあ。
でも、このデスクトップ機は私しか使ってないから xhost でいいや。
(別解)
たぶん、仕事ユーザで
$ xhost +localhost
とし、遊びユーザで
$ export DISPLAY=localhost:0
とやってローカルなネットワーク接続をしても
同じようなことができるだろうと思う。
...などと書いたら、つちや殿にコメントをいただきたり。いわく、
su asobi
のかわりに
ssh -X asobi@localhost
では?
あっ! その通りだ!! しかも安全だ。
頭が完全に telnet のままじゃった(悲)。
ssh は、xauth をうまいこと使って安全な
X フォワーディングをしてくれるのだ。
つちや殿、コメント忝(かたじけな)く存じ候(そうろう)。
のかわりに
ssh -X asobi@localhost
では?
ssh は xauth をうまいこと使って X のフォワーディングをしてくれるだね。知らなかったよ。なんか今までものすごく損をしていた...
とてもよいことを知りました。どうもありがとう!