Linux2.0 文件权限概念


Linux文件权限概念

作为一个初学者,文件的权限与属性是学习Linux相当重要的一环,如果屏幕中出现了【Permission deny】的时候,肯定是权限设置错误。

Linux文件属性

【ls】是一个查看文件的命令

【su -】切换身份为root

登录自己账户系统后,使用【su -】切换身份,执行【ls -al】看看

image-20230920083217640

本章后续的chgrp、chown等命令可能都需要使用root的身份才能够处理,所以建议用root的身份来学习,但是不建议直接用root登录系统,建议使用【su -】来切换身份,离开root则使用exit回到Feliks(自己的账号)即可

ls是list的意思,重点在显示文件的文件名和相关属性,而选项【-al】则表示列出所有的文件详细的权限与属性(包含隐藏文件,就是文件名第一个字符为【.】的文件)

-rw-r–r–. 1 root root 1857 8月 15 11:39 initial-setup-ks.cfg

  • 第一栏-rw-r–r–:文件的类型与权限(permission)

    • 第一个字符代表这个文件是目录、文件或链接文件等:
    • 当为【d】则是目录,例如图里的【.config】文件
    • 当为【-】则是文件,例如图里的【initial- setup- ks.cfg】文件
    • 若是【l】则表示为链接文件(link file)
    • 若是【b】则表示为设备文件里面的 可供存储的周边设备
    • 若是【c】则表示为设备文件里面的串行端口设备,例如键盘、鼠标等
    • 接下来的字符是三个为一组且均为【rwx】的三个参数的组合。
      • 第一组:文件拥有者可具备的权限
      • 第二组:加入此用户组的账号的权限
      • 第三组:非本人且没有加入本用户组的其他账号的权限
      • r:可读(read)
      • w:可写(write)
      • x:可执行(execute)
      • 如果没有权限则是【-】

    例:【-rwxr-xr–】意义?

    [-] :1 [rwx] : 234 [r-x] : 567 [r–] : 890

    1是代表这个文件名为目录或文件

    234是拥有者的权限(可读可写可执行)

    567是同用户组的用户权限(可读可执行)

    890是其他用户权限(可读)

  • 第二栏1:表示有多少文件名链接到此节点(inode)

    • 每个文件都会将他的权限与属性记录到文件系统的inode中,
  • 第三栏root:表示这个文件(或目录)的拥有者账号

  • 第四栏root:表示这个文件的所属用户组

    • 在Linux系统中,一个账号会加入一个或多个用户组中。
  • 第五栏1857:表示这个文件的容量大小,默认单位是Bytes

  • 第六栏:表示这个文件的创建日期或者是最近的修改日期

    • 如果这个文件被修改的时间距离现在太久,那么时间部分会仅显示年份而已
    • 显示完整的时间格式:【ls -l –full-time】
  • 第七栏:表示文件名

文件和目录是不一样的,目录如果没有x权限则不能进入

如何修改文件属性与权限

  • chgrp:修改文件所属用户组

  • chown:修改文件拥有者

  • chmod:修改文件的权限,SUID、SGID、SBIT等特性

修改所属用户组chgrp

change group的缩写

命令:chgrp -R dirname/filename

  • -R:进行递归(recursive)修改,连同子目录下的所有文件、目录都更新成为这个用户组的意思,常常用来修改某一目录内所有的文件的情况

image-20230920105857692

文件的用户组被修改成了users

image-20230920110008058

因为testing组不存在,所以修改用户组失败

修改文件拥有者chown

change owner的缩写

命令:

chown -R 账号名称 文件或目录

chown -R 账号名称:用户组名称 文件或目录

  • -R:进行递归(recursive)修改,连同子目录下的所有文件都修改

image-20230920110753464

文件的拥有者被修改成了bin这个账号

image-20230920110923809

把文件的拥有者和用户组改回root

事实上,chown也可以使用【chown user.group file】,但是有些人喜欢设置账号的时候加小数点,这样会造成系统的误判,所以还是比较建议使用【:】

