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 条评论
登录 后参与评论

相关文章

来自专栏java一日一条

HttpInvoker运作原理

HttpInvoker是常用的Java同构系统之间方法调用实现方案,是众多Spring项目中的一个子项目。顾名思义,它通过HTTP通信即可实现两个Java系统之...

1095
来自专栏Golang语言社区

连接池

连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。 好处 编辑 这种连接“汇集”起来的技术基于这样的一个事实:对于大多数应用程序...

3606
来自专栏企鹅号快讯

Linux系统下常用的数据备份方法

Linux作为网络操作系统,在服务器方面的应用越来越广泛。作为专门的网络服务器,一个重要功能就是对服务器数据进行备份,以确保数据的安全。本文将介绍在Linux系...

2038
来自专栏xiaoheike

Elasticsearch Network Settings

Elasticsearch 缺省情况下是绑定 localhost。对于本地开发服务是足够的(如果你在相同机子上启动多个节点,它还可以形成一个集群),但是你需要配...

1272
来自专栏电光石火

使用Maven创建web项目

使用eclipse插件创建一个web project 首先创建一个Maven的Project如下图 ? 我们勾选上Create a simple ...

23410
来自专栏散尽浮华

nginx反向代理+缓存开启+url重写+负载均衡(带健康探测)的部署记录

在日常运维工作中,运维人员会时常使用到nginx的反向代理,负载均衡以及缓存等功能来优化web服务性能。 废话不多说,下面对测试环境下的nginx反向代理+缓存...

6279
来自专栏张伟博客

ubuntu安装软件和查看已安装软件

1.4K4
来自专栏xingoo, 一个梦想做发明家的程序员

Oozie分布式工作流——Action节点

前篇讲述了下什么是流控制节点,本篇继续来说一下什么是 Action Nodes操作节点。Action节点有一些比较通用的特性: Action节点是远程的 ...

1976
来自专栏积累沉淀

linux目录结构介绍

linux目录结构介绍 ? "/" :Linux文件系统的入口.也是最高一级的目录. "/bin":基本系统所需要的命令,功能和"/usr/bin...

2039
来自专栏小樱的经验随笔

【批处理学习笔记】第一课:什么是批处理

  批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理。目前比较常见的批处理包含两类:DOS批处理和PS批处理。PS批处...

2855

扫码关注云+社区