Установка времени хоста из док-контейнера дает ошибку разрешения даже с CAP_SYS_TIME

Я пытаюсь проверить docker использование возможностей. Итак, для этого я пытаюсь запустить контейнер с --cap-add=SYS_TIME возможность, которая должна позволить процессу установить системное время, однако это вывод, который я получаю:

$ sudo docker run --cap-add = SYS_TIME --rm -it ubuntu bash
root @617c9eb44965:/# date -s '+2 часа'
дата: невозможно установить дату: операция не разрешена
Вт 6 марта 10:17:46 UTC 2018
корень @617c9eb44965:/# 

Если я заменю --cap-add с --cap-drop ничего не меняется в выводе:

$ sudo docker run --cap-drop = SYS_TIME --rm -it ubuntu bash
root @ 46dbb20ad793: / # date -s '+2 часа'
дата: невозможно установить дату: операция не разрешена
Вт 6 марта 10:19:03 UTC 2018

Меня удивляет, что date команда по-прежнему выводит дату, увеличенную на 2 часа, вместо того, чтобы просто умереть с ошибкой (код выхода 1).

Единственное, о чем я могу думать, это то, что seccomp /selinux вступают в игру, но я не знаю, как это проверить.

Может ли кто-нибудь объяснить мне, как я могу убедиться в том, что вызывает ошибку "Операция не разрешена", даже если возможность явно задана, и как это исправить?

Системная информация:

$ uname -a
Linux ws77 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$ sudo lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.4 LTS
Release:    16.04
Codename:   xenial
$ docker -v
Docker version 1.13.1, build 092cba3

Пожалуйста, не упоминайте --privileged , Он сломан, и я хочу сделать это надлежащим образом, используя средства /seccomp /selinux и т. Д.

0 ответов

Другие вопросы по тегам