誰もChromiumを実行しないでください。

誰もChromiumを実行しないでください。

一体どのようにChromiumを無人ユーザーとして実行できますか?選択した失敗(Openboxで):

su nobody chromium

このアカウントは現在利用できません

sudo -u nobody chromium

[0316/203558.490760: 致命的: chrome_main_delegate.cc(442)] 検証失敗: process_type.empty()。プロセスタイプのユーザーデータディレクトリを取得できませんでした:zygote ...

sudo -u nobody chromium --user-data-dir=/root

プロトコルが指定されていません。

[595:595:0316/203827.174040: エラー: browser_main_loop.cc (279)] Gtk: ディスプレイを開けません: :0

sudo -u nobody chromium --user-data-dir=/home

プロトコルが指定されていません。

[615:615:0316/203909.792019: エラー: browser_main_loop.cc(279)] Gtk: ディスプレイを開けません: :0

私の仕様:

Linux Arch 4.10.1-1-ARCH #1 SMP PREEMPT Sun Feb 26 21:08:53 UTC 2017 x86_64 GNU/Linux Chromium 57.0.2987.98

cat /etc/passwd:
...
nobody:x:99:99:nobody:/:/usr/bin/nologin
...

私はChromiumをrootとして実行しないことを強くお勧めし、Chromiumを実行するためにユーザーを作成することは愚かなように見えるので、誰も好きではありません。

修正する:

xhost local:root; su -pc 'env -i DISPLAY="${DISPLAY}" chromium' nobody

Xセッションでrootとして実行働く(Xサーバーへのルートでローカル接続を確立する場合local:rootよりもはるかに安全です+。)しかし、2つのエラーがあります。

アクセスできないホームディレクトリ:権限が拒否されました。 [629:629:0323/170000.968320:ERROR:child_thread_impl.cc(762)] 不明なチャネル接続インターフェイス要求: ui::mojom::GpuMain

まず取り除く

mkdir /home/nobody; chown -R nobody:nobody /home/nobody; su -pc 'env -i DISPLAY="${DISPLAY}" HOME=/home/nobody chromium' nobody

答え1

現在のセッションが開始されたユーザーとしてX:

$ xhost +
$ su - -c "DISPLAY=\"${DISPLAY}\" /bin/sh"

最初のステップxhost +は、すべてのユーザーが現在のXセッションに接続できるようにすることです1。すでにroot2 の場合、2 番目のステップは必要ありません。次に、次に変更しnobodyて実行しますchromium

# su -p -c "env -i DISPLAY=\"${DISPLAY}\" chromium" nobody

環境を保護し-p、ロックされたユーザーが「ログイン」できるようにします。それからenv -i環境をきれいにすることはより安全かもしれませんが、あなたが望むものかもしれないし、そうでないかもしれません。


1他の特定のユーザーにのみアクセス権を付与する方法があるとしますが、それが何であるかわかりません。
2root一般的な慣行は、一般的な日常活動のための非アカウントを作成し、root管理作業にのみ切り替えることです。

関連情報