CentOS文件权限详解
一、文件权限的概念
在Linux系统中,每个文件和目录都有相应的权限设置,这些权限决定了哪些用户或用户组可以对文件进行读取、写入或执行操作,文件权限分为三类:读权限(r)、写权限(w)和执行权限(x),这些权限可以分别设置给文件的所有者、所属组和其他用户。
二、文件权限的组成部分
文件类型与权限
文件类型字符:表示文件的类型,如“”表示普通文件,“d”表示目录,“l”表示符号链接等。
权限字符串:由十个字符组成,第一个字符为文件类型,接下来的九个字符分为三组,每组三个字符,分别表示文件所有者、所属组和其他用户的权限。
权限字符示例
r:读权限
w:写权限
x:执行权限
权限字符串rwxrxr
表示一个普通文件,所有者具有读、写和执行权限,用户组具有读和执行权限,其他用户只有读权限。
数字表示法
每组权限用一个三位数表示,分别代表所有者、用户组和其他用户的权限。
读(r)=4
写(w)=2
执行(x)=1
权限字符串rwxrxr
对应的数字表示为754
:
所有者(u)的权限是rwx
,即4+2+1=7
用户组(g)的权限是rx
,即4+0+1=5
其他用户(o)的权限是r
,即4+0+0=4
三、查看文件权限
使用ls l
命令可以查看文件和目录的详细信息,包括权限、所有者、文件大小和修改日期等。
[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
四、修改文件权限
使用chmod
命令可以修改文件的权限,命令格式如下:
chmod [who][+||=][mode] 文件名
who:操作对象,可以是u
(用户)、g
(组)、o
(其他)或a
(所有)。
+:添加某个权限。
:取消某个权限。
=:赋予给定权限并取消其他所有权限。
mode:所表示的权限可用以下字母的任意组合:r
(可读)、w
(可写)、x
(可执行)。
举例说明
给当前用户添加执行权限:
chmod u+x a.txt
移除文件所属组的写权限:
chmod gw filename
设置其他用户只有读权限:
chmod o=r filename
使用数字表示法设置权限:
chmod 644 filename # 所有者读写,组和其他用户只读
五、特殊权限
SUID(Set User ID)
当文件设置了SUID位时,任何用户执行该文件时,都会以文件所有者的身份运行,这通常用于需要提升权限的操作,设置方法如下:
chmod u+s filename
2. SGID(Set Group ID)
与SUID类似,SGID作用于目录时,任何在该目录下创建的新文件都会继承该目录的组,设置方法如下:
chmod g+s directoryname
Sticky Bit
Sticky Bit通常用于目录,以确保只有文件的所有者或目录的所有者才能删除该目录下的文件,设置方法如下:
chmod +t directoryname
六、更改文件所有者和所属组
修改文件所有者
使用chown
命令可以修改文件的所有者,将文件myfile
的所有者更改为newuser
:
chown newuser myfile
如果需要同时更改所有者和所属组,可以使用冒号分隔:
chown newuser:newgroup myfile
修改文件所属组
使用chgrp
命令可以修改文件的所属组,将文件myfile
的所属组更改为newgroup
:
chgrp newgroup myfile
七、文件默认权限
在Linux中,每个用户都有一个umask值,它决定了新创建文件的默认权限,使用umask
命令可以查看或设置当前用户的umask值。
umask 022
上述命令表示新创建的文件默认权限为755
(即所有者读写执行,组和其他人读写)。
八、ACL访问控制列表(Access Control Lists)
ACL是一种更细粒度的权限控制机制,允许为特定用户或组设置特定的权限,CentOS 7支持ACL,但默认情况下可能未启用,启用方法如下:
mount o remount,acl /mount_point
设置ACL的方法如下:
setfacl m u:username:permissions file setfacl m g:groupname:permissions file setfacl m d:username:permissions directory
查看ACL的方法如下:
getfacl file
九、归纳
通过本文的介绍,读者应该对CentOS中的文件权限管理有了更深入的了解,正确的文件权限设置能够保护系统的安全性,防止未授权访问和数据泄露,在实际使用中,建议根据实际需求合理设置文件权限,并定期检查和更新权限设置,以确保系统的安全性。