本文整理自:
一、基本知识
在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. */
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。
相关推荐
chown命令用于更改文件或目录的拥有者。基本语法为:chown [-cfhvR] [--help] [--version] user[:group] file... 其中,user是新的文件拥有者的使用者ID,group是新的文件拥有者的使用者群体(group)。 例如,想要...
在Linux系统中,文件权限是由九个字符组成,分为三个部分:文件拥有者的权限、文件所属组的权限和其他用户的权限。每个部分都有三个字符,分别表示读取、写入和执行权限。例如,drwxr-xr-x的权限可以分解为: * ...
Linux 文件权限管理 Linux 操作系统中,文件权限是系统安全的重要组成部分。...使用 chgrp、chown 和 chmod 命令可以更改文件的用户组、拥有者和权限。正确地使用这些命令可以确保系统的安全性和可靠性。
例如,`chmod 744` 将文件的权限设置为拥有者有读写执行权限,用户组和其他用户只有读权限。 符号方式使用 `u`、`g` 和 `o` 代表拥有者、用户组和其他用户,`+` 和 `-` 代表添加和删除权限。例如,`chmod u+x` 将...
例如,`chgrp -R book /opt/local/book`会递归地将`/opt/local/book`目录及其所有子目录和文件的用户组更改为`book`。 通过以上命令的灵活运用,用户可以精细地控制Linux系统中文件和目录的访问权限,从而增强系统...
项目4 管理用户和用户组 用户和用户组高级管理 改变文件属主及属组 ACL设置 改变文件属主及属组 文件属主:文件所有者,通常是文件或目录的创建者 ...将文件的拥有者修改为wy 查看该文件的权限,分析qc和wy用
- **用户和用户组权限**:`chown`和`chgrp`命令分别用于改变文件的所有者和组。 - **umask**:umask设定默认的文件创建权限,影响新创建文件和目录的权限。 4. **用户身份切换**: - **su命令**:允许用户从当前...
- `chown`/`chgrp`:改变文件或目录的所有者和组。 **用户组(group)管理**的常用命令包括: - `groupadd`:创建新用户组。 - `gpasswd`:添加或删除用户到用户组,或者更改用户组密码。 - `groupdel`:删除用户组。...
* 第三组权限为群组的权限,`r-x` 代表和文件的拥有者属于同一群组的用户,可以读取和执行,但是不能写入。 * 第四组权限为其他非本群组的用户的权限,`r-x` 代表其他人可以读取和执行,但是不能写入。 修改文件...
接下来的三组权限分别对应文件拥有者、所在组群和其他用户: - **可读(r)**:允许用户读取文件内容。 - **可写(w)**:允许用户修改文件内容。 - **可执行(x)**:允许用户执行文件(如果是目录,则允许用户列出该...
- `chmod`命令用于更改文件或目录的权限,例如`chmod 755 file`赋予所有者读写执行权限,用户组和其他用户只读执行权限。 - `chown`和`chgrp`命令分别用于改变文件或目录的所有者和所属组。 6. **默认用户和用户...
`chown`和`chgrp`命令用于更改文件或目录的所有者和所属组。 8. **sudo与root权限**:`sudo`命令允许普通用户以管理员(root)权限运行命令,提高了系统的安全性。`/etc/sudoers`文件定义了哪些用户可以执行哪些...
文件属主是指创建文件的用户,他是文件的拥有者,可以设置用户的读、写和执行权限。同组用户是指与文件属主同一个用户组的用户。UGO 权限管理方式将文件的权限用 3 组 3 位二进制位描述,还在最前面加上一位作为文件...
此外,还需考虑安全性,设置合理的用户和属组,限制对敏感文件的访问,例如,使用chown和chgrp命令调整文件所有权,用chmod和chattr设定额外的文件属性,如隐藏或不可修改。 构建完成后,文件系统会被烧录到NOR ...
- **chmod**:改变文件或目录的权限,如`chmod 755 filename`将设置所有者的权限为rwx,用户组和其他用户的权限为rx。 - **umask**:定义默认的文件创建权限,通常以八进制表示,如`umask 022`将确保新创建的文件...
理解并熟练掌握这些命令和文件属性对于Linux系统的日常管理和安全维护至关重要。正确设置权限能确保用户只能访问他们被授权的数据,防止未经授权的访问和潜在的安全威胁。在实际操作中,应谨慎使用`root`权限,因为...
在Linux系统中,每个文件和目录都被分配了三种用户类别,分别为文件拥有者、同组用户以及其他用户。这三种用户类别拥有不同的权限,通过权限的设置可以有效地控制不同用户对系统中文件和目录的访问。 首先,我们...
- **所有者**:文件的拥有者。 - **所属组**:文件所属的用户组。 - **其他人**:除了所有者和所属组之外的所有其他用户。 ### 三、Linux文件权限表示方法 #### 1. 符号表示法 - 例如,`-rw-r--r--` 表示文件的...
6. **组合使用其他命令**:newgrp常与其他命令如`chmod`(改变文件或目录权限)、`chown`(改变文件所有者)和`chgrp`(改变文件所属组)结合使用,以实现更复杂的权限管理。 在学习这个9页的课件时,你将深入理解...