setuidを有する下部特権レベルにまで低下する適切な方法は何ですか?
質問
私はそれがその後の非root権限で実行したいのですが、ポート<1024にバインドCでプログラムを書いています。
私は、しかし、何の引数で、)私は(setuidを呼び出す必要があります知っていますか? UIDのは、システムによって異なります。
解決
あなたはでのuid / gidのユーザーを検索するために getpwnam()
に使用することができます名前:
#include <sys/types.h>
#include <unistd.h>
#include <pwd.h>
int changepriv(const char *user) {
struct passwd *pw;
int rv;
pw = getpwnam(user);
if (!pw)
return -1;
rv = setgid(pw->pw_gid);
if (rv == -1)
return -2;
rv = setuid(pw->pw_uid);
if (rv == -1)
return -3;
return 0;
}
所属していません StackOverflow