Sindbad~EG File Manager
3
�,d� � @ sb d Z ddlmZmZ ddlZdZe� dd� �Zdd� Zd d
� Z dd� Z
d
d� ZG dd� de�Z
dS )zQ
mock plugin to make sure pesign and mockbuild users have the right uid and
gid.
� )�getLog�traceLogNz1.1c C s t | ||� dS )z hello N)�Pesign)�plugins�conf� buildroot� r �/usr/lib/python3.6/pesign.py�init s r
c C s8 t jjddd| f gddd�}|jd�}|d |d fS )
z get a uid for a user name �getentZpasswdz%s� T)�returnOutput�printOutput�:� � )� mockbuild�util�do�split)�name�outputr r r �getuid s
r c C s, t jjddd| f gddd�}|jd�d S ) z get a gid for a group name r �groupz%sr T)r
r r r )r r r r )r r r r r �getgid s
r c C sB t � jd| |f � tjjddd|f dd|f d| f g� dS )z create a group with a gid zcreating group %s with gid %sZgroupaddz-gz%sz-RN)r �infor r r )r �gid�rootdirr r r �newgroup# s
r c
C sL t � jd| |f � tjjddd|f dd|f dd|f d| f g� dS )z create a user with a uid zcreating user %s with uid %sZuseraddz-uz%sz-gz-RN)r r r r r )r �uidr r r r r �newuser, s
r c @ s, e Zd ZdZe� dd� �Ze� dd� �ZdS )r z% Creates some stuff in our mock root c C s: || _ || _|j| _|j| _i | _i | _|jd| j� dS )a# Effectively we're doing:
getent group pesign >/dev/null || groupadd -r pesign
getent passwd pesign >/dev/null || useradd -r -g pesign -d /var/run/pesign -s /sbin/nologin -c "Group for the pesign signing daemon" pesign
ZpostinitN)r �pesign_opts�config�state�users�groupsZadd_hook�_pesignPostInitHook)�selfr r r r r r �__init__8 s zPesign.__init__c C s� x.| j d D ] }t|�\}}|||g| j|<