Linux文件与目录管理-2

 

修改文件时间或创建文件

每个文件在Linux 下面都会记录许多的时间参数,其实有三个主要的变动时间。

  • 修改时间
  • 状态时间
  • 读取时间
touch [-acdmt] 文件

-a :仅自定义access time 
-c :仅修改文件的时间,若该文件不存在就创造新的文件
-d :后面可ui接欲自定义的日期而不是目前的日期
-m :仅修改mtime
-t :后面可以接欲自定义的时间不用目前的时间,格式为【YYYYMMDDhhmm]

liangguolong-a@liangguolonga-virtual-machine:/tmp$ touch testtouch
如果文件存在,则3个时间会更新为目前的时间,若文件不存在,则会创建一个空的文件


date; ls -l /tmp/text.text ;ls -l --time=atime /tmp/text.text ; ls -l --time=ctime /tmp/text.text
建立内容的时间  mtime
读取过内容时间 atime
更新状态时间   ctime

liangguolong-a@liangguolonga-virtual-machine:/tmp$ touch -t 201506150202 text.text
  • 建立一个空文件
  • 将某个文件日期自定义为目前mtime和atime

文件与目录的默认权限与隐藏权限

liangguolong-a@liangguolonga-virtual-machine:/tmp$ umask
0002   ---与一般权限有关的后面三个数字
liangguolong-a@liangguolonga-virtual-machine:/tmp$ umask -S
u=rwx,g=rwx,o=rx
  • 若用户建立为文件则默认没有可执行的x权限,只有rw这两个项目,也就是最大为666,默认权限如下:-rw-rw-rw-
  • 若用户建立为目录,则由于x与是否可以进入此目录有关,因此默认若有权限均为开放,即777,默认权限如下:drwxrwxrwx
liangguolong-a@liangguolonga-virtual-machine:/tmp$ touch test1
liangguolong-a@liangguolonga-virtual-machine:/tmp$ mkdir test2
liangguolong-a@liangguolonga-virtual-machine:/tmp$ ls -l -d test*
-rw-rw-r-- 1 liangguolong-a liangguolong-a    0 12月 18 19:31 test1
drwxrwxr-x 2 liangguolong-a liangguolong-a 4096 12月 18 19:31 test2

文件隐藏属性

chattr [+-=] [ASacdistu] 文件或目录名称

+ :增加某一特殊参数,其他原本存在的参数不动
- :删除某一特殊参数,其他原本存在的参数不动
= : 直接设置参数,且仅有后面接的参数
A :当设置A这个属性时,若你在存取此文件或者目录时候,它的存取时间将不会被修改
S :一般文件是非同步写入磁盘的,当进行任何文件的修改时候,该修改会同步写入磁盘
a :当设置a之后,这个文件只能增加数据,而不能删除或者修改,只有root权限才能用此操作
c :这个属性设置之后,会将文件进行压缩,在读取的时候将会自动解压
d :当dump程序被执行的时候,设置d属性可以是目录或文件不被dump备份
i :可以让一个文件不能被删除,该名,设置连接也无法写入或新增数据,只有root权限才能由此操作
s :当文件设置了s属性的时候,如果文件删除就会从磁盘里面直接删除不会复原
u :与s相反,当使用u来配置文件时候,如果该文件被删除了,数据内容则还在磁盘中,可以使用来恢复该文件

liangguolong-a@liangguolonga-virtual-machine:/tmp$ chattr +i test1
chattr: 不允许的操作 设置 test1 的标志时
liangguolong-a@liangguolonga-virtual-machine:/tmp$ su --
密码: 
root@liangguolonga-virtual-machine:/tmp# chattr +i test1
root@liangguolonga-virtual-machine:/tmp# rm test1
rm: 无法删除'test1': 不允许的操作
root@liangguolonga-virtual-machine:/tmp# chattr -i test1
lsattr [-adR] 文件或者目录
-a :将文件的隐藏属性显示出来
-d :如果接的是目录,仅列出目录本身属性而非目录的文件名
-R :连同子目录的数据一起列出来

root@liangguolonga-virtual-machine:/tmp# chattr -aiS test1
root@liangguolonga-virtual-machine:/tmp# lsattr test1
--------------e----- test1
root@liangguolonga-virtual-machine:/tmp# chattr +iS test1
root@liangguolonga-virtual-machine:/tmp# lsattr test1
--S-i---------e----- test1

文件特殊权限:SUID,SGID,SBIT

oot@liangguolonga-virtual-machine:/# ls -ld /tmp ;ls -l /usr/bin/passwd
drwxrwxrwt 21 root root 4096 12月 18 19:59 /tmp
-rwsr-xr-x 1 root root 68208 5月  28  2020 /usr/bin/passwd

set UID

当s这个标志出现在文件拥有者x权限上时候,这时候被称为SUID。SUID功能与限制如下:

  • SUID权限仅对二进制程序有效
  • 执行者对于该程序具有x的可执行权限
  • 本权限仅在执行该程序过程中有效
  • 执行者将具有该程序拥有者的权限

set GID

