Назад | Перейти на главную страницу

Google Chrome / Chromium: песочница setuid не работает от имени пользователя root

Мы используем Chrome / Chromium headless для захвата экрана.

(Неожиданно) Chrome отказывается запускаться.

strace показывает эту ошибку:

The setuid sandbox is not running as root. Common causes:
  * An unprivileged process using ptrace on it, like a debugger.
  * A parent process set prctl(PR_SET_NO_NEW_PRIVS, ...)
Failed to move to new namespace: PID namespaces supported, Network namespace supported, but failed: errno = Operation not permitted
Failed to generate minidump.Illegal instruction

Ошибка одинакова для Google Chrome (нестабильный) и Chromium.

Разрешения файла для двоичного файла chrome-sandbox должны быть (setid root):

grabber@mail:/opt/google/chrome$ ./google-chrome --version
Google Chrome 76.0.3809.87

grabber@mail:/opt/google/chrome$ ls -la *sandbox*
-rwsr-xr-x 1 root root 227856 Jul 28 10:19 chrome-sandbox

Версия ОС - VERSION = "16.04.6 LTS (Xenial Xerus)".

Обходной путь, вероятно, будет использовать --no-sandbox но мне интересно, что еще может вызвать (внезапную) проблему?

Запуск google-chrome от имени пользователя root:

[32718:32718:0807/061610.314297:ERROR:zygote_host_impl_linux.cc(89)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180.

root@mail:~# /opt/google/chrome/google-chrome  --no-sandbox
root@mail:~# [0807/061615.230679:ERROR:nacl_helper_linux.cc(310)] NaCl helper process running without a sandbox!
Most likely you need to configure your SUID sandbox correctly