如何对日志文件授予sudo权限?

2024-09-27 22:30:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我按以下方式设置日志记录,但日志记录失败,因为位置/gerrit_v2/hooks/changemergedlogs需要sudo权限,如何通过脚本授予sudo权限?你知道吗

你知道吗代码:-你知道吗

import os,time,logging

# setup logging
changemergedhooklog = 'change_merged_hook_log_' + time.strftime("%m%d%Y") + '_' + time.strftime("%H%M%S") + '.txt'
#log = os.path.join(os.path.dirname(os.path.realpath(__file__)),changemergedhooklog)
log = os.path.join(os.path.dirname(os.path.realpath(__file__)),'changemergedlogs',changemergedhooklog)
logger = logging.getLogger(__name__)
#logger.setLevel(logging.DEBUG)
logger.setLevel(10)
ch = logging.StreamHandler()
#ch.setLevel(logging.DEBUG)
ch.setLevel(10)
formatter = logging.Formatter('%(asctime)s %(filename)-15s %(funcName)-20s %(lineno)-5s  %(levelname)-8s: %(message)s', datefmt="%Y-%m-%d %H:%M:%S")
ch.setFormatter(formatter)
logger.addHandler(ch)

fh = logging.FileHandler(log, 'w')
fh.setLevel(logging.DEBUG)
fh.setFormatter(formatter)
logger.addHandler(fh)

你知道吗错误:-你知道吗

  File "copytest.py", line 17, in <module>
    fh = logging.FileHandler(log, 'w')
  File "/Network/Servers/nwna40a.apple.com/vol/homedir4/wgerrit/.pyenv/versions/2.7.6/lib/python2.7/logging/__init__.py", line 903, in __init__
    StreamHandler.__init__(self, self._open())
  File "/Network/Servers/nwna40a.apple.com/vol/homedir4/wgerrit/.pyenv/versions/2.7.6/lib/python2.7/logging/__init__.py", line 926, in _open
    stream = open(self.baseFilename, self.mode)
IOError: [Errno 13] Permission denied: '/gerrit_v2/hooks/changemergedlogs/change_merged_hook_log_03272019_142144.txt'

Tags: pathdebugselflogtimeinitosformatter
1条回答
网友
1楼 · 发布于 2024-09-27 22:30:28

以root或sudo运行脚本。你知道吗

如果这不是一个选项,您可以在没有使用sudo调用os.geteuid()运行时检测到它。如果os.geteuid() != 0你没有和sudo一起跑步。如果是这样的话,你可以再次给自己打电话,但这次是sudo,类似于subprocess.call(['sudo', 'python3', *sys.argv])。你知道吗

相关问题 更多 >

    热门问题