在Linux中,创建一个文件时,该文件的拥有者都是创建该文件的用户。该文件用户可以修改该文件的拥有者及用户组,当然root用户可以修改任何文件的拥有者及用户组。在Linux中,对于文件的权限(rwx),分为三部分,一部分是该文件的拥有者所拥有的权限,一部分是该文件所在用户组的用户所拥有的权限,另一部分是其他用户所拥有的权限。对于文件的权限请参考《Linux的chmod命令
   文件(含文件夹,下同)的权限,在shell中可以通过chmod命令来完成,关于此请参考《Linux的chmod命令》。在 shell 中,可以使用chown命令来改变文件所有者及用户组,chgrp命令来改变文件所在用户组。在 Linux的C程序中,可以使用chown函数来改变文件所有者,及所在用户组。
  另外,在shell中,要修改文件当前的用户必须具有管理员root的权限。可以通过su命令切换到root用户,也可以通过sudo获得root的权限。
二、使用chown命令更改文件拥有者
在 shell 中,可以使用chown命令来改变文件所有者。chown命令是change owner(改变拥有者)的缩写。需要要注意的是,用户必须是已经存在系统中的,也就是只能改变为在 /etc/passwd这个文件中有记录的用户名称才可以。
chown命令的用途很多,还可以顺便直接修改用户组的名称。此外,如果要连目录下的所有子目录或文件同时更改文件拥有者的话,直接加上 -R的参数即可。
基本语法:
chown [-R] 账号名称 文件或目录
chown [-R] 账号名称:用户组名称 文件或目录
参数
-R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录
都更新成为这个用户组。常常用在更改某一目录的情况。
示例1
[root@localhost home]# touch testfile //由 root 用户创建文件 
[root@localhost home]# ls testfile –l 
-rw--w--w- 1 root root 0 Jun 7 19:35 testfile //文件的拥有者及拥有者级均为 root 
[root@localhost home]# chown yangzongde testfile //修改文件拥有者为 yangzongde 
[root@localhost home]# ls testfile -l 
-rw--w--w- 1 yangzongde root 0 Jun 7 19:35 testfile //查看文件拥有者为 yangzongde,但组仍为 root 
示例2
chown bin install.log
ls -l
-rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log
chown root:root install.log
ls -l
-rw-r--r--  1 root root 68495 Jun 25 08:53 install.log
三、使用chgrp命令更改文件所属用户组
在shell中,可以使用chgrp命令来改变文件所属用户组,该命令就是change group(改变用户组)的缩写。需要注意的是要改变成为的用户组名称,必须在 /etc/group里存在,否则就会显示错误。
基本语法:
chgrp [-R] 用户组名称 dirname/filename ...
参数:
-R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录
都更新成为这个用户组。常常用在更改某一目录的情况。
示例3
[root@localhost home]# ls testfile -l 
-rw--w--w- 1 yangzongde root 0 Jun 7 19:35 testfile //查看文件拥有者为 yangzongde,但组为 root 
[root@localhost home]# chgrp yangzongde testfile //修改拥有者组为 yangzongde 
[root@localhost home]# ls testfile -l 
-rw--w--w- 1 yangzongde yangzongde 0 Jun 7 19:35 testfile 
[root@localhost home]# chown root:root testfile // 使用 chown 一次性修改拥有者及组 
[root@localhost home]# ls testfile -l 
-rw--w--w- 1 root root 0 Jun 7 19:35 testfile 
示例4
[root@linux ~]# chgrp users install.log
[root@linux ~]# ls -l
-rw-r--r--  1 root users 68495 Jun 25 08:53 install.log
示例5
更改为一个 /etc/group里不存在的用户组
[root@linux ~]# chgrp testing install.log
chgrp: invalid group name `testing' <== 出现错误信息~找不到这个用户组名~
四、chown 函数的使用
在Linux 的C 应用编程中,可以使用 chown 函数来修改文件的拥有者及拥有者组。此函数声明如下: 
/usr/include/unistd.h文件中
/* Change the owner and group of FILE. */ 
extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)__THROW __nonnull ((1)) __wur; 
此函数的第一个参数为欲修改用户的文件,第二个参数为修改后的文件拥有者,第三个参数为修改后该文件拥有者所在的组。
 
对于已打开的文件,使用 fchown 函数来修改。其第一个参数为已打开文件的文件描述符,其他同 chown 函数。该函数声明如下: 
/* Change the owner and group of the file that FD is open on. */ 
extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __THROW __wur; 
对于连接文件,则可以使用 lchown 函数。其参数同于 chown 函数。 
/* Change owner and group of FILE, if it is a symbolic link the ownership of the symbolic 
link is changed. */ 
extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group) __THROW __nonnull ((1)) __wur; 
以上这 3 个函数如果执行成功,将返回 0,否则返回-1。

linux 更改文件所属用户及用户组的更多相关文章

  1. centos更改文件所属用户和用户组

    使用命令为chown和chgrp 更改文件夹或者文件的所属用户 chown -R username dirname chown username filename 更改文件夹或者文件的所属用户组 ch ...

  2. linux修改文件所属用户和用户组

    使用chown命令可以修改文件或目录所属的用户:       命令:chown 用户 目录或文件名       例如:chown testAdmin /home/work  (把home目录下的xua ...

  3. linux修改文件所属用户、用户组

    修改hive.log文件为hadoop用户,hadoop组 sudo chown 用户名:用户组 文件 sudo chown hadoop:hadoop hive.log 修改某个文件夹及其自文件 s ...

  4. linux 修改目录文件权限,目录文件所属用户,用户组

    1:查看命令:ll drwxr-xr-x  4 gamer ftp      4096 Mar  7 16:56 gstore drwxrwxrwx 10 root  ftp      4096 De ...

  5. centos7 权限更改,所属用户及用户组更改

    2021-08-03 # 查看文件的权限 ll 第一个字符, "-" 表示是文件, "d" 表示是目录(directory) 后面 9 个字符每 3 个字符又作 ...

  6. ubuntu linux修改文件所属用户(owner属主)和组(groud属组、用户组)

    使用chown命令可以修改文件或目录所属的用户: 命令格式:sudo chown 用户 目录或文件名 例如:sudo chown -R griduser /home/dir1  (把home目录下的d ...

  7. linux修改文件所属用户和组

    使用chown命令可以修改文件或目录所属的用户: 命令:chown 用户 目录或文件名 例如:chown qq /home/qq  (把home目录下的qq目录的拥有者改为qq用户) 使用chgrp命 ...

  8. linux修改文件所属的用户组以及用户

    linux修改文件所属的用户组以及用户 将文件夹从A用户(huangxf)目录复制B用户(zhenglf)目录,其中B没有sudo权限.将A的Downloads文件夹下的所有文件,复制到B的Docum ...

  9. Linux——CentOS7添加/删除用户和用户组1

    Linux--CentOS7添加/删除用户和用户组 2017.05.02 19:58 23012浏览   前言 今天又重新装了centos7突然有关用户和用户组有关的命令记不清了,所以记一下,也方便你 ...

随机推荐

  1. MySQL5.7.27报错[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated

    mysql5.7.27在运行更新语句时出现如下情况,mysql5.6之前没有这种情况出现. of ORDER BY clause is not in GROUP BY clause and conta ...

  2. HTML(五)列表,区块,布局,表单和输入

    HTML 列表 无序列表 Coffee Tea Milk 默认是圆点,也可以 圆圈 正方形 有序列表 Coffee Tea Milk Coffee Tea Milk 默认是用数字排序 大写字母 小写字 ...

  3. windows服务autofac注入quartz任务

    一.nuget下载相关类库引用 install-package Quartz install-package Autofac install-package Autofac.Configuration ...

  4. Treap + 无旋转Treap 学习笔记

    普通的Treap模板 今天自己实现成功 /* * @Author: chenkexing * @Date: 2019-08-02 20:30:39 * @Last Modified by: chenk ...

  5. 牛客小白月赛6 水题 求n!在m进制下末尾0的个数 数论

    链接:https://www.nowcoder.com/acm/contest/135/C来源:牛客网 题目描述 其中,f(1)=1;f(2)=1;Z皇后的方案数:即在Z×Z的棋盘上放置Z个皇后,使其 ...

  6. yzoj1657货仓选址 题解

    题面: 在一条数轴上有N家商店,它们的坐标分别为 A[1]~A[N].现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品.为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的 ...

  7. JS-特效 ~ 02. 屏幕滚动事件、 DTD、scroll、顶部悬浮导航、两侧跟随广告、返回顶部小火煎

    ceil 向上取整 floor 向下取整 round 四舍五入 缓动动画 动画原理 = 盒子位置 + 步长 清除定时器 步长越来越小 盒子位置 = 盒子本身位置 + (目标位置-本身位置)/n(最好为 ...

  8. 2019icpc徐州网络赛_I_query

    题意 给定一个序列,多次询问区间\([l,r]\)中满足\(min(a[i],a[j])==gcd(a[i],a[j])\)的数对\((i,j)\)数. 分析 其实就是求区间有倍数关系的数对数. 由于 ...

  9. Go pprof性能调优

    在计算机性能调试领域里,profiling 是指对应用程序的画像,画像就是应用程序使用 CPU 和内存的情况. Go语言是一个对性能特别看重的语言,因此语言中自带了 profiling 的库,这篇文章 ...

  10. springboot中动态修改log4j2日志级别

    springboot中动态修改log4j2日志级别 在spring boot中使用log4j2日志时,项目运行中,想要修改日志级别. 1.pom.xml依赖: <dependency> & ...