GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Besitzer und Gruppe in C ändern?

Um die Antwort zu vervollständigen, kann unter Linux Folgendes verwendet werden (ich habe es auf Ubuntu getestet ):

#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");
  }
}

Sie können die chmod verwenden , fchmodat und/oder fchmod Systemaufrufe. Alle drei befinden sich in <sys/stat.h> .

Für den Besitz gibt es chown und fchownat , beide in <unistd.h> .


Linux
  1. Vorrang von Benutzer- und Gruppeneigentümern bei Dateiberechtigungen?

  2. Erstellen Sie eine Datei als ein anderer Benutzer und eine andere Gruppe?

  3. Wie finde ich den Besitzer und die Gruppe eines Verzeichnisses?

  4. Verwalten Sie Sicherheitsgruppen und -regeln

  5. Rsync-Befehlsprobleme, Eigentümer- und Gruppenberechtigungen ändern sich nicht

So ändern Sie den Datei-/Gruppenbesitzer mit dem Befehl chown in Linux

Chgrp-Befehl in Linux (Gruppe ändern)

Linux-Befehl id - Gibt Benutzer-ID- und Gruppen-ID-Informationen aus

So ändern Sie den WordPress-Port in Apache und Nginx

Sprache und Design ändern

Ändern Sie Ihren SSH-Port in Ubuntu und Debian