我米用蟒蛇shutil.copy複製文件的列表。但是,當我將文件複製到/ usr/lib中/位置,I M越來越不準,因爲我需要是管理員才能做到這一點。同時使用shutil.copy拷貝文件獲得管理員密碼?
所以我怎麼可能複製文件以管理員權限或 我怎麼能得到用戶的管理員密碼複製文件?
想法,將不勝感激
我米用蟒蛇shutil.copy複製文件的列表。但是,當我將文件複製到/ usr/lib中/位置,I M越來越不準,因爲我需要是管理員才能做到這一點。同時使用shutil.copy拷貝文件獲得管理員密碼?
所以我怎麼可能複製文件以管理員權限或 我怎麼能得到用戶的管理員密碼複製文件?
想法,將不勝感激
與被允許寫有用戶啓動程序。例如登錄到第一(su
)根或sudo myscript.py
運行該腳本。
使用戶運行該腳本作爲管理員:
sudo python-script.py
的Unix已經認證和口令管理。你不需要自己編寫,如果你嘗試的話,無疑會有安全漏洞。
要添加到什麼katrielalex說:你可以讓腳本運行自己通過sudo
如果你想。這是一個概念證明:
import sys, os, subprocess
def do_root_stuff():
print('Trying to list /root:')
for filename in os.listdir('/root'):
print(filename)
if __name__ == '__main__':
print('Running as UID %d:' % os.geteuid())
if os.geteuid() == 0:
do_root_stuff()
else:
subprocess.check_call(['sudo', sys.executable] + sys.argv)
我來找她尋找一種替代方式做事。 一個快速和骯髒的黑客我用的,因爲我不希望我的整個腳本以root身份運行:
try:
shutil.os.remove(file1)
except PermissionError:
shutil.os.system('sudo chown $USER "{}"'.format(file1))
# try again
try:
shutil.os.remove(file1)
except:
print('Giving up on'.format(file1))
這可能不完全是容易出錯的,但他們的快速腳本工作,我砍一起
哎呀,我看到你問的複印權限。 但是你可以採用同樣的邏輯
try:
shutil.os.copy(file1,destination)
except PermissionError:
shutil.os.system('sudo cp "{}" "{}"'.format(file1,destination))
上的超級用戶不屬於;這是如何用Python(腳本語言)編寫複製命令。 – 2010-09-28 09:12:18