Linux文件的默认权限与查找命令详解

今天被csdn坑了!昨晚写了一夜的博客,保存到线上草稿了!可是今天打开博客,草稿箱里也找不到,发布的文章中也找不到!作为一家专门研讨技术的网站,居然还会在技术上出现这种问题,这分明就是在打自己的脸啊! 抱怨的话不多说,现在只好重起炉灶、自认倒霉了。为就接着从文件权限管理开始说,等那天有精力了再把消失的那一段内容给补上。

文件/目录的默认权限和隐藏权限

在前面几篇博客中为也已经提过,文件/目录的基本权限有rwx,那么除了这三个基本权限,Linux使用的ext2/ext3文件系统还存在着文件/目录的隐藏权限。隐藏权限可以使用chattr来设置,用lsattr来查看。隐藏权限最重要的特性就是它可以设置让文件主都无法修改,这对于系统安全性来说是至关重要的。

文件的默认权限umask

我们都知道,文件在创建时如果不指定具体的权限,那么系统会给它分配一个默认的权限,这个默认权限就是umask。

//我们可以使用umask命令来查看默认权限
umask
0022

直接输入umask而不带任何参数,我们就会得到0022这四个数字。第一个数字我们先不要管,后面三个数字022就是文件系统的默认权限! 这里有个注意点,022表示文件/目录在默认权限的基础上被剥夺的权限,除此之外,文件和目录的默认权限是不同的,文件的默认权限是rw-rw-rw,目录的默认权限是rwxrwxrwx;因此,当我们创建一个文件,那么文件的默认权限就是:(rw-rw-rw)-(—-w–w-)=(rw-r–r–); 那么目录的默认权限就是:(rwxrwxrwx)-(—-w–w-)=(rwxr-xr-x)。

umask除了上述数字表现形式,还有字符表示形式:

//只要增加参数-S,即可以字符表示
umask -S
u=rwx,g=rx,o=rx
  • 修改umask
umask 002 //这样即可修改umask值

PS:不同的用户身份所对应的默认umask值是不一样的!root的默认umask是022,也就是root下的umask会拿掉较多的权限,这是出于安全性的考虑;普通用户身份默认的饿umask值是002,即保留用户对文件/目录的读/写权。 关于umask的设置可以查看etc/bashrc这个文件,但不要修改这里面的值。

文件的隐藏属性

  • 设置文件的隐藏属性chattr
chattr [+-=] [option] 文件/目录

以下这些参数都是指文件的隐藏属性:

A

设置了A后,当访问文件/目录后,它的atime不会被改变,这可以防止IO慢的机器频繁的访问磁盘,对于速度慢的计算机很有帮助

S

一般文件都是异步写入磁盘的,设置了S之后,文件是同步写入磁盘

a

只能增加数据,不能删除和修改数据,这个参数职能root设置

c

设置这个参数之后,文件会自动压缩,要读的时候自动解压

i

设置它之后,文件无法删除、改名字、设置连接、无法写入数据,对于文件的安全性很有帮助,但只有root才能使用它

s

设置它之后,如果一旦文件被删除,那么它将永久地从硬盘中删除

u

设置它之后,如果文件被删除,其实它还在磁盘中,可以找回该文件

Ps:a和i比较常见,他们都需要root权限。

例1:

//取消文件chai的隐藏属性i
chattr -i /chai

例2:

//给文件chai增加隐藏属性i
chattr +i /chai

PS:常见的隐藏属性是a、i,a只能增加数据,i是啥也不允许干。就像日志文件,它的隐藏属性是a,即只能增加数据,无法修改原有的数据,更不能删除、修改文件名。

  • 显示文件隐藏属性lsattr
lsattr [option] 文件/目录

a

设置它之后,能将隐藏文件的隐藏属性也显示出来

d

它后面必须接目录,表示只显示目录本身的隐藏属性,而不显示目录中文件和目录的隐藏属性

R

后面接目录,连同子目录的隐藏属性都显示出来

查看文件的类型:file

当我们要查看一个文件是由什么类型的数据组成的,例如这个文件是ASCII文件,还是data文件,还是二进制文件,可以使用file命令查看。

输入:file /chai
显示:Ascii、data……

命令与文件的查询

  • 脚本文件的查询 which [-a] 命令的名字 -a:将所有path路径下符合条件的命令都列出来,而不仅仅只列出找到的第一个命令。

