2013-08-01 3 views
1

나는 우분투에서 일하고 Python으로 코드를 작성하고 있습니다.루트 디렉토리 IOError : [Errno 13] 권한이 거부되었습니다. :

ins = open("/usr/local/etc/conf.d/test.txt", "r") 
array = [] 
for line in ins: 
    array.append(line) 
array.append('add this new line') 
f = open("/usr/local/etc/gnuradio/test.txt",'w') 
for line in array: 
    f.write(line) 

나는이 오류가 무엇입니까 : 나는 우리가없이 루트 디렉토리에 아무것도 변경할 수있는 권한이 없습니다 알고

Traceback (most recent call last): 
    File "overwrite.py", line 6, in <module> 
    f = open("/usr/local/etc/gnuradio/test.txt",'w') 
IOError: [Errno 13] Permission denied: '/usr/local/etc/gnuradio/test.txt' 

을 나는 루트 디렉토리에있는 파일에 한 줄을 추가 할 sudo를 사용합니다. 하지만 어쨌든 내 파이썬 모듈 내 에서이 파일을 업데이트 할 수 있습니까?

+1

이것은 파이썬 문제가 아니며 프로그래밍 문제는 아닙니다. 유닉스 계열 시스템 사용에 대한 기본적인 질문입니다. – abarnert

+0

예, 맞습니다.하지만 파이썬에는 pexpect와 같은 sudo 명령을 실행하는 솔루션이 있으므로이 문제에 대한 해결책이있을 것이라고 생각했습니다. – user2460869

+0

'pexpect'는'sudo'에 대해 아무것도 모릅니다. 물론, 실제 작업을 수행하는 스크립트에서 다른 Python 인스턴스를 실행하기 위해'sudo '를 실행하는 코드를 작성할 수는 있지만 왜 그런가? 패스워드를 평문에두고 싶다면 재미있는 방법이 있습니다. – abarnert

답변

2

당신은 이미 자신의 질문에 대답했습니다 : 당신은 그렇게 할 수있는 권한이 없습니다.

sh, bash, python, C, erlang 또는 고무 호스 공격을 사용하더라도 상관 없습니다.

필요한 사용 권한을 소유 한 사용자로 스크립트를 실행하거나 파일에 대한 액세스 권한을 부여하십시오.

관련 문제