2012-08-19 3 views
0

Ubuntu 11.04의 NetBeans 6.9에서 C++로 개발 중입니다. 나는 root가 아닌 user "peter"라고 부르기를 원하는 system() 호출을 만들고있다. 나는 그것을 이해한다C++에서 UID를 루트가 아닌 다른 사용자로 설정

는 루트로 사용자를 설정하지만 어떻게 사용자를 피터로 설정합니까?

고마워, 피터.

+2

"peter"는 사용자가 아닙니다. 이것은 사용자와 관련된 문자열입니다. 사용자는 번호로 식별됩니다. 당신이해야 할 일은 어떤 사용자 ID에 문자열 "피터"가 연관되어 있는지를 찾는 것입니다. 'getpwnam'이 도움이 될 것입니다. –

답변

2

올바른 사용자 ID를 찾기 위해 예를 들어를 통해 비밀번호 파일을 검색하려고합니다. getpwnam(). 예 :

// look up peter's uid 
uid_t peter_uid=getpwnam("peter")->pw_uid; 

// Become peter 
setuid(peter_uid); 
seteuid(peter_uid); 
관련 문제