博客 / Linux/ Linux 文件与目录权限详解:ls 查看与 chmod 修改

Linux 文件与目录权限详解:ls 查看与 chmod 修改

Linux 文件与目录权限详解:ls 查看与 chmod 修改

查看文件与目录权限

在 Linux 系统中,使用 ls -l 命令可以查看文件的详细信息,包括权限。

查看文件权限

ls -l 文件名

查看目录权限

要查看目录本身的权限(而非其内容),需要使用 -d 选项。

ls -ld 目录名

修改文件与目录权限 (chmod)

chmod 命令用于更改文件或目录的访问权限。其基本语法格式如下:

chmod [选项] 权限模式 文件或目录名

常用选项包括 -R(递归处理,修改目录及其下所有内容)。

权限的数字表示法(八进制)

权限由三位或四位八进制数字表示,分别对应所有者(u)、所属组(g)和其他用户(o)。每位数字是 r(4)、w(2)、x(1) 权限值的和。

  • 常用权限示例:
  • chmod 600 文件:所有者可读可写 (rw-------)。
  • chmod 644 文件:所有者可读可写,组和其他用户只读 (rw-r--r--)。
  • chmod 700 文件:所有者可读可写可执行 (rwx------)。
  • chmod 755 目录:所有者全权限,组和其他用户可读可执行 (rwxr-xr-x),目录常用权限。
  • chmod 777 文件或目录:所有用户拥有全部权限 (rwxrwxrwx),安全性极低,不推荐使用

权限的符号表示法

语法:chmod [用户类别][操作符][权限] 文件或目录名

1. 用户类别 (who)

  • u:文件所有者 (user)
  • g:文件所属组用户 (group)
  • o:其他用户 (others)
  • a:所有用户 (all),是默认值

2. 操作符 (operator)

  • +:添加指定权限
  • -:移除指定权限
  • =:设置指定权限,并移除未提及的权限

3. 权限 (mode)

  • r:读权限
  • w:写权限
  • x:执行权限(对文件)或访问权限(对目录)
  • X:特殊执行权限,仅当目标文件是目录或已有用户可执行时才赋予 x 权限。
  • s:设置用户ID (SUID) 或组ID (SGID)。
  • t:粘滞位 (Sticky Bit),常用于 /tmp 目录。

符号法使用示例

# 给所有用户添加执行权限
chmod a+x script.sh
# 移除组和其他用户的写权限
chmod go-w document.txt
# 设置文件权限为:所有者读写执行,组读执行,其他用户无权限
chmod u=rwx,g=rx,o= file
# 递归给目录及其下所有文件添加组写权限
chmod -R g+w projects/

重要说明与最佳实践

  1. 权限含义差异:对于文件,x 表示可执行;对于目录,x 表示可以进入 (cd) 或访问其中元数据。
  2. 目录的读权限:目录的 r 权限允许列出其内容(如使用 ls),但必须同时拥有 x 权限才能访问目录内文件的具体信息。
  3. 安全建议:遵循最小权限原则。避免随意使用 777666 权限。脚本文件通常需要 755,配置文件通常为 644,私密文件可为 600
  4. sudo 的使用:修改系统文件或不属于当前用户的文件时,通常需要在命令前加 sudo 以获取管理员权限。

发表评论

您的邮箱不会公开。必填项已用 * 标注。