想给python 提个权,要怎么操作? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
kojp
V2EX    Python

想给python 提个权,要怎么操作?

  •  
  •   kojp 2012 年 5 月 28 日 5152 次点击
    这是一个创建于 5020 天前的主题,其中的信息可能已经有所发展或是发生改变。
    因为,要测试一些东西。需要频繁改HOSTS。一直就想弄个脚本来实现~~~~,今天努力了。
    但是未遂:-(


    这招行不通。说权限不够
    dest_dir="C:\\WINDOWS\\system32\\drivers\\etc\\hosts"
    f=open("dest_dir","a+")
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    file_path = "C:\\WINDOWS\\system32\\drivers\\etc\\hostsnew"
    os.remove(dest_dir)
    aa='C:\\WINDOWS\\system32\\drivers\\etc\\hosts'
    os.copy(file_path,dest_dir)

    这招也行不通,直接不给提示,只说错误


    PS:系统xp
    23 条回复    1970-01-01 08:00:00 +08:00
    CoX
        1
    CoX  
       2012 年 5 月 28 日
    下下策,直接把用户加为管理员吧:)
    ayang23
        2
    ayang23  
       2012 年 5 月 28 日
    使用runas,或者sysinternal工具包里的psexec.exe,使用管理员账户运行你的python命令。
    treo
        3
    treo  
       2012 年 5 月 28 日
    如果你有system权限的话,直接修改hosts的权限,给相应用户modify权限不就行了
    dongbeta
        4
    dongbeta  
       2012 年 5 月 28 日
    试试 gearman,提权好工具
    kojp
        5
    kojp  
    OP
       2012 年 5 月 28 日
    @treo
    @CoX

    Win下的权限也需要这么复杂吗 ?
    我用 的是 Administrator用户 已经有权限直接改 hosts了 ,只是想用脚本来实现 ,会更方便些 . :-(


    @ayang23
    一会儿试试你的法子
    c
        6
    c  
       2012 年 5 月 28 日
    修改host权限为everyone
    CoX
        7
    CoX  
       2012 年 5 月 28 日
    @kojp 好吧,我本地试了试,没有问题。
    难道是默认的只读属性你没手动去掉?
    9hills
        8
    9hills  
       2012 年 5 月 28 日
    @kojp win下的权限比Linux复杂多了。。

    尤其是win下的Administrator并不是系统最高权限,所以还得依赖dirty hack来做一些事情。。。
    Linux下只需要以root权限运行脚本,就可以干任何事情
    ljbha007
        9
    ljbha007  
       2012 年 5 月 28 日
    直接用管理员身份打开python解释器或者管理员身份打开命令行然后运行python解释器就好了
    kojp
        10
    kojp  
    OP
       2012 年 5 月 28 日
    @c
    谢谢 ,你的思路很 ok! 我是用手机在上 ,但能确定这条路是能行的通的 !

    But,适用性怎么解决 ?
    我是要在内多好多机器上执行这个脚本. :-(
    allenm
        11
    allenm  
       2012 年 5 月 28 日
    我也正在写一个应用,和LZ需求类似,我在 XP 下直接是 open(host,'w') 这样打开的,然后直接写入,貌似没遇到权限问题,代码在此:https://github.com/allenm/sync-hosts/blob/master/client/libs/writehosts.py
    Weakdancer
        12
    Weakdancer  
       2012 年 5 月 28 日
    我有个需求也和楼主类似。在win7下,就算是普通用户,安装软件时系统会提醒用户是否放权。
    就是这个请求放权,我一直搞不清楚是怎么触发的。
    c
        13
    c  
       2012 年 5 月 28 日
    如果你是管理员,调用命令修改
    Weakdancer
        14
    Weakdancer  
       2012 年 5 月 28 日
    kojp
        15
    kojp  
    OP
       2012 年 5 月 28 日
    @Weakdancer 你的问题,只要下载一个软件应该不可以解决了。好像就叫 一键获取权限。这是跟WIN7的特例吧。


    @allenm

    谢了,我试试看
    @c 什么命令?
    @CoX 谢谢测试;这个,我也得试试。但会存在和"修改host权限为everyone"一样的蔽端
    c
        16
    c  
       2012 年 5 月 28 日
    @kojp

    F:\>icacls c:\Windows\System32\drivers\etc\HOSTS /grant Everyone:F
    已处理的文件: c:\Windows\System32\drivers\etc\HOSTS
    已成功处理 1 个文件; 处理 0 个文件时失败
    CoX
        17
    CoX  
       2012 年 5 月 28 日
    @kojp 我的是域的账户,没有给everyone的权限
    kojp
        18
    kojp  
    OP
       2012 年 5 月 29 日
    我是那种慢热性的,今天继续折腾这个问题。
    @allenm
    看了一下代码
    这行你漏写了一个 (cont哟,呵呵)def writeHost( hosts ):
    本地运行依旧是个权限问题。哈哈,可能系统环境不一样。
    allenm
        19
    allenm  
       2012 年 5 月 29 日
    @kojp THX , 这个之前是写的 writeHostCont ,然后后来觉得有点长,就把 cont 去掉了,但是最后面的测试调用代码还没去掉,因为后来都是在其他地方调用这个了,呵呵。我去改掉。
    kojp
        20
    kojp  
    OP
       2012 年 5 月 29 日
    谢谢以上各位!
    @CoX 只读去掉,一切就正常了!哈哈~~~



    @c everyone就有点不太安全了,感觉。不过icacls 只在WIN7和VISTA才有吧。XP下的是cacls
    命令运行格式好是一样的。成功
    cacls c:\windows\system32\drivers\etc\hosts /grant Everyone:F

    目前想的办法是。

    在python里面调用cacls,修改掉hosts的只读属性。然后按照原来的(也就是 Reply @allenm的那个一路走下去)再往win7/vista里面扩展一下。估计就算是一个成品了。哈哈,到时候传git上~~~
    allenm
        21
    allenm  
       2012 年 5 月 29 日
    @kojp 话说,你是不是想和我做差不多的东西呢?我是想做一个通过 web 管理 N 个客户端的 hosts 的工具。现在已经初步成型了,正在写分组管理的部分。如果想法差不多,能不能一起做呢?哈哈
    kojp
        22
    kojp  
    OP
       2012 年 5 月 29 日
    https://github.com/r00te4/tips/blob/master/pyhosts/pyhosts.py 献丑~~~
    @allenm 呃,远不如你那么高端呀。。

    我们是最近内部上了一个WEB项目。需要进行各种内部测试。DNS服务器那边没有权限改。只能是改参与测试用户的HOSTS了。呵呵。--------------最近各种眸乱,各种忙。以后有机会一起折腾呀。:-)
    allenm
        23
    allenm  
       2012 年 5 月 29 日
    @kojp 嗯嗯,web 开发中,改 hosts 是每天都要做的事情,所以我才想做这个项目。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2407 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 15:20 PVG 23:20 LAX 07:20 JFK 10:20
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86