python에서 linux 시간 설정하기에서 시스템 명령어가 실행되지 않습니다.

조회수 814회

안녕하세요

Ubuntu linux 18.04 LTS OS 운영체제에서 Python 내에서 시간설정 기능을 추가해야 합니다. 과거 raspberry 라즈비안 내에서는 실행되던 명령어가 Ubuntu linux 환경에서는 실행이 되지 않아서 질문드립니다.

일단 linux 콘솔에서

sudo date -s "2021-08-04 09:47:01"로 실행할 경우 시간이 설정됩니다.

python 내에서

import subprocess 
proc = subprocess.Popen(['sudo', 'date', '-s', '2021-08-04 09:47:01'])

out = proc.communicate()
print(out)

위와 같이 실행 할 경우 sudo를 실행하기 위한 권한 문제 때문인지 hang에 빠집니다.

그래서, proc = subprocess.Popen(['date', '-s', '2021-08-04 09:47:01']) 위와 같이 변경할 경우

"date: 날짜를 설정할 수 없음: 명령을 허용하지 않음" 라는 문구와 같이 오류가 납니다.

GPS에서 읽어드린 현재 시간을 PC시간이 다를 경우 시간동기화하려는 부분인데 시스템 명령어를 사용하기 위해선 어떻게 사용해야 할까요?

  • 높은 확률로, 바로 저 파이썬 스크립트를 실행하는 주체가 루트여야 할 겁니다. 엽토군 2021.8.4 12:24
  • 엽토님 말씀대로입니다. 일반 계정으로 sudo를 사용하려하면 password를 묻는 프롬프트가 뜨게됩니다. 그래서 hang인 것처럼 보일 수 있습니다. password 프롬프트 없이 수행하려면 /etc/sudoers 파일을 편집해서 해당 계정으로 패스워드 없이 root 계정에 접근할 수 있도록 편집할 수 있습니다. whistler7899 2021.8.10 07:52

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)