Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Miten selville, kuka ajaa ohjelmaa ?

mrkebab [15.03.2007 21:26:58]

#

Elikkäs.

Minulla on tehtynä ohjelma. Sitä saa ajaa kuka haluaa (siis linuksissa ollaan). Mutta miten saisin tiedot ylös, että kuka ajaa ohjelmaa?

Ajattelin, että laittaisin tyyliin

system("komento joka näyttää käyttäjän ja veisi tiedot tiedostoon");

Olisiko linux tietämystä, että millainen komento tuohon sopisi ?

Blaze [15.03.2007 23:16:16]

#

whoami > filu

Tietty jossain APIssa saattaa olla joku funkkari, jolla tuon saa ilman tiedostokierrätystäkin, mut whoami:n manuaalisivulla ei lue, ja googlettaa osaat sinä ihan yhtä hyvin kuin minäkin.

mrkebab [16.03.2007 08:26:09]

#

kiitoksia Blaze.

KeKimmo [16.03.2007 09:48:08]

#

Käyttäjän id:n saa getuid()-funktiolla, nimen ja muuta tietoa sisältävän struktin taas antamalla saadun id:n getpwuid()-funktiolle. Lisätietoa man-sivuilta.

(Minähän en tätä tiennyt ennen kuin äsken otin selvää, RTFM auttaa aina :)

EDIT: Yksinkertainen esimerkki:

#include <unistd.h>
#include <stdio.h>
#include <pwd.h>

int main (int argc, char *argv[]) {
  printf("%s\n", getpwuid(getuid())->pw_name);
  return 0;
}

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta