SSH経由でrootなしでGNOMEセッションをリモートで開始する方法はありますか?
SSH経由でリモートマシンのCDドライブ(_/dev/cdrom -> /dev/sr0
_)にアクセスしようとしています。
リモートマシンはUbuntu18を実行しています。
問題は、ドライブファイル(_/dev/sr0
_)への書き込み権限がファイルACLでgdm userに設定されており、誰もコンピューターにログインしていない場合です(_getfacl /dev/sr0
_)。
ユーザーがGNOMEを介して(つまり、直接)コンピューターにログインすると、ACLはユーザーに一致するように更新されます。
X11転送を有効にしてSSH接続を使用している(そしてローカルX11サーバーを実行している)場合、コマンドgnome-session
を使用してリモートサーバーでGNOMEセッションを開始できるはずです。
しかし、それではCDドライブにアクセスできないことがわかります。
ご覧のとおり、仮想コンソールでテキストモードでログインした場合でも、CDドライブのアクセス許可はローカルにログインしたユーザーにのみ付与されます。単にGNOMEセッションを行っている人だけではありません。システムは違いを認識します。 ACLの割り当てはudev
によって行われます。/lib/udev/rules.d/70-uaccess.rules
でデバイスに割り当てられたuaccess
タグによって、この処理が行われるデバイスが決まります。
SSH経由でリモートログオンしているときにCDドライブを使用できるようにする場合は、ユーザーアカウントにcdrom
グループメンバーシップを割り当てる必要があります。これは一度だけ実行する必要がありますが、ルートアクセスが必要です。たとえば、ユーザーアカウントの名前がhelper
の場合:
Sudo usermod -a -G cdrom helper
または
Sudo gpasswd --add helper cdrom
または
Sudo adduser helper cdrom
これらのコマンドのいずれかを実行した後、変更を有効にするにはログアウトする必要があります。次回のログイン時に、(以前にメンバーだったグループに加えて)cdrom
グループのメンバーになり、ローカルにログインしているかどうかに関係なく、いつでもCDドライブを使用できます。またはリモートで。 それがcdrom
グループの目的です。
同様の目的を持つ他のグループはここにリストされています: https://wiki.debian.org/SystemGroups
これをMATEデスクトップで、Xnestを1で起動し、全画面解像度よりも小さい解像度で実行します。次に、export DISPLAY=:1
、次にssh -Y user@remotehost mate-session
を実行します。小さいXnestX「サーバー」ウィンドウにデスクトップ全体が表示されます(この時点でXnestはXサーバーとXクライアントの両方として機能しています)