例子:

which ipconfig

PS:由于不同用户身份的path是不一样的,所以which得到的结果也是不一样的。

  • 寻找指定文件whereis 一般,我们不使用find进行文件的查找,因为速度很慢,一般用locate和whereis来查找;因为locate和whereis是对数据库进行查询,并没有对硬盘进行查询,所以速度相对较快,而find则是对硬盘进行查询。
whereis [option] 文件/目录

-b:只找二进制文件
-m:只找在说明文件manual中出现的文件
-s:只找源文件source
-u:查找不在上述三个选项中的其他文件

PS:which的一般用户找不到ipconfig指令,因为which只在path中找,而whereis是在整个文件系统中找;虽然一般用户不具备ipconfig的使用权限,但这个文件确实存在于文件系统中,所以whereis能找到。 PS:Linux会将所有的文件记录在一张数据库表中,那么在使用whereis和locate查找文件时是在这张表中查找,有时候由于这张表更新的比较慢,所以可能会查找到已经删除的文件,也有可能找不到最新创建的文件。

  • locate
locate [option] 关键字
-i:忽略关键字大小写
-r:关键字可以用正则表达式代替

locate和whereis一样,都是去查找数据库,而这个数据库一般是一天只更新一次,所以我们找不到文件时使用updatedb命令来更新数据库,这个更新可能要等上几分钟。

  • find
find [PATH] [option] [action]
//PATH表示在哪个目录下寻找
//newer file中file是一个文件,表示寻找比这个文件更新的文件

option+action的第一种取值:
option=mtime/ctime/atime
action=n/+n/-n/newer file
//n是一个数字,若n为4表示:往前推第四到第五天的那一天;若n为+4表示:往前推第五天到很久以前;若n为-4表示往前推第四天到今天。

option与action的第二种取值:
gid/uid = 用户/用户组的id号
user/group 用户/用户组的名字
nouser:寻找在文件etc/passwd中不存在的用户
nogroup:寻找在etc/group中不存在的用户组
//PS:若一个文件从网上下载来,或者etc/passwd下把一个用户删了,这时候才会出现无主的文件,才可能使用到最后两个参数

option与action的第三种取值:
name 文件名:根据文件名查找
size [+-] SIZE:查找比SIZE大/小的文件
type TYPENAME:查找文件类型是TYPE的文件,文件类型有:f(普通文件)\b\c\s\d\l\p

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏finleyMa

SSH 技巧

SSH 是 Linux 下进行远程连接的基本工具。 一般情况下我们可以通过 ssh username@xxx.xxx.xxx.xxx 登录远程服务器,如果要管...

773
来自专栏青枫的专栏

linux中mv命令使用详解

mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。

470
来自专栏吴伟祥

Linux的五个查找命令

如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。

901
来自专栏Java帮帮-微信公众号-技术文章全总结

操作Linux这些命令够用了

操作Linux这些命令够用了 玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因...

3926
来自专栏Linux驱动

arm裸板驱动总结(makefile+lds链接脚本+裸板调试)

在裸板2440中,当我们使用nand启动时,2440会自动将前4k字节复制到内部sram中,如下图所示: ? 然而此时的SDRAM、nandflash的控制时序...

2369
来自专栏JAVA高级架构

Maven打包的三种方式

942
来自专栏青枫的专栏

linux下vi编辑某文件时,操作出现 错误提示: E325: ATTENTION 2, Found a swap file by the name ".p1.c.swp"

root@iZ2zeeailqvwws5dcuivdbZ:~/1/01/指针# vi p1.c

571
来自专栏惨绿少年

练习题二下

1.1 第8题 linux 系统运行级别一般为 0-6,请分别写出每个级别的含义。 1.1.1 运行级别的含义 0 关机 1 单用户模式 2 多用户模式 没有...

1850
来自专栏北京马哥教育

看了还想看—普通权限及umask

权限在操作系统是尤为重要的,无论是windows和linux中,都少不了权限这么一说,权限的大小决定了你能操作些什么,在linux中,权限对目录和文件的意义是不...

3507
来自专栏北京马哥教育

理解Inode

inode是什么 理解inode,要从文件储存说起。 文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5...

2695

扫码关注云+社区