[devel] polkit without systemd
Alexey Shabalin
a.shabalin на gmail.com
Пн Сен 1 20:45:51 MSK 2014
1 сентября 2014 г., 20:21 пользователь Dmitry V. Levin
<ldv на altlinux.org> написал:
> On Mon, Sep 01, 2014 at 05:02:42PM +0400, Alexey Shabalin wrote:
>> - вместо прямого запуска systemd-logind запускать скрипт systemd-logind-launch:
>> --------------------
>> if ! mountpoint -q /sys/fs/cgroup; then
>> mount -t tmpfs -o uid=0,gid=0,mode=0755 none /sys/fs/cgroup
>> fi
>> if ! mountpoint -q /sys/fs/cgroup/systemd; then
>> mkdir -p /sys/fs/cgroup/systemd
>> mount -t cgroup -o nosuid,noexec,nodev,none,name=systemd systemd
>> /sys/fs/cgroup/systemd
>> fi
>> mkdir -p /run/systemd
>
> Проверьте, все ли здесь правильно с правами.
> Скорее всего, 0755 на /run/systemd - это неправильно.
# mount| grep /sys/fs/cgroup
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup
(rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
cgroup on /sys/fs/cgroup/cpuset type cgroup
(rw,nosuid,nodev,noexec,relatime,cpuset)
в mount-setup.c это определено так:
{ "tmpfs", "/sys/fs/cgroup", "tmpfs",
"mode=755", MS_NOSUID|MS_NOEXEC|MS_NODEV|MS_STRICTATIME,
NULL, MNT_FATAL|MNT_IN_CONTAINER },
>> exec /lib/systemd/systemd-logind
>> ------------------------
>>
>> - в этом скрипте,при монтировании /sys/fs/cgroup,
>> /sys/fs/cgroup/systemd, мы обманываем logind, как будто он работает
>> под systemd. Но из этого обмана надо исключить тех, кого мы обманывать
>> не хотим - service, chkconfig
>> service использует утилиту sd_booted. её лучше переписать, и научить
>> использовать функцию sd_booted из libsystemd (например так
>> http://git.pld-linux.org/?p=packages/systemd.git;a=blob;f=systemd_booted.c)
>
> После коммита
> http://cgit.freedesktop.org/systemd/systemd/commit/?id=v198-67-g66e4118
> в функции sd_booted из libsystemd осталась только одна проверка:
> test -d /run/systemd/system/
> Наверное, мы тоже можем так сделать.
В общем я это и имел ввиду, проверять только /run/systemd/system.
Только вдруг это изменится в будущем, поэтому и предложил линковаться
с libsystemd.
--
Alexey Shabalin
Подробная информация о списке рассылки Devel