Сценарий пароля самбы, но безопасно

[116765] Взглянув на [117222] аналогичную проблему [117223] на пользовательской системе, запущенной systemd, кажется, что это может быть из-за того, что в конфигурации ядра не выбрано "CONFIG_DEVTMPFS" (заметьте, что это первое, что [117224] в списке [117225] требований к ядру для запуска системыd).

Чтобы теперь понять, как это исправить, запустите [117226], сделайте menuconfig [117227] и воспользуйтесь функцией поиска (нажмите [117228]/[117229]) для поиска "DEVTMPFS". Первое попадание:

Низкий и вот, такая опция есть в [117230]Драйверы устройств -> Опции генерических драйверов [117231].

Как говорит vonbrand, лучше всего начинать с конфигурации, которая соответствует тому, что у вас есть сейчас. Вероятно, это можно найти в gzipped как [117232]/proc/config.gz[117233]. Скопируйте это и [117234]gunzip -c config.gz > .config[117235] и используйте этот файл в качестве предварительного [117236].config[117237] в вашем дереве исходных текстов (подробнее в [117238]шаг #2 здесь[117239]).[116772].
2
23.05.2017, 14:33
2 ответа

Ваш скрипт должен иметь возможность получить доступ к паролю. Вы не можете использовать хэш пароль: если вы сделали, хеш будет пароль, поскольку это будет означать, что кто-либо с хешем может войти в систему.

Вы должны поставить пароль в Отдельный файл и прочитайте его из вашего скрипта. Позаботьтесь о том, чтобы воспроизвести пароль точно (например, не используйте Echo -e «$ Pass» , поскольку это будет интерпретировать обратные скидки).

IFS= read -r password </somewhere/private/file.password
printf '%s\n%s\n' "$password" "$password" | smbpasswd -a -s "$LOGIN"

ИЛИ

IFS= read -r password </somewhere/private/file.password
smbpasswd -a -s "$LOGIN" <<EOF
$password
$password
EOF

аргументы, переданные на внешние команды, видны для других процессов, пока запущена команда, поэтому не используйте первое решение, если Printf - внешняя команда в вашей оболочке. Большинство текущих снарядов имеют printf как встроенный; Используйте команду типа для проверки формы документа здесь.

Убедитесь, что файл, содержащий пароль, читается только пользователем, который должен выполнять сценарий. Конечно, любая команда работает так, как этот пользователь сможет прочитать скрипт; Если это не желательно, вам необходимо запустить скрипт как другой пользователь (или использовать какой-то другой механизм изоляции, но отдельный пользователь является самым простым для настройки).

0
27.01.2020, 22:21

При условии, что ваш кем-л.conf содержит passdb backend = tdbsam вы можете экспортировать файл с зашифрованными паролями в системе, которая уже была настроена, используя:

sudo pdbedit -e smbpasswd:/tmp/smbpasswd

Затем, чтобы настроить новую систему, вы можете импортировать его, используя

sudo pdbedit -i smbpasswd:/tmp/smbpasswd -e tdbsam:/var/lib/samba/private/passdb.tdb

(/ var / lib / samba / private / passdb.tdb - это расположение файла в Ubuntu)

Это скорее предназначено для инициализации пользовательских db во время настройки системы. Я не уверен, что вам удастся сделать что-то подобное, просто чтобы добавить одного пользователя.

На самом деле,Возможно, с целью настройки новой системы было бы лучше просто скопировать существующий passdb.tdb вместо того, чтобы экспортировать и импортировать его в другой формат.

1
27.01.2020, 22:21

Теги

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