鸟哥的Linux私房菜(基础篇)学习笔记--文件权限

寒假没事在家学了学Linux,学完后总感觉有些东西记不住,就写些东西来巩固下知识,互相学习。

关于Linux的安装

推荐一个微信公众号:软件安装管家
里面有各种常用学习软件的安装及安装教程,关键是:免费!

关于远程连接工具shell的安装

https://pan.baidu.com/s/14UU0mIHSjVhHrdw6jvGnDw
提取码:9xrp


下面开始正题,一般我们在Linux用ls -l命令查看文件或目录时,通常会显示如下:在这里插入图片描述
各字段含义如下

  1. 文件权限类型
  2. 链接数
  3. 文件拥有者
  4. 文件所属组
  5. 文件大小
  6. 文件最后修改时间
  7. 文件名

今天主要说一下关于文件权限

权限的类型

文件类型权限主要有十个字符。第一个主要是说明这是个文件(-)、目录(d)还是链接文件(l)。第2到4为文件拥有者权限,5到7为用户组权限,8到10为除文件拥有者和用户组外的其他人的权限(先搞明白前4个)。

r w x - s
可读 可写 可执行 没有权限 SUID/SGID/SBIT
  • 权限对于文件的意义
    r:可以查看该文件的内容,比如查看文本内容
    w:可以修改文件内容(但不是删除文件)
    x: 该文件可被执行
  • 权限对于目录的意义
    r:可以查询该目录下的文件名数据(使用 ls 目录名)
    w:删除或建立文件或目录;更改文件或目录名;移动目录内的文件、目录
    x:可以进入该目录

比如,你想通过cd命令进入某个目录,对目录至少要有x权限,若还想查看目录内的文件或目录,则要有此目录的r权限。查看目录内的文件内容,目录要有x权限,文件要有r权限。若想要修改目录内的文件内容,目录有x权限,文件有r w权限。想要在目录建立文件,则对此目录要有x w权限。注意,这些权限对于root用户来说,均无效。

更改文件权限

  1. chgrp:修改文件所属用户组
chgrp [-R] 要更改到的用户组 文件或目录名 #-R的意思是将此目录下的所有文件和子目录的用户组都进行更改,[]意思是可选
  1. chown:修改文件拥有者
chown [-R] 账号名称 文件或目录名
chown [-R] 账号名称:用户组名称 文件或目录名 #可同时修改用户组(:为英文下的)
  1. chmod:修改文件权限(重要)

数字类型修改:我们用数字来代表各个权限,每种身份是各权限的累加。比如文件拥有者对此文件的权限为rwx,则对应数字权限为4+2+1=7。

r w x
4 2 1
chmod [-R] 三个数字 文件或目录名 #第一个数字代表文件拥有者,第二个为用户组,第三个为其他人

符号类型修改

chmod [ugoa] [+-=] [rwx] 文件或目录名
u g o a + - =
文件拥有者 用户组 其他人 三者都有 加入 移除 设置

比如我要用户组加上x这个权限,则chmod g+x 文件名

SUID SGID SIBT

有些文件权限上可能会出现s,比如/usr/bin/passwd
在这里插入图片描述

  1. SUID 文件拥有者的x权限变成了s(此权限只用于文件,不用于目录)
    只有可执行的二进制程序才能设置该权限,同时执行者对该程序有x权限(比如你是该程序用户组用户,用户组用户有x这个权限),执行者执行该程序过程中具有该程序拥有者的权限(有点像奥特曼变身,变身后权限强大)。

  2. SGID 用户组的x权限变成了s(可分别用于文件和目录)
    对于文件:只有二进制程序才有用,同时执行者对该程序有x权限,执行程序过程中有用户组权限
    对于目录:用户对此目录有r和x权限,用户在此目录下的用户组暂为该目录的用户组,若用户在此目录下有w权限,则所建立的文件用户组均为此目录的用户组。

3.SBIT 其他人的x权限变成了t(只用于目录)
一个目录若有SBIT权限,则一个用户在此目录下建立的文件或目录(该用户对此目录有x和w权限)只有自己和root能够删除。

关于SUID/SGID/SBIT权限的设置

在此前设置权限的三个数字前加一个数字。

SUID SGID SBIT
4 2 1

例如:将某个文件加上SUID权限

chmod 4755 文件名

文件的隐藏属性

只要是两个命令,一个是配置文件隐藏属性的chattr,另一个是查看文件隐藏属性的lsattr。

  1. chattr
chattr [+-=] [ai] 文件或目录名

a:设置a之后,该文件只能增加数据,不能删除也不能修改数据。对于目录而言,则是只能建立和修改文件或子目录,但不能删除。这个权限只有root可设置(可设置你的日志文件,防止其被黑客删除)。
i:设置i之后,该文件不能删除、改名、设置链接也无法写入或新增数据。对于目录则是不允许建立和删除文件,可对文件数据进行修改。只有root可设置(对于系统安全很有用)

2.lsattr

lsattr [-adR] 文件或目录名

a:将隐藏文件的属性也显示出来
d:若查询的是目录,仅显示目录本身的属性
R:连同子目录一并显示

umask

但我们新建一个目录或文件时,系统会给其赋予默认权限,其与umask有关。命令行直接输入umask则可查看umask默认值,一般为0022。若想要修改umask,则在其后面加数字即可。
可能你会奇怪,新建后的文件权限不是0022啊,其实umask的数字指的是该默认值需要减掉的权限。文件的默认权限为0666(文件默认没有执行权限),减掉0022,所以新建文件的权限为0644。同理得目录:0777-0022=0755。

发布了2 篇原创文章 · 获赞 1 · 访问量 51

猜你喜欢

转载自blog.csdn.net/Aaron6013/article/details/104876136
今日推荐