[devel] polkit without systemd

Alexey Shabalin a.shabalin на gmail.com
Пн Сен 1 21:20:28 MSK 2014


1 сентября 2014 г., 21:08 пользователь Dmitry V. Levin
<ldv на altlinux.org> написал:
> On Mon, Sep 01, 2014 at 08:45:51PM +0400, Alexey Shabalin wrote:
>> 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 },
>
> А какие права должны быть у /run/systemd?
Извиняюсь, не то прислал.
вот в mount-setup.c:

        /* Create a few directories we always want around, Note that
         * sd_booted() checks for /run/systemd/system, so this mkdir
         * really needs to stay for good, otherwise software that
         * copied sd-daemon.c into their sources will misdetect
         * systemd. */
        mkdir_label("/run/systemd", 0755);
        mkdir_label("/run/systemd/system", 0755);
        mkdir_label("/run/systemd/inaccessible", 0000);

а что смущает? какие должны быть?

>> >> 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.
>
> Не хочу линковаться с libsystemd. :)
>
>
> --
> ldv
>
> _______________________________________________
> Devel mailing list
> Devel на lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel



-- 
Alexey Shabalin


Подробная информация о списке рассылки Devel