- 基本权限:
- 读取(r):允许用户查看文件内容或列出目录内容。
- 写入(w):允许用户修改文件内容、删除或重命名文件、或在目录中创建新文件。
- 执行(x):允许用户将文件作为程序执行,或进入一个目录。
- 特殊权限:
- SUID(Set User ID):当执行具有SUID权限的可执行文件时,进程将以该文件所有者的身份运行。
- SGID(Set Group ID):设置SGID权限的文件或目录会使得用户在该文件或目录中创建的新文件继承相同的组所有权。
- Sticky Bit:应用于目录,仅允许文件所有者或root用户删除或重命名目录中的文件。
- 权限类别:
- 文件所有者(u):文件的创建者默认为所有者,具有对文件的最高权限。
- 所属组(g):与文件所有者关联的用户组成员。
- 其他用户(o):既不是文件所有者,也不属于所属组的用户。
- 权限表示法:
- 使用
ls -l
命令可以查看文件或目录的详细权限信息。 - 权限用三位数字表示,分别对应所有者、所属组和其他用户的权限。
- umask:
umask
用于控制新建文件和目录的默认权限。- 默认情况下,root用户的
umask
为022,普通用户为002。
- 更改文件权限:
- 使用
chmod
命令更改文件或目录的权限。 - 使用
chown
命令更改文件或目录的所有者。
- 文件和目录的默认权限:
- 目录的默认权限通常为755,文件为644。
chown命令用于更改文件或目录的所有者和所属组,而chmod命令用于设置文件或目录的访问权限。以下是这两个命令的详细使用方法:
chown命令:
- 作用:更改文件或目录的所有者和所属组。通常只有系统管理者(如root用户)才有权限使用这个命令,普通用户通常无法更改他人的文件所有者。
- 语法:
chown [选项]... 用户[:组] 文件...
。其中,选项可以包括-R
(递归更改目录及其内容的所有者和所属组)等。 - 举例:
chown root:root /tmp/tmp1
:将文件/tmp/tmp1
的所有者和所属组都改为root。chown -R root:root /tmp/tmp1
:递归地将目录/tmp/tmp1
下的所有文件和子目录的所有者和所属组都改为root。
chmod命令:
- 作用:设置文件或目录的访问权限,包括读取(r)、写入(w)和执行(x)权限。这些权限可以分别针对文件所有者、所属组和其他用户进行设置。
- 语法:
chmod [选项]... 模式 文件...
。模式可以是数字(如755)或符号(如u+x)表示法。 - 举例:
chmod 755 filename
:将文件filename
的权限设置为所有者可读、写、执行(7),所属组可读、执行(5),其他用户可读、执行(5)。chmod u+x filename
:给文件filename
的所有者(u)增加执行权限。chmod -R 644 directory
:递归地将目录directory
及其内部所有文件和子目录的权限设置为所有者可读、写(6),所属组可读(4),其他用户可读(4)。
在使用这些命令时,应当注意以下几点:
- 确保你有足够的权限执行这些命令,特别是chown命令,通常需要root权限。
- 在更改文件或目录的所有者时,要确保新的所有者存在且正确无误。
- 在设置文件权限时,要考虑到安全性和功能性的平衡,避免给予过多的权限导致安全风险。
- 使用
-R
选项时要特别小心,因为它会递归地更改目录及其所有内容的属性。