2012-07-21 4 views
2

저는 시작할 때 자동으로 실행되는 임베디드 시스템에서 실행되는 응용 프로그램을 보유하고 있습니다. 일부 기능에는 직렬 포트에 대한 읽기 및 쓰기 기능이 포함되어 있으므로 소프트웨어에 루트 권한이 필요합니다. 내 컴퓨터에서 그냥 프로그램을 실행할 수있는대로 아무 문제가 sudo 그리고 괜찮아요. 내 임베디드 장치에서 나는 이것을 할 수 없기 때문에 코드가 루트로 실행되지 않도록하는 리눅스 시스템 기능이 있지만 필요 이상으로 직렬 포트에 액세스 할 수있는 루트 권한을 가질 수 있기를 바란다. 이것이 보안상의 관점에서 볼 때 아마도 좋은 생각은 아니지만 임베디드 장치에 있기 때문에 대안이 없다는 것을 알았습니다.내 응용 프로그램이 루트 권한을 가질 수있는 시스템 기능이 있습니까?

+0

당신은 배울 수 setuid 실행 파일에 대한 자세한 내용 ... –

답변

10

응용 프로그램에서 액세스 할 수 있도록 직렬 포트 장치 노드의 사용 권한 만 변경한다고 생각하십니까?

예. 모든 응용 프로그램이 /dev/ttyS0 직렬 포트에 액세스 할 수 있도록 :

chmod a+rw /dev/ttyS0 

더 세밀한 제어를 제공하려면 별도의 사용자 그룹과 chgrp 직렬 포트 장치 노드를 만들 수 있습니다

chgrp serial /dev/ttyS0 
chmod 0660 /dev/ttyS0 

그 후, 응용 프로그램을 실행하는 사용자가 serial 사용자 그룹에있는 것처럼 실행하면됩니다.

또는 심지어 응용 프로그램 사용자 장치 노드의 단독 소유자 만들 수 : 딱 맞는 접근 방식이 아닌 장치 노드에 액세스하려면 루트 권한을 요구하는

chown appuser /dev/ttyS0 
chmod 0600 /dev/ttyS0 

...

+0

이것은 훨씬 더 현명한 접근 방법입니다. 귀하의 답변에 감사드립니다. – mathematician1975

관련 문제