GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cambiar propietario y grupo en C?

Para completar la respuesta, en Linux se puede usar lo siguiente (he probado en 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");
  }
}

Puedes usar el chmod , fchmodat y/o fchmod llamadas del sistema. Los tres están ubicados en <sys/stat.h> .

Para la propiedad, hay chown y fchownat , ambos en <unistd.h> .


Linux
  1. ¿Precedencia del propietario del usuario y del grupo en los permisos de archivo?

  2. ¿Crear un archivo como un usuario y grupo diferente?

  3. ¿Cómo encontrar el propietario y el grupo de un directorio?

  4. Guía para principiantes de administración de usuarios y grupos en Linux

  5. Problemas con el comando Rsync, los permisos de propietario y grupo no cambian

Cómo cambiar el propietario del archivo/grupo con el comando chown en Linux

Comando Chgrp en Linux (Cambiar grupo)

Comando id de Linux - Imprimir información de ID de usuario e ID de grupo

Cómo cambiar el puerto de WordPress en Apache y Nginx

Cambiar idioma y tema

Cambia tu puerto SSH en Ubuntu y Debian