Я добавляю пользователей на свой сервер с помощью команды useradd -m -p PASS_HASH -s /usr/sbin/nologin USERNAME
Затем я пытаюсь получить доступ к их домашнему ресурсу samba, но он никогда не появляется, пока я не войду под пользователем:
root:~$sudo login failtest
Password:######
Added user failtest.
Есть ли способ добавить пользователя без входа в систему?
Изменить: проблема в том, что пользователь добавляется с помощью команды useradd, но Ubuntu, похоже, запускает сценарий инициализации, когда пользователь входит в систему в первый раз. Затем этот сценарий добавляет этого пользователя в базу данных пользователей tdbsam. Поиск сценария инициализации или метода, который он использует для добавления пользователя в базу данных tdbsam, не требуя ввода пользователем (поскольку smbpasswd -a USER запрашивает у пользователя пароль).
Итак, все, что мне нужно, это способ добавить пользователя + пароль в базу данных tdbsam без запроса пароля у пользователя (например: samaba-add-user.sh ПАРОЛЬ ИМЕНИ ПОЛЬЗОВАТЕЛЯ).
Это связано с тем, что samba синхронизируется с passwd после входа пользователя в систему. Если вы хотите, чтобы пользователь мог войти в samba, перед выполнением любых входов в оболочку запустите smbpasswd -a failtest
после создания пользователя. Это добавит правильную запись в dbsam.
Вы также можете использовать pdbedit
утилита, чтобы сделать это вручную.
У меня кишечник - проблема, связанная с PAM. Существует ли домашний каталог пользователя до того, как он войдет в систему, или вы полагаетесь на pam_mkhomedir, чтобы создать каталог и загрузить skel? Если вы используете pam_mkhomedir, правильно ли он настроен в вашей конфигурации PAM для samba?
Можете ли вы опубликовать всю свою конфигурацию PAM, если не возражаете?
я верить что вы можете решить эту проблему, используя adduser вместо useradd. Скрипт adduser должен создать все остальное, что вы ищете.