GNU/Linux >> Linux の 問題 >  >> Linux

C で所有者とグループを変更しますか?

答えを完成させるために、Linux では以下を使用できます (私は 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");
  }
}

chmod を使用できます 、 fchmodat および/または fchmod システムコール。 3 つすべてが <sys/stat.h> にあります。 .

所有権には chown があります と fchownat 、両方とも <unistd.h> .


Linux
  1. Linuxでユーザーグループを作成および削除する方法

  2. 別のユーザーおよびグループとしてファイルを作成しますか?

  3. ディレクトリの所有者とグループを見つける方法は?

  1. ls を所有者とグループでソートするにはどうすればよいですか?

  2. 所有者/グループを再帰的に変更するより迅速な方法は?

  3. Rsync コマンドの問題、所有者とグループのアクセス許可は変更されません

  1. セキュリティグループとルールを管理する

  2. 所有者とグループを変更する 12 の Linux chown コマンドの例

  3. Linux でのユーザーおよびグループ管理の初心者向けガイド