воспроизводится на hasher-1.3.26-alt1 (Сизиф) и hasher-1.3.23-alt1 (t6): 2 два набора псевдопользователей $ cat /etc/hasher-priv/user.d/igor user1=igor_a user2=igor_b [...] $ cat /etc/hasher-priv/user.d/igor:1 user1=igor_a1 user2=igor_b1 В системе все ок: $ grep igor_ /etc/passwd igor_a:x:502:505:1st hasher satellite for igor:/dev/null:/dev/null igor_b:x:503:506:2nd hasher satellite for igor:/dev/null:/dev/null igor_a1:x:534:534:1st hasher satellite for igor:/dev/null:/dev/null igor_b1:x:535:535:2nd hasher satellite for igor:/dev/null:/dev/null Но hasher использует только одного псевдопользователя,igor_b1 :( rm -rf /tmp/hasher md /tmp/hasher; ln -s ~/hasher/repo /tmp/hasher hsh --initroot-only /tmp/hasher $ hsh-run grep builder /etc/passwd builder:x:535:535::/usr/src:/bin/bash rm -rf /tmp/hasher md /tmp/hasher; ln -s ~/hasher/repo /tmp/hasher hsh --initroot-only --number 1 /tmp/hasher $ hsh-run grep builder /etc/passwd builder:x:535:535::/usr/src:/bin/bash Везде builder:x:535:, а должен быть в первом случае 506.
P.S. сборка пакетов работает. Но, если на 2-х разные папки запустить 2 набора пакетов, то сборка будет медленнее из-за блокировок - в какие-то моменты одна из очередей блокирует другую.
В hasher реализована следующий алгоритм: - если chroot существует, то используется та пара псевдопользователей, которой этот чрут принадлежит; - если chroot не существует, то - если пара псевдопользователей указана, то используется эта пара; - иначе случайным образом выбирается какая-нибудь пара псевдопользователей, которая не используется в данный момент. Если вам этот алгоритм не нравится, можете придумать что-нибудь получше. :)
гм. для /etc/hasher-priv/user.d/igor:1 я понимаю, как указать. это --number 1 а как указать псевдопользователей из /etc/hasher-priv/user.d/igor ? я раньше думал, что если number не указан (NULL) то используется /etc/hasher-priv/user.d/igor<NULL> т.е. /etc/hasher-priv/user.d/igor. Это не праздные рассуждения, так как у меня на это был завязан код в gear-cronbuild-apply-hooks-in-hsh-chroot, который в случае нескольких псевдопользователей не работает :(
В общем, особой проблемы нет, обходной путь есть, хочется только понять, есть ли способ явно указать пользователя, созданного без subconfig identifier, или нет. как описано в вопросе внизу. > гм. для /etc/hasher-priv/user.d/igor:1 я понимаю, как указать. > это --number 1 > а как указать псевдопользователей из /etc/hasher-priv/user.d/igor ? > я раньше думал, что если number не указан (NULL) > то используется /etc/hasher-priv/user.d/igor<NULL> > т.е. /etc/hasher-priv/user.d/igor.
(In reply to comment #3) > гм. для /etc/hasher-priv/user.d/igor:1 я понимаю, как указать. > это --number 1 > а как указать псевдопользователей из /etc/hasher-priv/user.d/igor ? --number=0 > я раньше думал, что если number не указан (NULL) > то используется /etc/hasher-priv/user.d/igor<NULL> > т.е. /etc/hasher-priv/user.d/igor. Так было до октября 2007 года, в hasher >= 1.3.0-alt1 отсутствие --number означает случайный выбор свободной пары, см. %changelog версий 1.3.0 и 1.3.1. > Это не праздные рассуждения, так как у меня на это был завязан код > в gear-cronbuild-apply-hooks-in-hsh-chroot, > который в случае нескольких псевдопользователей не работает :( Наиболее надежный вариант - привязка пары псевдопользователей к чруту в конфиге ~/.hasher/config