1

Я пытаюсь автоматизировать создание учетных записей пользователей.

Команды в этом сценарии прекрасно работают в интерактивном режиме в оболочке bash, однако, когда я запускаю этот сценарий bash, он терпит неудачу, и я получаю возврат 2, что означает invalid command syntax соответствии со страницей руководства useradd.

Этот сценарий также выводит команду перед ее выполнением, поэтому, если я просто скопирую / вставлю этот вывод (без "cmd-->"), это сработает.

Например, cmd-->useradd bidwbre -m -c "Brent Bidwel" -G students Вот короткий сценарий:

#!/bin/bash

while read id fn ln pw
do
     echo "cmd-->useradd $id -m -c \"$fn $ln\" -G students"
     useradd $id -m -c \"$fn $ln\" -G students
     echo $?

    # chmod go-rx /home/$id
    # echo "$id:$pw" | chpasswd
    echo ""
done

Я запускаю это вошел в систему как root, вот права на файл.

-rwxr-x---. 1 root root 1339 Aug 2 14:58 rh_make_accts.sh*

Что мне здесь не хватает?

Red Hat 7.3 Enterprise Linux

PS: Несколько не связано, но так как я уже спрашиваю: что это за конечный период в длинном списке каталогов в конце разрешений? Не то, что я видел раньше - специфично для РЗ?

1 ответ1

1

Удалите две обратные косые черты в строке useradd , или, другими словами, не избегайте кавычек.

useradd $id -m -c "$fn $ln" -G students

PS: точка

GNU Coreutils: какая информация указана

-l, --format = long, --format = подробный

...

После битов режима файла стоит один символ, который указывает, применяется ли к файлу альтернативный метод доступа, такой как список контроля доступа. Когда символ, следующий за битами режима файла, является пробелом, альтернативный метод доступа отсутствует. Когда это печатный символ, то есть такой метод.

GNU ls использует «.» символ для обозначения файла с контекстом безопасности, но без другого альтернативного метода доступа.

Файл с любой другой комбинацией альтернативных методов доступа помечается знаком «+».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .