简单的独立实用程序脚本,用于根据模式管理文件和目录树上的\*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
/船长/执照)文件。
==
简单的独立实用程序脚本,用于管理基于模式的文件和目录树上的尼克斯权限。
安装
----
作为独立脚本-转到某个路径可见目录并执行以下操作:
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
/船长/执照)文件。