VeiL asyncio linux authentication utils.
Project description
veil-aio-au
Установка
Проект доступен в PyPi, можете воспользоваться поддерживаемым пакетным менеджером, например, pip
pip install veil-aio-au
Использование
Команды для запуска на системе
Настоятельно не рекомендуется использовать напрямую системные команды, т.к. для корректной работы требуется возможность запуска команды с sudo без подтверждения пароля. В качестве примера в разделе bash размещены bash-скрипты с интерфейсами вызова.
Настройки
Учитывая особенности вызова команд, предусмотрена дополнительная валидация аргументов и исполняемых команд. Если пользовательский ввод исключен, можно отключить валидацию аргументов параметром validate.
Перечень аргументов
task_timeout: время ожидания выполнения команд (5 сек по умолчанию)
user_add_cmd: полный путь до команды создания пользователя (например, adduser)
group_add_cmd: полный путь до команды создания группы (например, addgroup)
user_edit_cmd: полный путь до команды редактирования пользователя (например, usermod)
user_set_pass_cmd: полный путь до команды задания пароля (например, chpasswd)
user_check_in_group_cmd: полный путь до команды проверки нахождения в группе (например, id -Gn)
user_remove_group_cmd: полный путь до команды удаления из группы (например, gpasswd -d)
sudo_cmd: полный путь до команды sudo (например, /usr/bin/sudo). Если пустой - команды запускаются без доп.префикса sudo.
kill_cmd: полный путь до команды которой будут завершаться процессы (например, kill). Обязателен в случае заполнения sudo_cmd, может быть пустым.
validate: включить или отключить дополнительную валидацию аргументов (вкл по умолчанию)
show_stdout: выводить stdout для процессов или нет. (выкл по умолчанию)
#### Примеры
```
auth_class = VeilAuthPam(task_timeout=5,
user_add_cmd='bash/adduser_bi.sh',
group_add_cmd='bash/addgroup_bi.sh',
user_edit_cmd='bash/edituser_bi.sh',
user_set_pass_cmd='bash/set_pass_bi.sh',
user_check_in_group_cmd='bash/check_in_group_bi.sh',
user_remove_group_cmd='bash/remove_user_group_bi.sh',
sudo_cmd='/bin/sudo'
)
auth_result = await auth_class.user_authenticate(username='user', password='qqq')
# >>> return code: 7, msg: Authentication failure
create_result = await auth_class.user_create_new(username='user', password='qwe123')
# >>> return code: 0, msg: None
create_result = await auth_class.user_create_new(username='user; /bin/rm -rf /home/devalv/tmp', password='peka')
# >>> return code: 1, msg: Unknown arguments: /bin/rm
check_in_group_result = await auth_class.user_in_group('devalv', 'vdi-web-admin', use_sudo=False)
# >>> True
# Disable as_sudo class attr for user_create_new cmd.
create_result = await auth_class.user_create_new(username='user', password='qwe123', as_sudo=False)
# On default system you`ll need to run cmd with sudo prefix.
# >>> return code: 1, msg: sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
```
### Документация
Готовые примеры можно посмотреть в main.py репозитория, более подробное доступна через help, например,
help(VeilAuthPam.user_authenticate).
### Запуск тестов
### Сборка
rm -rf dist/ build/ && python setup.py sdist bdist_wheel
## Как принять участие в проекте
Сделайте форк, внесите свои изменения в отдельной ветке, внесите свои изменения, запустите тесты и разместите PR/MR.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
veil-aio-au-0.1.4.tar.gz
(7.8 kB
view hashes)
Built Distribution
Close
Hashes for veil_aio_au-0.1.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d88a97561ad3fb53ea8585d76588b2783d2808889d3eae5020c5b30fd5af4afe |
|
MD5 | fd4f9f19d139851aa9f365ff11cd6d98 |
|
BLAKE2b-256 | fc6f6045f1e932f9aa1bd14a7f9b2f283dadc96835583bf9a4da0f6d1081887b |