%PDF- %PDF-
Direktori : /lib/python2.7/site-packages/salt/modules/ |
Current File : //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&