如何在C程序中找到setuid用户的UID?

时间:2012-02-19 17:17:16

标签: c linux

apache2和mysql等程序安装在世界各地的各种机器上。他们如何确保他们知道他们希望运行的受限权利用户的uid或gid?我希望我的程序作为服务运行,其用户通过init.d拥有最少的权限。我假设在init.d中启动的服务最初是以root身份运行的吗?

1 个答案:

答案 0 :(得分:2)

通常有一个配置文件,用于指定服务要使用的用户。然后该服务可以使用getpwnam(3)并检索UID。

struct passwd *getpwnam(const char *name);

struct passwd {
    char *pw_name;      /* Login name (username) */
    char *pw_passwd;    /* Encrypted password */
    uid_t pw_uid;       /* User ID */      <-----