Як я можу створювати та використовувати Linux групи як некористувацький користувач?


21

Як я можу створювати та використовувати групи як некористувацький користувач?

Наприклад, чи можу я, як користувач, який не є кореневим користувачем:

  • створити групу з доступом до одного процесора
  • створити новий процес у цій групі

?

Я спершу запитав тут, але не отримав повної відповіді. Я також запитав про stackoverflow , але питання було закрито як поза темою.

Відповіді:


18

Ви не можете робити це як звичайний користувач. Але ви можете встановити групу як корінь і зробити її настроюваною користувачем.

Якщо у вас ще немає контролерів груп за замовчуванням, встановлених, наприклад, systemd:

$ sudo mount -t tmpfs cgroup_root /sys/fs/cgroup
$ sudo mkdir /sys/fs/cgroup/cpuset
$ sudo mount -t cgroup -o cpuset cpuset /sys/fs/cgroup/cpuset

Створіть групу:

$ sudo mkdir /sys/fs/cgroup/cpuset/${USER}
$ sudo chown -R ${USER} /sys/fs/cgroup/cpuset/${USER}

Тепер ви можете змінити конфігурацію вашої групи як звичайний користувач:

$ echo 0-3 > /sys/fs/cgroup/cpuset/${USER}/cpuset.cpus

Додайте процес до цієї групи:

$ ./my_task &
$ echo $! > /sys/fs/cgroup/cpuset/${USER}/tasks

Або створити підгрупу:

$ mkdir /sys/fs/cgroup/cpuset/${USER}/subgroup
$ echo 0-1 > /sys/fs/cgroup/cpuset/${USER}/subgroup/cpuset.cpus
$ ./my_other_task &
$ echo $! > /sys/fs/cgroup/cpuset/${USER}/subgroup/tasks

як би ви видалили підгрупу? rm -rневдало для мене
hbogert

1
rm -rспробує спочатку видалити файли, що не вдалося. Використовуйте rmdirдля видалення групи.
Денніс Б.

Ви не можете, rmdirпоки tasksфайл не буде порожнім. root повинен переглянути файл завдань у підгрупі та повторити кожен під там у файл завдань кореневої групи ( /dev/cpuset/tasksна моєму вікні RHEL 6.7 [ядро 2.6.32-358], але, схоже, це /sys/fs/cgroup/cpuset/tasksможе бути відповідно).
Майк S

1

Якщо ви використовуєте Ubuntu, ви (користувач root) можете встановити cgroup-lite і додати те, що вам потрібно /etc/cgconfig.conf, включаючи, хто з користувачів може змінити конфігурацію групи. Він працює на завантаженні.

Якщо ви (користувач root) можете додати свій власний сценарій для запуску під час завантаження.


0

Існує серія статей про LWN про групи, дивіться частину 1 або шукайте, хоча пошук там. Systemd включає набір помічників для управління (керованими процесами) групами.


Посилання на частину 1, ймовірно, має вказувати на lwn.net/Articles/531114 .
chris

Пов'язана стаття LWN - про простори імен, lwn.net/Articles/604609 - про групи.
Денніс Б.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.