本文共 2020 字,大约阅读时间需要 6 分钟。
权限是Linux系统中一个核心概念,决定了用户对系统资源的访问范围。权限可以分为文件所有者、文件所属组和其他用户三种身份,每种身份都有读取(r)、写入(w)、执行(x)三种基本权限。此外,还有一种特殊权限(Set User ID,suid)和组相关的特殊权限(Set Group ID,sgid),这些权限在某些场景下非常有用。
在Linux系统中,每个文件都有三种身份:文件所有者(u)、文件所属组(g)和其他用户(o)。每种身份都有三种基本权限:可读(r)、可写(w)和可执行(x)。权限可以通过命令如chmod
来设置或修改。
chmod
命令是设置文件权限的常用工具。它的基本格式为:
chmod [选项] [用户/组] [权限] [文件/目录]
常用选项包括:
-R
:递归处理,修改指定目录及子目录下的所有文件。-v
:显示详细变更信息。-f
:忽略无法更改的权限错误。-c
:只显示更改成功的操作。权限表示方式有三种:
+
:添加权限。-
:移除权限。=
:设置具体权限。权限字符可以是以下组合:
rwx
:读取、写入、执行。r--r--r--
:444权限,仅所有者可读。---r--r--r--
:600权限,仅所有者可写。rwxrwxrwx
:777权限,所有人都有完全权限。给文件所有身份配置权限:
chmod a=rwx file
取消某个文件的所有权限:
chmod a=-rwx file
指定用户、组或其他身份设置权限:
chmod u=rwx,g=rw,o=- filechmod ug=rwx,o=r file
根据权限数字设定:
修改目录及子目录权限:
chmod -R 755 /tmp
chgrp -R hr /home/test/
chown root filechown :root file
chmod u+s filechmod 4755 file
chmod g+s filechmod 2755 file
chmod o+t /tmpchmod 1755 /tmp
/tmp
。chattr
命令用于设置和修改文件或目录的其他属性。常用的属性包括:
a
:只能追加文件。b
:不更新文件的存取时间。i
:不可修改文件。s
:保密性删除文件。S
:立即更新文件属性。示例:
chattr +a file1
chattr -a file1
chattr -R +a test2/
setfacl -m u:nq:rw file
setfacl -m g:students:r-x file
setfacl -m o::r file
getfacl file
setfacl -x g:sa file
setfacl -x u:nq file
进程掩码(umask)是Linux系统中用于限制文件创建权限的工具。默认值通常为022
,表示创建的文件权限为755
(777 - 022 = 755)。
umask
umask 000umask 0000
示例:
umask 022mkdir test1
umask 000mkdir test
通过合理设置文件和目录的权限,可以有效管理系统资源,保障数据安全。掌握chmod
、chgrp
、chown
、acl
、chattr
等工具,能够更高效地进行权限管理。同时,了解特殊权限和进程掩码,可以更好地优化系统配置。
转载地址:http://mbvp.baihongyu.com/