setuidを有する下部特権レベルにまで低下する適切な方法は何ですか?

StackOverflow https://stackoverflow.com/questions/1695677

  •  18-09-2019
  •  | 
  •  

質問

私はそれがその後の非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;
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top