2009-10-29 8 views
1

동적으로 호스트 (etc/hosts) 파일을 편집/업데이트하여 도메인을 추가하려고합니다.프로그래밍 언어를 사용하여 호스트 (etc/hosts) 파일을 편집/업데이트하는 방법

호스트 (etc/hosts) 파일을 편집하려면 관리자 권한이 필요합니다. 리눅스를 사용하여 I이 명령하여이 작업을 수행 할 수 있습니다

sudo는 gedit를/etc/hosts 파일

하지만 프로그래밍 언어를 사용하는이 작업을 수행하려합니다.

어떻게 할 수 있습니까?

+1

이 파일은 최신 OS 및 보안/바이러스 백신 소프트웨어에 의해 정보 용으로 고도로 보호됩니다. –

+0

중복 : http://serverfault.com/questions/79399/how-can-i-edit-update -hostsetc-hosts-file-any-programming-language를 사용하여 –

+0

@ 랜돌프 포터 : 이것은 나, http://serverfault.com/questions/79399/how-can-i-edit-update-hostsetc- 호스트 - 파일 - 사용 - 프로그래밍 언어 – Imrul

답변

2

가장 좋은 방법은 SSH와 같은 것을 사용하고 루트 (또는 시스템()의 sudo)로 컴퓨터에 연결하고 파일을 수정 한 다음 연결을 끊는 것입니다. 이 추가 된 장점은 사용자에게 암호를 묻는 편리 성입니다.

메시지를 표시하지 않고이를 수행하려면 을 달성하기위한 수단을 설정해야합니다 ( 루트). 나는. 도우미 응용 프로그램 설정, 암호가없는 키 설치, LDAP 트리 수정 또는 기타 여러 가지 방법이 있습니다. 더 나은 용어가 없다는 것은 약간 '칙칙한'것입니다.

일반적으로 권한 에스컬레이션 기능이없는 사용자는이 방법을 사용할 수 없습니다.

1

파일을 편집 할 수있는 권한이 있어야합니다.

파일을 변경하려면 읽기/쓰기/추가 모드 (예 : "a"fopen()을 사용하는 모드)에서 파일을 열고 파일 끝에 새 텍스트를 씁니다.

2

프로그램을 적절한 권한으로 실행해야합니다. 고전적인 기술 중 하나는 파일을 루트가 소유하게하고 setuid 비트를 설정하는 것입니다. 프로그램이 실행되면 루트가되어/etc/hosts를 수정할 수 있습니다.

그런데 setuid 코드는 위험합니다. 코드의 버그로 인해 프로그램이 시스템을 사용할 수 없게 만들 수 있습니다. 특정 버그는 악의적 인 사용자가 루트로 임의의 프로그램을 실행하고 시스템을 인계하는 데 사용될 수 있습니다. 난 당신이 당신이 그 sudo는 명령을 실행할 수있는 명령 프롬프트에있다 있으리라 믿고있어

1

..

당신은 당신이 주장 하듯이, 한 줄을 추가 할 수 있습니다 다음 프로그래밍 언어를 액세스 권한을 제공 텍스트를 기존 텍스트 파일에 추가하거나 생성하지 않을 경우 텍스트 파일을 만들 수 있습니다. 해당 프로그램에 추가 권한을 부여 할 수도 있지만 그 주제는 다릅니다!

요약 : 어떤 언어를 알고 있습니까? => 그것을 사용하십시오!