Bug 33749 - systemd-sysv-install ROOT overquoting
Summary: systemd-sysv-install ROOT overquoting
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: systemd (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Alexey Shabalin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-08-11 13:04 MSK by manowar@altlinux.org
Modified: 2017-08-16 13:35 MSK (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description manowar@altlinux.org 2017-08-11 13:04:45 MSK
При обработке аргумент --root в скрипте systemd-sysv-install одинарные кавычки попадают внутрь значения переменной CHROOT, где затем интерпретируются буквально, как часть пути. Возможно, что я ошибся в описании, и всё происходит иначе, однако оно не работает:

[root@host-121 ~]# sh -x /lib/systemd/systemd-sysv-install --root=/mnt enable pcscd
+ set -e
++ getopt -o r: --long root: -- --root=/mnt enable pcscd
+ eval set -- ' --root '\''/mnt'\'' -- '\''enable'\'' '\''pcscd'\'''
++ set -- --root /mnt -- enable pcscd
+ true
+ case "$1" in
+ ROOT=/mnt
+ shift 2
+ true
+ case "$1" in
+ shift
+ break
+ '[' -n /mnt ']'
+ '[' /mnt '!=' / ']'
+ CHROOT='chroot '\''/mnt'\'''
+ NAME=pcscd
+ '[' -n pcscd ']'
+ case "$1" in
+ chroot ''\''/mnt'\''' /sbin/chkconfig --no-redirect pcscd on
chroot: не удалось сменить корневой каталог на «'/mnt'»: Нет такого файла или каталога
Comment 1 Michael Shigorin 2017-08-12 19:14:42 MSK
(В ответ на комментарий №0)
> + chroot ''\''/mnt'\''' /sbin/chkconfig --no-redirect pcscd on
Может, так сразу и делать? (с точностью до кавычек)
Comment 2 manowar@altlinux.org 2017-08-14 01:27:28 MSK
В смысле, отказаться от переменной CHROOT, заменив её на

  chroot "$ROOT" ...

непосредственно там, где она сейчас используется? Раскрывать переменную с путём в самой командной строке? Тогда и защита от пробелов сохранится, и опасный eval не будет нужен.

Но я пока в своей сборке просто убрал одинарные кавычки из CHROOT=...
Comment 3 Repository Robot 2017-08-16 13:35:19 MSK
systemd-1:234-alt3 -> sisyphus:

Fri Aug 11 2017 Paul Wolneykien <manowar@altlinux.org> 1:234-alt3
- Fix: Make --root option really work (closes: 33749).