当s标志在文件拥有者x项为SUID,那么s在用户组的x时被称为set GID

  • SGID对二进制程序有用
  • 程序执行者对于该程序来说,需要具备x权限
  • 执行者在执行的过程中将会获得该程序用户组的支持

GID也能够用在目录中,当一个目录设置SGID的权限后,它将具备如下功能。

  • 用户若对于目录具有r和x的权限时候,该用户能够进入此目录
  • 用户在此目录下的有效用户组,将会变成该目录的用户组
  • 用途:若用户在此目录下具有w的权限,可以新建文件夹,则用户所建立的新文件,该新文件的用户组与此目录的用户组相同 

Sticky Bit

这个Sticky Bit目前只针对目录有效,对于文件已经没有效果了,Bit对于目录的作用是:

  • 当用户对于此目录具有wx权限,则具有写入的权限
  • 当用户在该目录下建立文件或目录时候,仅有自己与root才有权力删除文件
root@liangguolonga-virtual-machine:/tmp# touch test 
root@liangguolonga-virtual-machine:/tmp# chmod 777 test 
root@liangguolonga-virtual-machine:/tmp# exit
exit
liangguolong-a@liangguolonga-virtual-machine:/tmp$ rm test
rm: 无法删除'test': 不允许的操作
liangguolong-a@liangguolonga-virtual-machine:/tmp$ 

如果将A目录加上Sbit的权限选项时,则甲只能够针对自己建立的文件或目录进行删除,更名,移动等操作。而无法删除它人的文件

 

SUID SGID SBIT权限设置

  • 4SUID
  • 2SGID
  • 1SBIT
root@liangguolonga-virtual-machine:/tmp# chmod 4775 test; ls -l test
-rwsrwxr-x 1 root root 0 12月 18 21:46 test
root@liangguolonga-virtual-machine:/tmp# chmod 2775 test; ls -l test
-rwxrwsr-x 1 root root 0 12月 18 21:46 test
root@liangguolonga-virtual-machine:/tmp# chmod 7775 test ;ls -l test
-rwsrwsr-t 1 root root 0 12月 18 21:46 test

观察文件类型:file

想要知道某个文件的基本信息,如是属于ASCll或是数据文件或是二进制文件,且其中有没有使用动态连接库等,就可以利用file这个命令来查看

root@liangguolonga-virtual-machine:/tmp# file /tmp/tes1/tes1
/tmp/tes1/tes1: UTF-8 Unicode text

脚本文件的查找

which 查找执行文件

root@liangguolonga-virtual-machine:/# which -a ls 
/usr/bin/ls
/bin/ls

只会寻找环境变量里面的

这个命令是根据PATH这个环境变量所规范的路径,去查找执行文件的文件名。

whereis 由一些特定的目录中查找

whereis [-bmsu] 文件或目录名

-l :可以列出whereis 会去查询的几个主目录
-b :只找binary二进制文件
-m :只找说明文件manual 路径下的文件
-s :只找source 的源文件
-u :查找不在上述三项目中的其他特殊文件

root@liangguolonga-virtual-machine:/# whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1ssl.gz /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz

locate/upatedb

locate [-it] key word

-i :忽略大小写的差异
-c :不输出文件名,仅计算找到文件的数量
-l :控制输出几行 -l 5
-S :输出 locate 所使用的数据库文件的相关内容,数据库记录的文件目录数量等
-r :后面可接正则的显示方式



root@liangguolonga-virtual-machine:/# updatedb
root@liangguolonga-virtual-machine:/# locate text.text
/home/liangguolong-a/sword/text.text

发行版本不同数据库更新的时间不同,有时候数据库没有更新需要使用updatedb更新
  • updatedb:根据/etc/updatedb.conf设置去查找系统硬盘内的文件,并更新/var/lib/mlocate内的数据库内容
  • locate: 依据/var/lib/mlocate 内的数据库记录,找出用户输入关键词的文件名
find [PATH] [option] [action] 

与时间有关的选项,共有-atime -mtime -mtime
-atime n :n代表为数字,n到前一天的的时间 修改过内容的文件
-mtime +n :列出n天之前不含n本身被修改过的内容文件
-mtime -n :列出n天之内含n本身被修改过的文件
-newer file :file 为一个存在的文件,列出比file还要新的文件
用于辨别新旧文件


root@liangguolonga-virtual-machine:/home/liangguolong-a# find / -mtinme 0

0代表当前时间到24小时之前
与使用者或用户组名称有关的参数

-uid n :n为数字,这个数字是使用者的账号ID ,UID,UID记录在/etc/passwd
-gid n : n为数字,这个数字是用户组的账号ID,GID ,GID 记录在/etc/group
-user name :name为使用者账号名称
-group name :name为用户组的名称
-nouser :查找文件的拥有者在不在/etc/passwd中
-nogroup :查找文件拥有组不存在与/etc/group的文件

liangguolong-a@liangguolonga-virtual-machine:~$ find /home -user liangguolong-a
查找home下面属于liangguolong-a的文件

liangguolong-a@liangguolonga-virtual-machine:~$ find / -nouser
查找系统中不属于任何人的文件,也可以找出不太正常的文件

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值