Каким образом useradd не работает?

Я пытаюсь разработать петли для этого об/мин, которого я пытаюсь создать. В основном я пытаюсь сделать его так, чтобы если mark не существует в системе, я хочу создать учетную запись пользователя метки. У меня есть это в a %pre блок в моем .spec файле:

id mark &>/dev/null
if [ "$?" != "0" ]; then
    echo "Adding 'mark' user..."
    useradd -g $GROUP_ID \
        -s /bin/bash -d mark
fi

Теперь, после того, как я создаю об/мин и работаю rpm -ivh iPackage-1.0.0-1.noarch.rpm, Я проверяю вывод и вижу "Добавляющего пользователя 'метки'...", но когда я работаю id mark на командной строке я добираюсь id: mark: No such user. Кроме того, /etc/passwd не имеет учетной записи метки, также. Какие-либо идеи?

Править: См. мой ответ. Оказывается, переменные должны быть определены.

0
задан 09.11.2010, 04:31

3 ответа

Я - идиот. У меня был a &2>/dev/null в моем коде, таким образом, я не видел своих ошибок. После фиксации этого я узнал, что переменная, которую я использовал, не была определена для -g переключатель useradd.

Я отредактировал вопрос далее продемонстрировать то, что я делал.

0
ответ дан 27.11.2019, 18:55

В моем дистрибутиве useradd должен быть вызван как это:

# useradd -ms /bin/bash mark

Использовать -m если Вы хотите создать корневой каталог (см. man useradd).

Также как Матовый сказанный H, зафиксируйте то пространство.

0
ответ дан 27.11.2019, 18:55

useradd должен быть выполнен как root.

Я не использую ОСНОВАННЫЙ НА ОБ/МИН Linux, но я предполагаю Ваш предварительно устанавливать сценарий, работает как неимущий пользователь.

0
ответ дан 27.11.2019, 18:55

Теги

Похожие вопросы