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

本文整理自:

http://blog.163.com/[email protected]/blog/static/128388169201203011157308/

http://ydlmlh.iteye.com/blog/1435157

一、基本知识

在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

[[email protected] home]# touch testfile //由 root 用户创建文件

[[email protected] home]# ls testfile –l

-rw--w--w- 1 root root 0 Jun 7 19:35 testfile //文件的拥有者及拥有者级均为 root

[[email protected] home]# chown yangzongde testfile //修改文件拥有者为 yangzongde

[[email protected] 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

[[email protected] home]# ls testfile -l

-rw--w--w- 1 yangzongde root 0 Jun 7 19:35 testfile //查看文件拥有者为 yangzongde,但组为 root

[[email protected] home]# chgrp yangzongde testfile //修改拥有者组为 yangzongde

[[email protected] home]# ls testfile -l

-rw--w--w- 1 yangzongde yangzongde 0 Jun 7 19:35 testfile

[[email protected] home]# chown root:root testfile // 使用 chown 一次性修改拥有者及组

[[email protected] home]# ls testfile -l

-rw--w--w- 1 root root 0 Jun 7 19:35 testfile

示例4

[[email protected] ~]# chgrp users install.log

[[email protected] ~]# ls -l

-rw-r--r--  1 root users 68495 Jun 25 08:53 install.log

示例5

更改为一个 /etc/group里不存在的用户组

[[email protected] ~]# chgrp testing install.log

chgrp: invalid group name `testing‘ <== 出现错误信息~找不到这个用户组名~

四、chown 函数的使用

在Linux 的C 应用编程中,可以使用 chown 函数来修改文件的拥有者及拥有者组。此函数声明如下:

/usr/include/unistd.h文件中


/* Change the owner and group of FILE. */

externint 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. */

externint 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. */

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

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

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net

原文地址:https://www.cnblogs.com/siwnchh/p/10126205.html

时间: 2024-10-09 14:54:25

如何更改linux文件的拥有者及用户组 chown和chgrp的相关文章

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

.使用chown命令更改文件拥有者 在 shell 中,能够使用chown命令来改变文件全部者.chown命令是change owner(改变拥有者)的缩写.须要要注意的是,用户必须是已经存在系统中的,也就是仅仅能改变为在 /etc/passwd这个文件里有记录的username称才干够. chown命令的用途非常多,还能够顺便直接改动用户组的名称. 此外,假设要连文件夹下的全部子文件夹或文件同一时候更改文件拥有者的话,直接加上 -R的參数就可以. 基本的语法: chown [-R] 账号名称 

linux下修改文件的拥有者和用户组

一.使用chown命令更改文件拥有者 在 shell 中,可以使用chown命令来改变文件所有者.chown命令是change owner(改变拥有者)的缩写.需要要注意的是,用户必须是已经存在系统中的,也就是只能改变为在 /etc/passwd这个文件中有记录的用户名称才可以. chown命令的用途很多,还可以顺便直接修改用户组的名称.此外,如果要连目录下的所有子目录或文件同时更改文件拥有者的话,直接加上 -R的参数即可. 基本语法: chown [-R] 账号名称 文件或目录 chown [

linux更改目录文件的拥有者和拥有组(使用chown实现)

在linux里是可以通过ps 和grep来查询到的.如下图中使用ps aux|grep nginx来查询nginx进程使用什么账户运行的: 可见是使用的www账户运行的.那么对应的网站根目录及其下面的文件目录的拥有者和拥有组都应该是www,只有这样网站访问才会正常. 使用ls –l来查询文件目录的拥有者和拥有组,如下图: 使用chown可以修改权限:chown -R www.www /alidata/www/phpwind/即可将目录/alidata/www/phpwind下的所有文件和目录的拥

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

在工作当中,我们往往需要修改某个文件夹下面所有文件的内容,例如把里面的日期统一替换成新的日期,或者把某一串字符替换成另外一串字符,这时我们就可以使用sed命令: sed -i "s/oldstring/newstring/g" filename,在当前目录下的filename文件中,查找oldstring并且把它替换成newstring. sed -i "s/oldstring/newstring/g" `ls`,这个是修改当前目录下的所有文件,查找oldstrin

Linux文件权限、用户、用户组

linuxsocketgo存储c 单个文件名或目录名长度不超过255字符: 文件或目录的绝对路径长度不超过4096字符: 一.文件所有者与用户组 一个文件有很多属性,包括文件类型.文件权限.文件隐藏权限.文件所有者.用户组.文件大小.创建日期.修改日期.访问日期等,比如下面是/etc/inittab文件的属性: 1.文件类型 (1)d:目录:find / -type d 查询: (2)-:一般文件:find / -type f 查询: (3)l:链接文件:find / -type l 查询: (

Linux文件基本权限

  当我们在家目录下运行ls –l命令,会出现一些特别的信息: 第一个属性代表这个文件是目录.文件或者是连接文件: d:代表是目录 -:代表是文件 l:代表是链接文件 b:代表是设备文件中可以供存储的接口设备 c:代表是设备文件中的串行端口设备,例如键盘等   然后,rwx都是代表目录权限的: r:可以对目录执行ls命令,但是不允许使用-l选项,而且不能cd到目录中:   w:可以在目录中创建文件:   x:可以对目录执行ls –l命令,并且能够cd进去.   第一组[rwx]为所有者的权限(o

修改linux文件权限命令

修改linux文件权限命令:chmod Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者

修改linux文件权限

Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户.其他用户.所有者一般是文件的

修改linux文件权限命令:chmod

修改linux文件权限命令:chmod Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者