как на С определить username ? например как passwd определяет что его запустил юзер vasia ? насколько я понимаю это содержится в переменных окружения ?
Есть функции char * getlogin (void) и char * cuserid (char *string) Вторая deprecated, а первая вроде бы ничего.
Далее в мануале по этим функциям написано буквально следующее "For most purposes, it is more useful to use the environment variable LOGNAME to find out who the user is. This is more flexible precisely because the user can set LOGNAME arbitrarily."