3
\me" @ s U d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlmZm Z y,d dl
Z
e
jZe j
e
j
e
jedZeW nL eefk
r yd dlmZ ejZW n ek
r dd ZY nX Y nX ejeZG dd d ejjjZG d
d deZdS ) N)Any)subputil)salt)bcryptc C s t ddS )zRaise when called so that importing this module doesn't throw
ImportError when this module is not used. In this case, crypt
and passlib are not needed.
z/crypt and passlib not found, missing dependencyN)ImportError)_ r /usr/lib/python3.6/netbsd.py
blowfish_hash s r c sn e Zd ZdZdZdgZ fddZdd Zdd ZdddZ d
d Z
dd ZdddZdd Z
dd Z ZS )NetBSDzS
Distro subclass for NetBSD.
(N.B. OpenBSD inherits from this class.)
z*/usr/pkg/etc/sudoers.d/90-cloud-init-usersZgroupaddc sd t j||| tjjdrNdddg| _dddg| _dddg| _dddg| _ndd g| _d
g| _d S )Nz/usr/pkg/bin/pkginZpkginz-yZinstallremoveupdatezfull-upgradeZpkg_addz-UZ
pkg_delete) super__init__ospathexistsZpkg_cmd_install_prefixZpkg_cmd_remove_prefixZpkg_cmd_update_prefixZpkg_cmd_upgrade_prefix)selfnameZcfgpaths) __class__r r
r 4 s
zNetBSD.__init__c C s dd||gS )Nusermodz-Gr )r member_nameZ
group_namer r r
_get_add_member_to_group_cmd? s z#NetBSD._get_add_member_to_group_cmdc
K sR t j|rtjd| dS dg}dg}dddddd }d
ddd
}xf|j D ]Z\}}||kr~|r~t|tr~|j|| |g qL||krL|rL|j|| |j|| qLW d|ksd|kr|dg7 }|dg7 }||g7 }||g7 }tjd| yt j ||d W n& t
k
r& t jtd| Y nX |jdd } | d k rN| j
|| dd d S )Nz!User %s already exists, skipping.FZuseraddz-dz-cz-gz-Gz-s)ZhomedirZgecosZ
primary_groupgroupsshellz--no-user-groupz--systemz
--no-log-init)Z
no_user_groupsystemZno_log_initZno_create_homer z-mzAdding user %s)Z logstringzFailed to create user %spasswdT)hashed)r Zis_userLOGinfoitems
isinstancestrextendappendr Exceptionlogexcget
set_passwd)
r r kwargsZadduser_cmdZlog_adduser_cmdZadduser_optsZ
adduser_flagskeyvalZ
passwd_valr r r
add_userB sB
zNetBSD.add_userFc C s\ |r
|}nt |}ytjdd||g W n$ tk
rL tjtd| Y nX | j| d S )Nr z-pzFailed to set password for %s)r r r' r r( r
unlock_passwd)r userr r Z hashed_pwr r r
r* s s zNetBSD.set_passwdc C s@ yt j ddd|g W n$ tk
r: tjtd| Y nX d S )Nr z-CyeszFailed to lock user %s)r r' r r( r )r r r r r
lock_passwd s
zNetBSD.lock_passwdc C s@ yt j ddd|g W n$ tk
r: tjtd| Y nX d S )Nr z-CnozFailed to unlock user %s)r r' r r( r )r r r r r
r/ s
zNetBSD.unlock_passwdNc C s t jd d S )NzCannot set the locale.)r debug)r ZlocaleZout_fnr r r
apply_locale s zNetBSD.apply_localec C s. t j }t j }tjj }d||f |d<