Bug 18837

Summary: Не корректно обрабатывается обратный слеш в именах временных каталогов пользователей
Product: Sisyphus Reporter: Evgeny Sinelnikov <sin>
Component: rpm-buildAssignee: placeholder <placeholder>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: arseny, glebfm, imz, ktirf, ldv, placeholder, vt
Version: unstable   
Hardware: all   
OS: Linux   

Description Evgeny Sinelnikov 2009-02-15 02:21:58 MSK
Для пользователей, по умолчанию, формируется временный каталог содержащий имя соответствующего пользователя. При попытке работы с пользователями в именах которых присутствует обратный слеш, возникает ошибка:
[sin@kafedra03 sudo]$ gear-rpm -ba
ошибка: Файл /tmp/.private/MAINsin/gear.fb5ovGsV/out/sudo-1.7.0.tar: Нет такого файла или каталога

$ getent passwd MAIN\\sin
sin:*:16782791:16777729:Синельников Евгений Александрович:/home/MAIN/sin:/bin/bash
Comment 1 Dmitry V. Levin 2009-02-15 02:38:36 MSK
(In reply to comment #0)
> Для пользователей, по умолчанию, формируется временный каталог содержащий имя
> соответствующего пользователя.

Нет, Вызывается обычный mktemp -dt, который создаёт временный каталог внутри $TMPDIR.

> При попытке работы с пользователями в именах
> которых присутствует обратный слеш, возникает ошибка:
> [sin@kafedra03 sudo]$ gear-rpm -ba
> ошибка: Файл /tmp/.private/MAINsin/gear.fb5ovGsV/out/sudo-1.7.0.tar: Нет такого
> файла или каталога

Просто $TMPDIR содержит обратный слэш.
И gear-rpm тут не при чём, он вызывает rpmbuild с правильными параметрами.
Просто rpmbuild неправильно их обрабатывает.
Comment 2 Evgeny Sinelnikov 2009-02-15 04:27:31 MSK
Ну, тогда у rpm-build проблемы не только со слешом, но и с пробельными символами. Теперь в имени группы:

$ gear-rpm -ba                              
Выполняется(%prep): /bin/sh -e /home/MAIN/sin/tmp/rpm-tmp.61889 
+ umask 022                                                     
+ /bin/mkdir -p /home/MAIN/sin/RPM/BUILD                        

[...]

/bin/sh ./install-sh -c -O 0 -G 0 -M 0444 ./sudoers.ldap.man /home/MAIN/sin/tmp/sudo-buildroot/usr/share/man/man5/sudoers.ldap.5
make: *** No rule to make target `домена'.  Stop.
make: Leaving directory `/home/MAIN/sin/RPM/BUILD/sudo-1.7.0'
ошибка: Неверный код возврата из /home/MAIN/sin/tmp/rpm-tmp.80190 (%install)


Ошибки сборки пакетов:
    Неверный код возврата из /home/MAIN/sin/tmp/rpm-tmp.80190 (%install)

[sin@kafedra03 sudo]$ id
uid=16782791(sin) gid=16777729(пользователи домена) группы=10(wheel),502(admins),503(remote),16777729(пользователи домена),16786336(стс),16788486(сотрудники кафедры тоиит),16796594(csit web developers),16796755(администраторы тоиит),16798277(студенты 2003x21),16798279(студенты кафедры тоиит)
Comment 3 Evgeny Sinelnikov 2009-02-15 04:52:32 MSK
Не все детали скопировал:

[...]
ln /home/MAIN/sin/tmp/sudo-buildroot/usr/bin/sudo /home/MAIN/sin/tmp/sudo-buildroot/usr/bin/sudoedit
/bin/sh ./install-sh -c -O 0 -G 0 -M 0111 -s visudo /home/MAIN/sin/tmp/sudo-buildroot/usr/sbin/visudo
test -f .libs/sudo_noexec.so && /bin/sh ./install-sh -c -O 0 -G 0 -M 0755 .libs/sudo_noexec.so /home/MAIN/sin/tmp/sudo-buildroot/usr/libexec/sudo
test -f /home/MAIN/sin/tmp/sudo-buildroot/etc/sudoers || \
            /bin/sh ./install-sh -c -O sin -G пользователи -M 0400 \
                                             ^^^^^^^^^^^^^^
                ./sudoers /home/MAIN/sin/tmp/sudo-buildroot/etc/sudoers
/bin/sh ./install-sh -c -O 0 -G 0 -M 0444 ./sudo.man /home/MAIN/sin/tmp/sudo-buildroot/usr/share/man/man8/sudo.8
ln /home/MAIN/sin/tmp/sudo-buildroot/usr/share/man/man8/sudo.8 /home/MAIN/sin/tmp/sudo-buildroot/usr/share/man/man8/sudoedit.8
/bin/sh ./install-sh -c -O 0 -G 0 -M 0444 ./visudo.man /home/MAIN/sin/tmp/sudo-buildroot/usr/share/man/man8/visudo.8
/bin/sh ./install-sh -c -O 0 -G 0 -M 0444 ./sudoers.man /home/MAIN/sin/tmp/sudo-buildroot/usr/share/man/man5/sudoers.5
#/bin/sh ./install-sh -c -O 0 -G 0 -M 0444 ./sudoers.ldap.man /home/MAIN/sin/tmp/sudo-buildroot/usr/share/man/man5/sudoers.ldap.5
make: *** No rule to make target `домена'.  Stop.
                                 ^^^^^^^^
make: Leaving directory `/home/MAIN/sin/RPM/BUILD/sudo-1.7.0'
ошибка: Неверный код возврата из /home/MAIN/sin/tmp/rpm-tmp.80190 (%install)
[...]