HCRM博客

CentOS系统下如何理解和管理文件权限?

CentOS文件权限管理详解

一、

CentOS系统下如何理解和管理文件权限?-图1
(图片来源网络,侵权删除)

在CentOS中,文件权限决定了哪些用户和组可以访问文件以及可以执行什么样的操作,每个文件或目录都有其访问权限,这些权限决定了谁能访问和如何访问这些文件和目录,本文将详细介绍文件权限的概念、查看和修改文件权限的方法,并通过实例进行说明。

二、文件权限的基本概念

文件类型与权限

在CentOS中,使用ls al命令可以查看文件和目录的详细信息,包括权限、所有者、文件大小和修改日期等,以下是一个示例输出:

[root@centos ~]# ls al
总用量 36
drwx 4 root root 4096 8月  28 17:11 .
drwxrxrx 23 root root 4096 6月  20 10:32 ..
rw 1 root root 5243 8月  30 10:16 .bash_history
rwrr 1 root root 3106 10月 23 2015 .bashrc
drwx 2 root root 4096 6月  17 11:34 .cache
rwrr 1 root root 148  8月  17 10:15 .profile
drwxrxrx  2 root root 4096 7月  6 15:18 .ssh
rw 1 root root 3624 8月  28 17:11 .viminfo

字段说明:

文件类型与权限:第一个字符表示文件类型,接下来的九个字符分为三组,每组三个字符,分别表示用户、用户组和其他用户的权限。

d:目录

CentOS系统下如何理解和管理文件权限?-图2
(图片来源网络,侵权删除)

:普通文件

l:符号链接

b:块设备文件

c:字符设备文件

s:套接字文件

p:命名管道文件

权限字符r(读)、w(写)、x(执行)

文件权限的组成部分

每个文件或目录的权限由十个字符组成:

第一个字符:文件类型

第二到第四个字符:文件所有者的权限

第五到第七个字符:文件所属组的权限

第八到第十个字符:其他用户的权限

对于权限字符串rwxrxr

u(所有者)的权限为rwx,即4 + 2 + 1 = 7

g(用户组)的权限为rx,即4 + 1 = 5

o(其他用户)的权限为r,即4 = 4

两种表示方式

符号表示法

使用字符rwx表示读、写、执行权限,分别代表数值4、2、1,每组权限的表示是累加的,权限rwxrxr表示:

u(所有者)的权限为rwx,即4 + 2 + 1 = 7

g(用户组)的权限为rx,即4 + 1 = 5

o(其他用户)的权限为r,即4 = 4

数字表示法

每组权限用一个三位数表示,分别代表所有者、用户组和其他用户的权限,权限rwxrxr对应的数字表示为754

u(所有者)的权限是7,即rwx = 4 + 2 + 1

g(用户组)的权限是5,即rx = 4 + 1

o(其他用户)的权限是4,即r= 4

三、查看文件权限

使用ls al命令可以查看文件和目录的详细信息,包括权限、所有者、文件大小和修改日期等。

[root@centos ~]# ls al example.txt
rwrr1 root root 148 Aug 17 10:15 example.txt

上述输出表示:

rwrr:文件权限

1:硬链接数

root:文件所有者

root:文件所属组

148:文件大小(字节)

Aug 17 10:15:最后修改时间

example.txt:文件名

四、修改文件权限

使用chmod命令可以修改文件或目录的权限,以下是一些常见的用法和示例:

符号表示法

添加权限

给当前用户添加执行权限:

chmod u+x example.txt

删除权限

移除文件所属组的写权限:

chmod gw example.txt

设置特定权限

设置其他用户只有读权限:

chmod o=r example.txt

数字表示法

将文件权限设置为rwxrxr(754):

chmod 754 example.txt

递归修改权限

递归地将所有用户都设置为读写权限:

chmod R a=rw example_dir/

五、修改文件所有者和所属组

修改文件所有者

使用chown命令可以修改文件的所有者,将文件myfile的所有者更改为newuser

chown newuser myfile

如果需要同时更改所有者和所属组,可以使用冒号分隔:

chown newuser:newgroup myfile

修改文件所属组

使用chgrp命令可以修改文件的所属组,将文件myfile的所属组更改为newgroup

chgrp newgroup myfile

六、特殊权限与粘滞位(Sticky Bit)

SUID和SGID位

使用chmod命令可以设置SUID和SGID位,设置文件的用户ID位(SUID)和组ID位(SGID):

chmod u+s filename    # 设置用户ID位(SUID)
chmod g+s filename    # 设置组ID位(SGID)

这些位通常用于可执行文件,以允许程序在运行时临时提升到文件所有者的权限。

粘滞位(Sticky Bit)

粘滞位通常用于目录,以防止非目录拥有者删除目录中的文件,设置粘滞位:

chmod +t directoryname

这会将目录的权限设置为只能由目录拥有者或文件拥有者删除文件。

七、常见操作示例与FAQs

示例一:创建文件并设置权限

假设我们创建一个文件example.txt并设置它的权限为rwrr,其含义如下:

所有者可以读和写该文件,权限为6(4 + 2)。

用户组可以读该文件,权限为4

其他用户也可以读该文件,权限为4

touch example.txt
chmod 644 example.txt
ls l example.txt

输出:

rwrr1 root root 0 Date Time example.txt

示例二:修改目录权限

假设我们要修改一个名为mydir的目录的权限,使其所有者具有读写执行权限,所属组具有读执行权限,其他用户只有读权限,可以使用以下命令:

chmod 755 mydir
ls ld mydir

输出:

drwxrxrx 2 root root 4096 Date Time mydir

常见问题与解答(FAQs)

Q1: 如何给当前用户添加执行权限?

A1: 使用以下命令给当前用户添加执行权限:

chmod u+x filename

Q2: 如何取消所有用户的写权限?

A2: 使用以下命令取消所有用户的写权限:

chmod aw filename
分享:
扫描分享到社交APP
上一篇
下一篇