%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python2.7/site-packages/salt/modules/
Upload File :
Create Path :
Current File : //usr/lib/python2.7/site-packages/salt/modules/linux_acl.pyo

�
���^c@@s�dZddlmZmZmZddlZddlmZdZ	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
d
d�Zd
d�ZdS(us
Support for Linux File Access Control Lists

The Linux ACL module requires the `getfacl` and `setfacl` binaries.

i(tabsolute_importtprint_functiontunicode_literalsN(tCommandExecutionErroruaclcC@s#tjjjd�rtStdfS(u6
    Only load the module if getfacl is installed
    ugetfacluWThe linux_acl execution module cannot be loaded: the getfacl binary is not in the path.(tsalttutilstpathtwhicht__virtualname__tFalse(((s:/usr/lib/python2.7/site-packages/salt/modules/linux_acl.pyt__virtual__scC@s:d}td|�j�}|dj�}|dj�S(u~
    Return facl version from getfacl --version

    CLI Example:

    .. code-block:: bash

        salt '*' acl.version
    ugetfacl --versionucmd.runii(t__salt__t
splitlinestsplittstrip(tcmdtouttret((s:/usr/lib/python2.7/site-packages/salt/modules/linux_acl.pytversions
cG@s%t|�dkr!td��ndS(Niu@You need to specify at least one file or directory to work with!(tlenR(targs((s:/usr/lib/python2.7/site-packages/salt/modules/linux_acl.pyt_raise_on_no_files+sc	O@ss|jdt�}t|�i}d}|r;|d7}nx!|D]}|dj|�7}qBWtd|dt�j�}d}x�|D]�}|s�q�q�|jd�r�q�q�|jd	�r�|jd
d�jd�}|dd
kr|d}iid6gd6gd6||<n|d||d|d<|ddkrkt	|d�}	|	ddkrpt
||d<n|	ddkr�t
||d<n|	ddkr�t
||d<q�qkq�td|d||ddd||dd�}
|
d}|
d=x�d#D]�}||
kr|
|}
|
|=|dkrQ|||ji|
|
6�q�|dkr�d ||kr~i||d <n|||d kr�g||d |<n||d |ji|
|
6�q�qqWx�d$D]�}||
kr�|
|=|dkri|
d6g|||<qg|dkrgd ||krEi||d <ni|
d6g||d |<qgq�q�Wq�W|S(%u?
    Return (extremely verbose) map of FACLs on specified file(s)

    CLI Examples:

    .. code-block:: bash

        salt '*' acl.getfacl /tmp/house/kitchen
        salt '*' acl.getfacl /tmp/house/kitchen /tmp/house/livingroom
        salt '*' acl.getfacl /tmp/house/kitchen /tmp/house/livingroom recursive=True
    u	recursiveugetfacl --absolute-namesu -Ru "{0}"ucmd.runtpython_shelluugetfaclu#u# u: iufileiucommentuuserugroupuflagsususuidusgidiutustickytacltuseruownertgrouputypeuacludefaultudefaultsuotherumask(uuserugroup(uotherumask(
tpopR	RtformatRRt
startswithtreplaceR
tlisttTruet
_parse_acltappend(Rtkwargst	recursiveRRtdentryRtlinetcompstflagstvalstacl_typetentityt	usergroup((s:/usr/lib/python2.7/site-packages/salt/modules/linux_acl.pytgetfacl0st








*
*cC@st|jd�}i}d|d<|ddkrId|d<|jd�n|ddkrq|drq||d<n(|ddkr�|dr�||d<n|d||d<d}i|d	<d
|dkr�|d7}t|d	d
<nt|d	d
<d|dkr|d7}t|d	d<nt|d	d<d|dkrX|d7}t|d	d<nt|d	d<||d<|S(u!
    Parse a single ACL rule
    u:uaclutypeiudefaultuuseriugroupupermissionsuri����iureaduwiuwriteuxuexecuteuoctal(R
RRR	(RRRR&R(toctal((s:/usr/lib/python2.7/site-packages/salt/modules/linux_acl.pyR |s6








cO@sq|jdt�}t|�d}|r5|d7}nx!|D]}|dj|�7}q<Wtd|dt�tS(u4
    Remove all FACLs from the specified file(s)

    CLI Examples:

    .. code-block:: bash

        salt '*' acl.wipefacls /tmp/house/kitchen
        salt '*' acl.wipefacls /tmp/house/kitchen /tmp/house/livingroom
        salt '*' acl.wipefacls /tmp/house/kitchen /tmp/house/livingroom recursive=True
    u	recursiveu
setfacl -bu -Ru "{0}"ucmd.runR(RR	RRRR(RR"R#RR$((s:/usr/lib/python2.7/site-packages/salt/modules/linux_acl.pyt	wipefacls�s


cC@s�d}|jd�rBd}|jdd�}|jdd�}n|dksZ|dkrg|d7}nJ|dks|dkr�|d7}n%|d	ks�|d
kr�|d
7}n|S(Nuudud:udefault:uuseruuugroupugumaskum(RR(R)tprefix((s:/usr/lib/python2.7/site-packages/salt/modules/linux_acl.pyt_acl_prefix�s


uc	O@s�|jdt�}|jdt�}t|�d}|rG|d7}n|d7}dj|t|�||�}x!|D]}|dj|�7}qvWtd|d	td
|�tS(u
    Add or modify a FACL for the specified file(s)

    CLI Examples:

    .. code-block:: bash

        salt '*' acl.modfacl user myuser rwx /tmp/house/kitchen
        salt '*' acl.modfacl default:group mygroup rx /tmp/house/kitchen
        salt '*' acl.modfacl d:u myuser 7 /tmp/house/kitchen
        salt '*' acl.modfacl g mygroup 0 /tmp/house/kitchen /tmp/house/livingroom
        salt '*' acl.modfacl user myuser rwx /tmp/house/kitchen recursive=True
        salt '*' acl.modfacl user myuser rwx /tmp/house/kitchen raise_err=True
    u	recursiveu	raise_errusetfaclu -Ru -mu{0} {1}:{2}:{3}u "{0}"ucmd.runRt	raise_err(RR	RRR0RR(	R)tacl_nametpermsRR"R#R1RR$((s:/usr/lib/python2.7/site-packages/salt/modules/linux_acl.pytmodfacl�s



cO@s�|jdt�}t|�d}|r5|d7}n|d7}dj|t|�|�}x!|D]}|dj|�7}qaWtd|dt�tS(	u�
    Remove specific FACL from the specified file(s)

    CLI Examples:

    .. code-block:: bash

        salt '*' acl.delfacl user myuser /tmp/house/kitchen
        salt '*' acl.delfacl default:group mygroup /tmp/house/kitchen
        salt '*' acl.delfacl d:u myuser /tmp/house/kitchen
        salt '*' acl.delfacl g myuser /tmp/house/kitchen /tmp/house/livingroom
        salt '*' acl.delfacl user myuser /tmp/house/kitchen recursive=True
    u	recursiveusetfaclu -Ru -xu{0} {1}:{2}u "{0}"ucmd.runR(RR	RRR0RR(R)R2RR"R#RR$((s:/usr/lib/python2.7/site-packages/salt/modules/linux_acl.pytdelfacl�s



(t__doc__t
__future__RRRtsalt.utils.pathRtsalt.exceptionsRRR
RRR,R R.R0R4R5(((s:/usr/lib/python2.7/site-packages/salt/modules/linux_acl.pyt<module>s					L	+		"

Zerion Mini Shell 1.0