GNU/Linux >> Tutoriels Linux >  >> Linux

Changer de propriétaire et de groupe en C ?

Pour compléter la réponse, sous Linux, ce qui suit peut être utilisé (j'ai testé sur 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");
  }
}

Vous pouvez utiliser le chmod , fchmodat et/ou fchmod appels système. Tous les trois sont situés au <sys/stat.h> .

Pour la propriété, il y a chown et fchownat , tous deux en <unistd.h> .


Linux
  1. Comment créer et supprimer un groupe d'utilisateurs sous Linux

  2. Priorité de l'utilisateur et du propriétaire du groupe dans les autorisations de fichier ?

  3. Créer un fichier en tant qu'utilisateur et groupe différents ?

  4. Comment trouver le propriétaire et le groupe d'un répertoire ?

  5. Gérer les groupes de sécurité et les règles

Comment changer le propriétaire d'un fichier/groupe avec la commande chown sous Linux

Commande Chgrp sous Linux (changer de groupe)

Commande Linux id - Imprimer les informations d'ID utilisateur et d'ID de groupe

Comment changer le port WordPress dans Apache et Nginx

Changer la langue et le thème

Changez votre port SSH dans Ubuntu et Debian