GNU/Linux >> Linux Esercitazione >  >> Linux

Cambia proprietario e gruppo in C?

Per completare la risposta, su Linux è possibile utilizzare quanto segue (ho testato su Ubuntu ):

#include <sys/types.h>
#include <pwd.h>
#include <grp.h>

void do_chown (const char *file_path,
               const char *user_name,
               const char *group_name) 
{
  uid_t          uid;
  gid_t          gid;
  struct passwd *pwd;
  struct group  *grp;

  pwd = getpwnam(user_name);
  if (pwd == NULL) {
      die("Failed to get uid");
  }
  uid = pwd->pw_uid;

  grp = getgrnam(group_name);
  if (grp == NULL) {
      die("Failed to get gid");
  }
  gid = grp->gr_gid;

  if (chown(file_path, uid, gid) == -1) {
      die("chown fail");
  }
}

Puoi usare chmod , fchmodat e/o fchmod chiamate di sistema. Tutti e tre si trovano in <sys/stat.h> .

Per la proprietà, c'è chown e fchownat , entrambi in <unistd.h> .


Linux
  1. Precedenza dell'utente e del proprietario del gruppo nelle autorizzazioni dei file?

  2. Gestisci i gruppi di sicurezza e le regole

  3. Come posso ordinare ls per proprietario e gruppo?

  4. Un modo più rapido per cambiare proprietario/gruppo in modo ricorsivo?

  5. Cambia proprietario e gruppo solo per proprietari specifici

Come modificare il proprietario di file/gruppi con il comando chown in Linux

Comando Chgrp in Linux (Cambia gruppo)

Comando Linux id - Stampa le informazioni sull'ID utente e sull'ID gruppo

Come modificare la porta di WordPress in Apache e Nginx

Cambia lingua e tema

Cambia la tua porta SSH in Ubuntu e Debian