什么时候使用chgrp、chown?比如要把文件复制给另一个人的时候,会把拥有者和用户组也给复制过去,这时就要用chgrp和chown来修改别人才能修改

修改权限chmod

权限的设置方法有两种:数字或者符号

数字类型修改文件权限

r:4

w:2

x:1

rwx权限=4+2+1=7

例如:【-rwxrwx—】owner=rwx=7 group=rwx=7 others=—=0

所以权限数字就是770

命令:

chmod -R xyz 文件或目录

  • xyz:就是上面的数字类型的权限属性,rwx属性数值相加
  • -R:进行递归(recursive)修改,连同子目录下的所有文件都会修改

image-20230920141837160

符号类型修改文件权限

u:user

g:group

o:other

a:all

+:加入

-:移除

=:设置

命令:

chmod u=rwx,g=rwx,o=rwx [filename]

如果要设置文件【-rwxr-xr-x】

chmod u=rwx,go=rx .bashrc

image-20230920142734622

只想增加某个文件所有人都可以写入的权限:

chmod a+w .bashrc

image-20230920143151195

目录与文件的权限意义

  • 权限对文件的重要性

    • 文件是实际含有数据的地方,包括一般文本文件,数据库文件,二进制可执行文件(binary program)等
    • r(read):可读取此文件的实际内容,如读取文本文件的文字内容等
    • w(write):可以编辑、新增或是修改该文件的内容(但不包含删除文件)
    • x(execute):该文件具有可以被系统执行的权限

    在Linux下,文件是否能被执行,是借由是否具有x这个权限来决定的,和文件名后缀没有绝对的关系

  • 权限对目录的重要性

    • 目录主要的内容在记录文件名列表,文件名与目录有强烈的关联

    • r(read contents in directory):表示具有读取目录结构列表的权限,有该权限代表可以查询该目录下的文件名数据,可以利用ls命令将目录的内容列表展示出来

    • w(modify contents of directory):表示具有改动该目录结构列表的权限

      • 建立新的文件与目录的权限
      • 删除已经存在的文件和目录权限(无论该文件的权限是什么)
      • 将已存在的文件或目录进行更名的权限
      • 移动该目录内的文件、目录位置的权限
    • x(access directory):目录的x权限代表用户是否能进入该目录成为工作目录的用途

      • 工作目录就是当前所在的目录

      • 例:有目录是drwxr--r-- root root这样的权限,系统有个账号为vbird,并不支持root组,那vbird对此目录有何权限?

        答:vbird对此目录仅具有r的权限,因此vbird可以查询此目录下的文件名列表,但是因为没有x权限,所以不能切换到此目录内

Linux文件种类与扩展名

除了前面的一般文件【-】和目录文件【d】之外还有别的种类的文件

  • 文件种类

    • 常规文件
      • 纯文本文件(ASCII):是Linux系统中最多的一种文件类型,可以直接执行【cat ~/ .bashrc】就可以看到文件的内容
      • 二进制文件(binary)
      • 数据文件(data)
    • 目录(directory):第一个属性为【d】
    • 链接文件(link):第一个属性为【l】
    • 设备与设备文件(device)
      • 区块(block)设备文件:第一个属性为【b】,硬盘和软盘就是
      • 字符(character)设备文件:第一个属性为【c】,串行端口的接口设备,硬盘和鼠标就是
    • 数据接口文件(sockets):第一个属性为【s】
    • 数据输送文件(FIFO,pipe):first-in-first-out,管道,第一个属性为【p】
  • Linux文件扩展名:一个Linux文件能否被执行,与他的第一栏是个属性有关,与文件名没有一点关系,只要权限有【x】,则代表这个文件具有可以被执行的能力

    • .sh:脚本或批处理文件
    • .Z .tar .tar.gz .zip .tgz:压缩文件
  • Linux文件名长度限制

    • 单一文件或目录最大容许文件名是255字节

文章作者: Feliks
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Feliks !
评论
  目录