Python论坛  - 讨论区

标题:[python-chinese] 如何得到root的权限?

2007年04月10日 星期二 13:55

jessinio smith jessinio在gmail.com
星期二 四月 10 13:55:52 HKT 2007

ÇëÎÊʹÓÃÄĸöÄ£¿éÀïµÄº¯Êý£¬Í¨¹ýpassword¿ÉÒԵõ½rootµÄȨÏÞ£¿£¿

-- 
×¢ÒâÉíÌ壬ÉíÌåÊǸïÃüµÄ±¾Ç®£¡£¡
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070410/2eadaafc/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年04月10日 星期二 14:18

py py.7在163.com
星期二 四月 10 14:18:29 HKT 2007

各位!

    最近在做一个下载邮件的工具,但获取到邮件后得到的标题等信息都是乱码,无法以邮件名为名称保存成eml文件,Print出来的或保存的文件正文导入到foxmail里面就是乱码了,这个该怎么解决?谢谢!

# -*- coding: utf-8 -*-
import poplib
import cStringIO
import email
import base64
from email.base64MIME import encode as encode_base64

M = poplib.POP3('pop.XXX.com')
M.user('XXXX')
M.pass_('XXXXXXXX')
numMessages = len(M.list()[1])
print 'num of messages', numMessages

for i in range(numMessages):    
    m = M.retr(i+1)
    
    buf = cStringIO.StringIO()
    for j in m[1]:
        print >>buf, j
    buf.seek(0)

    msg = email.message_from_file(buf)
    for part in msg.walk():
        contenttype = part.get_content_type()
        filename = part.get_filename()
        msg_sub = msg['Subject']
        #if filename and contenttype == 'application/octet-stream':
        
        #     print filename
        #     f = open("mail.%d.attach" % (i+1),'w')
        #     f.write(base64.decodestring(part.get_payload()))
        #     f.close()
        #elif contenttype == 'text/plain':
        
        #f = open("%s.eml" % (unicode(msg_sub, "gbk").encode("utf8")),'wb')
        #f.write(part.get_payload())
             
        #f.close()
        print msg_sub
        # unicode(msg_sub, "gbk").encode("utf8")


        致
礼!
 
				 
        py
        py.7在163.com
          2007-04-10


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年04月10日 星期二 16:34

jessinio smith jessinio在gmail.com
星期二 四月 10 16:34:37 HKT 2007

ÏÂÎçÔõôûÓÐÐÅÁË£¿£¿
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070410/936c603d/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年04月10日 星期二 19:11

haur hekun06在gmail.com
星期二 四月 10 19:11:51 HKT 2007

os.system('chmod 777')
-------------- 下一部分 --------------
??HTML?????...
URL: http://python.cn/pipermail/python-chinese/attachments/20070410/4ee60d77/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年04月10日 星期二 19:14

jessinio smith jessinio在gmail.com
星期二 四月 10 19:14:41 HKT 2007

ÓÐûÓк¯ÊýʽµÄ£¬²»Ïëµ÷ÓÃÈ˼ҵijÌÐò
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070410/39283faf/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年04月11日 星期三 09:35

IQDoctor huanghao.c在gmail.com
星期三 四月 11 09:35:37 HKT 2007

os.setuid(0)

前提是你的程序本身是带 SUID 的.

jessinio smith 写道:
>
> 有没有函数式的,不想调用人家的程序
> ------------------------------------------------------------------------
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年04月11日 星期三 10:00

Marco marco在waven.com
星期三 四月 11 10:00:05 HKT 2007

os.setuid(0)? 然后sudo chmod +s test.py ?
上面的大哥肯定没有实际做过吧?
对一个脚本程序chmod +s 是无效的,因为脚本解释器(python)本身没有被setuid, 所以运行到os.setuid(0)时会出错。

我用的土办法是用C写一个wrap程序,这个wrap程序用超级用户setuid后去调用脚本。不过要当心,这样做会比较危险。 你可以在wrap程序里做一定的检查。

On 4/11/07, IQDoctor <huanghao.c在gmail.com> wrote:
> os.setuid(0)
>
> 前提是你的程序本身是带 SUID 的.
>
> jessinio smith 写道:
> >
> > 有没有函数式的,不想调用人家的程序
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese在lists.python.cn
> > Subscribe: send subscribe to python-chinese-request在lists.python.cn
> > Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese


-- 
LinuX Power

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年04月11日 星期三 10:12

IQDoctor huanghao.c在gmail.com
星期三 四月 11 10:12:00 HKT 2007

了解. 我错了.忘了有解释器这回事, 呵呵.


