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
时间: 2024-10-12 17:06:34

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

Linux下的crontab定时执行任务命令详解

Linux下的crontab定时执行任务命令详解 在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为"crontab",是"cron table"的简写. 一.cron服务 cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业. service crond start    //启动服务 servi

Linux下的crontab定时执行任务命令详解 - 回家的流浪者 - 博客园

Linux下的crontab定时执行任务命令详解 在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间. cron的配置文件称为“crontab”,是“cron table”的简写. 一.cron服务 cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业. service crond start    //启动服务 service crond stop 

BAT批处理之文件与文件夹操作代码(附xcopy命令详解)

批处理中的文件.文件夹操作,xcopy命令的用法. 一,建bat文件自动执行复制,删除命令. 例1:复制cd.dll文件至windows\system32的bat文件内容: copy cd.dll %windir%\system32 例2:卸载windows\system32目录中的cd.dll,即把上面复制的文件删除: del %windir%\system32\cd.dll 例3:删除download文件夹中的文件,例子如下: del C:\DOWNLOAD\*.* 注意,以处的del命令只

Linux下的压缩zip,解压缩unzip命令详解及实例

Linux下的压缩zip,解压缩unzip命令 本人亲自测试总结: linux 安装unzip zip 安装命令:yum install -y unzip zip # unzip yasuo.zip 方法一: 安装命令:yum install -y unzip zip 1. 我想把一个文件abc.txt和一个目录dir1压缩成为yasuo.zip:# zip -r yasuo.zip abc.txt dir12.我下载了一个yasuo.zip文件,想解压缩: # unzip yasuo.zip

linux下find和locate文件查找命令详解

文件查找命令: locate命令特点 1.非实时,模糊匹配,查找是根据全系统文件数据库进行的: 2.updatedb, 手动更新生成文件数据库,默认第天凌晨4点02分更新数据库 3.速度快 find命令特点: 1.实时 2.精确 3.支持众多查找标准 4.搜索指定目录中的所有文件完成查找,但速度慢: 格式: find 查找路径 匹配标准 查找到以后的处理运作 查找路径:默认为当前目录 匹配标准:默认为指定路径下的所有文件 处理运作:默认为显示 匹配标准: -name '文件名':对文件名作精确匹

Linux文件查找命令详解-which whereis find locate

原创BLog,转载请注明出处 http://blog.csdn.net/hello_hwc?viewmode=contents which命令 首先查看man which的说明 which - shows the full path of (shell) commands. 在$PATH目录下查找命令的绝对路径,PATH配置不同,查找的结果也不同 查看系统的PATH [[email protected] testForCsdn]# echo $PATH /usr/kerberos/sbin:/u

find、locate文件查找命令详解

一.locate:根据键值数据库模糊匹配,找路径 1.命令工作模式 (1)模糊查找 依赖于事先构建好的索引库,索引构建过程需要遍历整个根文件系统,占CPU使用资源 (2)无法实施更新 查找的是过去某一时刻更新的数据库文件,查找路径 系统自动更新:一般为每日系统例行性任务完成更新 手动更新数据库:uodatedb (3)查找速度快 通过对创建的索引库的匹配遍历查找文件路径,查询速度哦哒哒增加 2.格式:locate   [OPTION]...  PATTERN- -b:只匹配路径中的基名 -c:统

文件查找命令详解

文件查找: 在文件系统上查找符合条件的文件: (文件查找与我们之前学过的grep是不一样,grep是过滤文本的) 文件查找实现工具:locate,find (locate和find两者间的工作法则,工作模式不太一样,locate的实现机制,locate查找的机制是根据事先构建的索引来完成查找文件查找的 举例:locate  passwd 当我们执行上面的命令时会发现,虽然有文件名中包含了"passwd"但是整个文件名并不是完整的只叫passwd,locate是做模糊匹配的,就算是路径名

Linux下which、whereis、locate命令详解

which 命令 which 命令的作用是,在 PATH 变量指定的路径中搜索可执行文件的所在位置.它一般用来确认系统中是否安装了指定的软件. 命令格式: which 可执行文件名称 常用范例: 例一:确认是否安装了 gcc,可以使用如下命令: which gcc 例二:查看 cd 命令的位置路径,可以使用如下命令: which cd 命令可以是下面四种形式之一: 是一个可执行程序,就像我们所看到的位于目录/usr/bin 中的文件一样. 属于这一类的程序,可以编译成二进制文件,诸如用 C 和