%PDF- %PDF-
| Direktori : /proc/thread-self/root/proc/3522530/root/lib/python2.7/site-packages/salt/modules/ |
| Current File : //proc/thread-self/root/proc/3522530/root/lib/python2.7/site-packages/salt/modules/linux_acl.pyo |
�
���^c @@ s� d Z d d l m Z m Z m Z d d l Z d d l m Z d Z d � Z
d � Z d � Z d � Z
d
� Z d � Z d � Z d
d
d � Z d
d � Z d S( us
Support for Linux File Access Control Lists
The Linux ACL module requires the `getfacl` and `setfacl` binaries.
i ( t absolute_importt print_functiont unicode_literalsN( t CommandExecutionErroru aclc C@ s# t j j j d � r t St d f S( u6
Only load the module if getfacl is installed
u getfacluW The linux_acl execution module cannot be loaded: the getfacl binary is not in the path.( t saltt utilst patht whicht __virtualname__t False( ( ( s: /usr/lib/python2.7/site-packages/salt/modules/linux_acl.pyt __virtual__ s c C@ s: d } t d | � j � } | d j � } | d j � S( u~
Return facl version from getfacl --version
CLI Example:
.. code-block:: bash
salt '*' acl.version
u getfacl --versionu cmd.runi i ( t __salt__t
splitlinest splitt strip( t cmdt outt ret( ( s: /usr/lib/python2.7/site-packages/salt/modules/linux_acl.pyt version s
c G@ s% t | � d k r! t d � � n d S( Ni u@ You need to specify at least one file or directory to work with!( t lenR ( t args( ( s: /usr/lib/python2.7/site-packages/salt/modules/linux_acl.pyt _raise_on_no_files+ s c O@ ss | j d t � } t | � i } d } | r; | d 7} n x! | D] } | d j | � 7} qB Wt d | d t �j � } d } x�| D]�} | s� q� q� | j d � r� q� q� | j d � r�| j d
d � j d � } | d d
k r| d } i i d 6g d 6g d 6| | <n | d | | d | d <| d d k rkt | d � } | d d k rpt
| | d <n | d d k r�t
| | d <n | d d k r�t
| | d <q�qkq� t d | d | | d d d | | d d � }
|
d } |
d =x� d# D]� } | |
k r|
| }
|
| =| d k rQ| | | j i |
|
6� q�| d k r�d | | k r~i | | d <n | | | d k r�g | | d | <n | | d | j i |
|
6� q�qqWx� d$ D]� } | |
k r�|
| =| d k ri |
d 6g | | | <qg| d k rgd | | k rEi | | d <n i |
d 6g | | 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 recursiveu getfacl --absolute-namesu -Ru "{0}"u cmd.runt python_shellu u getfaclu #u # u : i u filei u commentu useru groupu flagsu su suidu sgidi u tu stickyt aclt useru ownert groupu typeu aclu defaultu defaultsu otheru mask( u useru group( u otheru mask(
t popR R t formatR R t
startswitht replaceR
t listt Truet
_parse_aclt append( R t kwargst recursiveR R t dentryR t linet compst flagst valst acl_typet entityt usergroup( ( s: /usr/lib/python2.7/site-packages/salt/modules/linux_acl.pyt getfacl0 st
*
*c C@ st | j d � } i } d | d <| d d k rI d | d <| j d � n | d d k rq | d rq | | d <n( | d d k r� | d r� | | d <n | d | | d <d } i | d <d
| d k r� | d 7} t | d d
<n t | d d
<d | d k r| d 7} t | d d <n t | d d <d | d k rX| d 7} t | d d <n t | d d <| | d <| S( u!
Parse a single ACL rule
u :u aclu typei u defaultu useri u groupu permissionsu ri����i u readu wi u writeu xu executeu octal( R
R R R ( R R R R&