一体どのように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。すでにroot
2 の場合、2 番目のステップは必要ありません。次に、次に変更しnobody
て実行しますchromium
。
# su -p -c "env -i DISPLAY=\"${DISPLAY}\" chromium" nobody
環境を保護し-p
、ロックされたユーザーが「ログイン」できるようにします。それからenv -i
環境をきれいにすることはより安全かもしれませんが、あなたが望むものかもしれないし、そうでないかもしれません。
1他の特定のユーザーにのみアクセス権を付与する方法があるとしますが、それが何であるかわかりません。
2root
一般的な慣行は、一般的な日常活動のための非アカウントを作成し、root
管理作業にのみ切り替えることです。