本文整理自:

一、基本知识

  在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文件中



 

extern
int
chown (__const
char
*__file, __uid_t __owner, __gid_t __group)__THROW
__nonnull ((1)) __wur; 


此函数的第一个参数为欲修改用户的文件,第二个参数为修改后的文件拥有者,第三个参数为修改后该文件拥有者所在的组。

对于已打开的文件,使用 fchown 函数来修改。其第一个参数为已打开文件的文件描述符,其他同 chown
函数。该函数声明如下: 



 

extern
int
fchown (int __fd, __uid_t __owner, __gid_t __group) __THROW
__wur; 


对于连接文件,则可以使用 lchown 函数。其参数同于 chown
函数。 



 

extern
int
lchown (__const
char
*__file, __uid_t __owner, __gid_t __group) __THROW __nonnull ((1)) __wur; 


以上这 3 个函数如果执行成功,将返回
0,否则返回-1。

版权声明:本文为博主原创文章,未经博主允许不得转载。

如何更改linux文件的拥有者及用户…的更多相关文章

  1. 如何更改linux文件的拥有者及用户组(chown和chgrp)

    http://blog.csdn.net/hudashi/article/details/7797393 一.基本知识   在Linux中,创建一个文件时,该文件的拥有者都是创建该文件的用户.该文件用 ...

  2. 更改linux文件的拥有者及用户组(chown和chgrp)

    .使用chown命令更改文件拥有者 在 shell 中,能够使用chown命令来改变文件全部者.chown命令是change owner(改变拥有者)的缩写.须要要注意的是,用户必须是已经存在系统中的 ...

  3. 【Linux开发】如何更改linux文件的拥有者及用户组(chown和chgrp)

    本文整理自: http://blog.163.com/yanenshun@126/blog/static/128388169201203011157308/ http://ydlmlh.iteye.c ...

  4. linux文件权限表示及用户权限管理

    UNIX/Linux下关于文件执行权限的表示和查看想必是最熟悉不过的,然而你是否真正了解用户文件的权限标识和用户的权限呢? 实际上文件权限标识不仅仅只有U, G, O 11 10 9 8 7 6 5 ...

  5. linux 文件夹说明,用户添加删除,不熟悉的命令

    一.Linux 根目录下的文件夹说明 usr 程序默认安装路径,相当于windows的 program 附显示当前所处位置:pwd 二.用户 用户添加:useradd 用户名 passwd 用户名 u ...

  6. 更改linux文件夹的默认颜色

    我不知道正常人看Linux下面文件夹的颜色(默认为深蓝)是不是有点晕晕的,看不清楚,反正对我这样的色弱的人来说,我看着很不爽,所以我到网上去找了一下,如果修改文件夹颜色的方法,网上真实众说纷纭,很多都 ...

  7. 如何批量更改linux文件的内容

    在工作当中,我们往往需要修改某个文件夹下面所有文件的内容,例如把里面的日期统一替换成新的日期,或者把某一串字符替换成另外一串字符,这时我们就可以使用sed命令: sed -i "s/olds ...

  8. (转)Linux 文件和目录的属性

    linux 文件属性与权限 原文:https://www.cnblogs.com/kzloser/articles/2673790.html https://www.cnblogs.com/danh/ ...

  9. Linux 文件授权

    Linux用户权限     在Linux操作系统中,root的权限是最高的,相当于windows的administrator,拥有最高权限,能执行任何命令和操作,在Linux系统中,通过UID来区分用 ...

随机推荐

  1. Android 超高仿微信图片选择器 图片该这么载入

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/39943731,本文出自:[张鸿洋的博客] 1.概述 关于手机图片载入器,在当今像 ...

  2. H2 database 应用

    以前对内存表的引用一直采用sqllite,由于sqllite对字段的局限性无法满足需要.后来对h2 有了一定青睐做了下应用.下面对h2进行介绍. 1. H2数据库引擎 H2数据库由Java编写的,它可 ...

  3. 九度OJ 1045:百鸡问题 (基础题)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:8410 解决:3644 题目描述: 用小于等于n元去买100只鸡,大鸡5元/只,小鸡3元/只,还有1/3元每只的一种小鸡,分别记为x只,y只 ...

  4. mooc课程mit 6.00.1x--problem set2解决方法

    PAYING THE MINIMUM 计算每月信用卡最低还款额及剩余应还款额 balance = 4842 #还款额 annualInterestRate = 0.2 #年利息比率 monthlyPa ...

  5. linux c编程:文件的操作

    在Linux系统中,系统是通过inode来获得这个文件的信息.在Linux系统中,inode的信息都是封装在stat这个结构体中.可以通过man 2 stat来查看stat的具体结构.从中可以看到包含 ...

  6. java.lang.UnsupportedClassVersionError: org/openqa/selenium/WebDriver : Unsupported major.minor version 51.0

    周一上班,正常打开myeclipse,随便写了一个main方法执行.发现报错了... 问题提示如下: java.lang.UnsupportedClassVersionError: org/openq ...

  7. sed 和awk结合取ip 地址

    1.打印文件的第一列(域)                 : awk '{print $1}' filename 2.打印文件的前两列(域)                 : awk '{prin ...

  8. ES6 Class基本用法

    JavaScript 语言中,生成实例对象的传统方法是通过构造函数.下面是一个例子. function Point(x, y) { this.x = x; this.y = y; } Point.pr ...

  9. C# winform控件之PictureBox详解

    PictureBox表示用于显示图像的 Windows 图片框控件https://msdn.microsoft.com/zh-cn/library/system.windows.forms.pictu ...

  10. (转)MongoDB和Redis区别

    简介 MongoDB更类似Mysql,支持字段索引.游标操作,其优势在于查询功能比较强大,擅长查询JSON数据,能存储海量数据,但是不支持事务. Mysql在大数据量时效率显著下降,MongoDB更多 ...