Marco 写道:
> os.setuid(0)? 然后sudo chmod +s test.py ?
> 上面的大哥肯定没有实际做过吧?
> 对一个脚本程序chmod +s 是无效的,因为脚本解释器(python)本身没有被setuid, 所以运行到os.setuid(0)时会出错。
>
> 我用的土办法是用C写一个wrap程序,这个wrap程序用超级用户setuid后去调用脚本。不过要当心,这样做会比较危险。 你可以在wrap程序里做一定的检查。
>
> On 4/11/07, IQDoctor <huanghao.c at gmail.com> wrote:
>   
>> os.setuid(0)
>>
>> 前提是你的程序本身是带 SUID 的.
>>
>> jessinio smith 写道:
>>     
>>> 有没有函数式的,不想调用人家的程序
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> python-chinese
>>> Post: send python-chinese at lists.python.cn
>>> Subscribe: send subscribe to python-chinese-request at lists.python.cn
>>> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
>>> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>>>       
>> _______________________________________________
>> python-chinese
>> Post: send python-chinese at lists.python.cn
>> Subscribe: send subscribe to python-chinese-request at lists.python.cn
>> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
>> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>>     
>
>
>   


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年04月11日 星期三 11:01

haur hekun06在gmail.com
星期三 四月 11 11:01:28 HKT 2007

»¹Ã»Óм´°²È«,ÓÐˬµÄ°ì·¨ÄØ......
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070411/df107e29/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年04月11日 星期三 13:45

Marco marco在waven.com
星期三 四月 11 13:45:17 HKT 2007

获得root权限(setuid)本身就不是很推荐的做法, 如果真的要做, 只能小心小心再小心。

你可以在脚本程序的第二行放这个脚本的md5或者sha256等摘要, 成功通过了才执行。

On 4/11/07, haur <hekun06在gmail.com> wrote:
> 还没有即安全,有爽的办法呢......
>


-- 
LinuX Power

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年04月11日 星期三 13:56

LI Xin delphij在delphij.net
星期三 四月 11 13:56:16 HKT 2007

Marco wrote:
> 获得root权限(setuid)本身就不是很推荐的做法, 如果真的要做, 只能小心小心再小心。
> 
> 你可以在脚本程序的第二行放这个脚本的md5或者sha256等摘要, 成功通过了才执行。

这个可能意义不大。如果脚本本身不可信的话,有什么理由相信它自己提供的hash
的正确性呢? :-)

我个人建议这类程序分成两部分来写,一个以root身份运行,内部有一个DFA来检
测请求是否“理性”,用于执行特权任务,这个程序可能通过chroot等各种手段来加
以限制;另一个则以普通用户身份运行(常规任务)。save/set uid确实是一个很糟
糕的做法。

Cheers,
-- 
Xin LI <delphij在delphij.net>	http://www.delphij.net/
FreeBSD - The Power to Serve!

-------------- 下一部分 --------------
一个非文本附件被清除...
发信人: %(who)s
主题: %(subject)s
日期: %(date)s
大小: 249
Url: http://python.cn/pipermail/python-chinese/attachments/20070411/175f7b8b/attachment.pgp 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年04月11日 星期三 16:34

Marco marco在waven.com
星期三 四月 11 16:34:45 HKT 2007

我的意思是在wrap只能执行特定md5/sha256值的文件,
wrap会先读脚本程序本身并计算其摘要,如果符合条件才能运行,wrap程序可以有一个配置文件,该配置文件记录多个可能的摘要值并且只有root可读可写。

这样应该可以的,呵呵。

On 4/11/07, LI Xin <delphij在delphij.net> wrote:
> Marco wrote:
> > 获得root权限(setuid)本身就不是很推荐的做法, 如果真的要做, 只能小心小心再小心。
> >
> > 你可以在脚本程序的第二行放这个脚本的md5或者sha256等摘要, 成功通过了才执行。
>
> 这个可能意义不大。如果脚本本身不可信的话,有什么理由相信它自己提供的hash
> 的正确性呢? :-)
>
> 我个人建议这类程序分成两部分来写,一个以root身份运行,内部有一个DFA来检
> 测请求是否"理性",用于执行特权任务,这个程序可能通过chroot等各种手段来加
> 以限制;另一个则以普通用户身份运行(常规任务)。save/set uid确实是一个很糟
> 糕的做法。
>
> Cheers,
> --
> Xin LI <delphij在delphij.net>	http://www.delphij.net/
> FreeBSD - The Power to Serve!
>
>


-- 
LinuX Power

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年04月11日 星期三 16:54

LI Xin delphij在delphij.net
星期三 四月 11 16:54:40 HKT 2007

Marco wrote:
> 我的意思是在wrap只能执行特定md5/sha256值的文件,
> wrap会先读脚本程序本身并计算其摘要,如果符合条件才能运行,wrap程序可以有一个配置文件,该配置文件记录多个可能的摘要值并且只有root可读可写。
> 
> 这样应该可以的,呵呵。

哦……呵呵,我误解了 :-) 这样应该没什么问题。

还有一个思路是做数字签名,这样wrapper只需持有一个公钥就可以了。

Cheers,
-- 
Xin LI <delphij在delphij.net>	http://www.delphij.net/
FreeBSD - The Power to Serve!

-------------- 下一部分 --------------
一个非文本附件被清除...
发信人: %(who)s
主题: %(subject)s
日期: %(date)s
大小: 249
Url: http://python.cn/pipermail/python-chinese/attachments/20070411/22bc8d0e/attachment.pgp 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年04月11日 星期三 19:23

jessinio smith jessinio在gmail.com
星期三 四月 11 19:23:10 HKT 2007

ÎÒÒªÊÔһϲÅÐС£
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070411/835f6244/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号