Linux下的文件权限

440 阅读4分钟

文件权限

执行ll命令可以看到相对应文件和文件夹的描述:

image.png

-rw-r--r--表示这个文件的权限,

数字1表示对应的硬链数量,

root表示所属用户,第二个root表示所属组,

0/4096表示对应的文件大小,

8月 4 xx:xx表示文件最后修改事件。1.txt表示文件名。

-rw-r--r--

符号描述
-/d/l开头的-表示这是一个文件,开头的d表示这个是一个目录,l表示这是一个软件链接
rw-表示所有者对于这个文件的权限
r--表示所属组对于这个文件的权限
r--表示其他人对于这个文件的权限
  • r表示该文件有读权限read
  • w表示该文件有写权限write
  • x表示该文件有可执行权限execute

基本权限的修改

chmod [选项] 模式 文件名

比如

  • chmod 000 1.txt表示修改1.txt的权限为不可读不可写不可执行。0表示无权限。7代表权限。

  • chmod u+w 1.txt表示修改1.txt的权限,u表示所属用户,w表示可写权限。u+w表示为当前文件的所属用户增加可写权限。

  • chmod g+r 1.txt表示修改1.txt的权限,g表示所属用户组,r表示可读权限,g+r表示为当前文件的所属组增加可读权限。

  • chmod o+x 1.txt表示修改1.txt的权限,o表示其他用户,x表示存在可执行权限,o+x表示为当前文件的其他用户增加可以执行的权限。

  • 选项

-R表示递归。

  • 模式

[ugoa][+-=][rwx]

使用数字可以批量指定所有者/所属组/其他用户的权限。

  • 权限数字

  • 4表示r可读

  • 2表示w可写

  • 1表示x可执行

  • 0表示无任何权限

数字可以相加代表含义,比如chmod 750 1.txt表示修改了1.txt这个文件,所属当前用户权限为4+2+1存在所有权限,为当前组所属增加1+4可读可执行的权限,设置1.txt其他用户权限为0(无任何权限)

权限的作用

  • 对文件来说最高权限是x,可执行。
  • 对目录来讲最高权限是w,只有读权限没有意义,对目录有了写权限,里边可以做任何事情。

文件权限

权限含义示例(可进行的命令)
r读取文件内容cat more head tail
w编辑、新增、修改文件内容,不能删除文件,除非对目录有写权限vi echo
x表示文件可执行

linux下用./[文件]可以将文件进行执行。或者使用sh [文件名],表示将文件当作执行脚本进行执行(和./是相同的作用)。只要存在权限都可以执行该文件。

需要注意的是./hello是需要文件的x权限的,而sh hello是不需要可执行权限的。

目录权限

权限含义示例
r可以查看目录下的文件名ls
w具有修改目录结构的权限,比如新建,删除和重命名此目录下的文件和目录touch rm mv cp
x表示可以进入目录cd

其他权限命令

chown

修改文件拥有者,从而让该用户拥有该文件的所有权限,7权限。

  • chown [用户名] [文件名] 表示修改文件为该用户所属。
  • 如果想让一个用户拥有7权限,可以把这个文件所有者改成这个用户名
chown 755 folder
chown wang.haoyu folder 修改folder为用户wang.haoyu所属。

chgrp [组名] [文件名] 修改文件为该组下所属,

修改文件所属组权限。

默认权限

umask

  • umask命令表示查看默认权限。

  • 0022 -- 默认权限为0022

    • 第一位0 文件特殊权限
    • 022文件默认权限

image.png

文件权限

  • 默认权限就是文件一创建后就具有的权限。
  • 文件默认不能建立可执行文件,必须手动赋予可执行文件。
  • 文件默认权限最大为666
  • 默认权限需要换算成字母在相减
  • 简历文件以后的默认权限,为666减去umask的值。

比如上图的umask0022,表示当我创建文件的时候默认权限为666-002也就是664,文件所属者具有读写权限,文件所属组具有读写权限,其他用户仅有读权限。

目录权限

  • 目录默认权限为大为777

  • 简历目录之后的默认权限,为777减去umask