Как узнать, к какой группе принадлежит текущий пользователь через c ++? - PullRequest
0 голосов
/ 13 марта 2010

Используя мою программу на c ++, как я могу узнать, к какой группе принадлежит текущий пользователь, выполняющий мою программу? Так что моей программе нужно выяснить пару вещей:

  1. Текущее имя пользователя пользователя
  2. Группа, к которой принадлежит пользователь

Как это можно сделать с помощью c ++ на компьютере RedHat / Linux?

Ответы [ 3 ]

5 голосов
/ 13 марта 2010

С getuid(2) и getgid(2). См. credentials(7) для получения дополнительной информации.

Используйте getpwuid(3) и getgrgid(3) для имен.

3 голосов
/ 13 марта 2010

Вы можете найти некоторую информацию через getgid() (реальный GID) и getegid() (эффективный GID). Для других вспомогательных групп необходимо использовать getgroups().

На практике реальный и эффективный GID обычно совпадают, но это эффективный GID, который используется при создании файла. Обычно список групп, возвращаемый getgroups(), включает в себя реальную группу - хотя неясно, действительно ли это необходимо.

2 голосов
/ 13 марта 2010

Вы используете getuid(2) и getgid(2) для получения числовых идентификаторов пользователей и групп, затем используйте getpwuid(3) и getgrgid(3) для поиска этих идентификаторов в базах данных пользователей и групп и превращения их в текстовые имена. *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...