简单的独立实用程序脚本,用于根据模式管理文件和目录树上的\*nix权限。

permset的Python项目详细描述


permset
==


简单的独立实用程序脚本,用于管理基于模式的文件和目录树上的尼克斯权限。


安装
----
作为独立脚本-转到某个路径可见目录并执行以下操作:

wget https://raw.github.com/trebor74hr/permset/master/permset/base.py-o permset&;chmod u+x permset


或作为使用[pip]的python包(http://www.pip-installer.org/en/latest/):



尝试一下:


GE.

*我们自行承担风险-此软件仍处于alpha阶段*。

[许可证](https://github.com/trebor74hr/permset/blob/master/license)文件中的许可证和免责声明


t[选项][<;dir>;]

\r参数:

*未指定dir时,使用当前文件夹(.)
*脚本使用dir/.permset保存/检查权限设置。
*未设置选项时-脚本计算模式并将其打印出来。如果存在dir/.permset,则比较计算的模式和保存的模式。


选项也设置
保存选项。
-s,--保存保存永久值。设置为新文件或覆盖现有的
-t,--按实际永久值设置设置权限。设置
-v,--详细详细详细输出

模式可以在保存的模式中包含用户或组的变量。示例:

,["f","s",空,"$user admin rw----",…


变量从json~/.permset.config文件读取。示例:

{"$user":"jo"}


通用工作流
----
通用工作流:

1。计算权限模式(permset),将其保存到root/.permset
(permset--save)
2。将当前权限与保存的模式进行比较
(permset),如果发现任何差异,则应用模式(permset--set)
或用新模式覆盖现有模式(permset--save)



1。d-目录模式,f-文件模式
2。p-is模式,s-单个文件/目录
3。如果模式:r-递归,l-仅当前目录
4。标记-用户组权限
5。条目应用于的文件/目录
6。(opt)文件/目录深度-0是根目录


示例会话
----
某些django项目:


user@~/env/proj/src/python/proj$permset
-------------br/>f p r user1 staff rw-r--.
f p r u管理者:rw-r--/sites
f s-user1 admin rw----/sites/person/local设置。py
f s-user1 admin admin rw----/sites/person/local设置。pyc
f s-user1 admin admin rw----/sites/公司/local设置。pyc
p f s-user1 admin admin admin rw----/sites/company/local/local设置。py
s-user1-user1-user1套tings.pyc
----------用--save选项调用脚本来保存perm丢失模式。

保存模式:


更改某些文件:

user@~/env/proj/src/python/proj$chmod u+x r.log

再次检查-发现差异:


user@~/env/proj/src/python/proj$permset
权限与./.permset设置不同。
==模式数不同(9!=10)

从./.permsset设置。
保存在./.permsset中的安装程序:
-:-:-:--------------------------------------------------------------------------------------
f p p r user1 staff rw-r--.
f p r user1 admin rw-r--./sites/person/local设置。py
f s s-user1 admin admin;rw----./sit/person/local设置。py

f s s-user1;user1;admin;admin;管理员锡pyc
f s-用户1管理员rw-./sites/公司/本地设置。py
f s-用户1管理员rw-./sites/公司/本地设置。pyc
-:-:-------------------------------------------------br/>d p r用户1工作人员rw xr-xr-x.
d p r用户1管理员rwxr-xr-x./网站



统计:f=>;6;f=>;6;s-用户1管理员/101=5.9%| d=>;2/14=14.3%


directory当前的权限模式:
:-:-:-------------------------------------------------------------------------------------------br/>f p r user1 staff rw-r--.
f s s-user1 staff;rwxr--/r.log
f p r user1;admin;rw-r--./sites
f s-user1 user1 admin管理员管理员;r user1管理员;r-设置s.py
f s-用户1管理员rw---./站点/个人/本地设置.pyc
f s-用户1管理员rw---./站点/公司/本地设置.py
f s-用户1管理员rw---./站点/公司/本地设置.pyc
-——————1管理员rwxr-xr-x./站点


stats:f=>;7/101=6.9%d=>;2/14=14.3%

===模式数不同(9!=10)


权限不同于./.permset设置。
==模式数不同(9!=10)
==需要执行以下命令才能应用保存的模式:
chown-h user1$(find。-f类)
chgrp-h staff$(查找。-类型f)
chmod-h u+rw,u-x,g+r,g-wx,o+r,o-wx$(查找。-类型f)

chown-h user1$(查找。-d类)
chgrp-h staff$(查找。-类型d)
chmod-h u+rwx,g+rx,g-w,o+rx,o-w$(查找。-类型d)

chmod-h u+rwx,g+rx,g-w,o+rx,o-w$(查找/站点-类型d)
==是否继续(y/n)?y
chown-h用户1$(查找。-类型f)

chmod-h u+rwx,g+rx,g-w,o+rx,o-w$(查找/站点-类型d)
==完成


再次检查:


用户@~/env/proj/src/python/proj$permset
权限设置。/.permset'匹配。


模式背后的逻辑
----
s单独处理-由于x解释不同
*搜索模式-递归(r)和本地-仅当前文件夹
(l)。对于与当前模式不匹配的文件/目录-将为该文件/目录添加一个特殊的模式条目。
*模式forumula:如果超过2/3的文件或目录具有相同的
标记(用户/组/权限),则该标记将变为模式

file.permset
----
file.permset包含以json格式保存的模式列表:

[
["f","p","r","user1 staff rw-r--",",0,[6,7],[74,101]
,["f","s",null,"user1 staff rwxr--",","/permset",0,null,null]

,["d","p","r","user1 staff rwxr-xr-x","",0,[4,5],[11,14]]
,["d","p","r","user1 admin rwxr-xr-x","/sites",1,[2,2],[2,2]



只要文件是有效的json格式,且具有有效的置换选项,就可以轻松地对其进行手动编辑。

脚本的预期用途是用于中小型目录树。对于大型脚本,脚本可能无法很好地执行。


development
----
tests可以在包文件tests/tests.py中找到。




issue reporting
----
report issue on[github](https://github.com/trebor74hr/permset/issues)。

——
[许可证](https://github.com/trebor74hr/permset/blob/master/license)文件中的许可证和免责声明。


做不到:



wget https://raw.github.com/treborb74hr/permsset/master/permsset/base.py-o permsset&&;chmod u+x permsset





<
选择3-distutils way
*从http://pypi.python.org/pypi/permset下载最新版本
*解包并转到文件夹
*运行:python setup.py install

/船长/执照)文件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何下载多个。java中的PDF文件   linux Java打开文件,形成实际用户主页~/   java如何在时间线内维护TableView选择?   java Hibernate注释@Where vs@WhereJoinTable   Java读/写访问异常FileNotFoundException(访问被拒绝)   继承在Java中是否可以扩展最后一个类?   Android HttpClient使用java使应用程序崩溃。lang.OutOfMemoryError:pthread_create   java为什么即使我在proguardproject中添加了jar文件,也会出现这种错误。txt?   如果添加JButton,swing Java FocusListener和KeyListener将无法工作   java使用solrj检索json格式的SolrDocument   使用Microsoft Visual Studio代码进行Java编程   java NoClassDefFoundError:org/apache/log4j/Logger   哈希集中包含相等对象的java   java中的参数化构造函数是否需要有一个主体?   java类似于NetBeans不必要的代码检测器   Java实践问题   java Blackberry“[projectname].调试文件丢失”和“I/O错误:找不到程序”jar