Linux_档案与目录管理

关于执行文件路径的变量 $PATH 应用:
修改$PATH
PATH=$PATH:/usr/local/java/bin

ls 应用:
[root@www ~]# ls [-aAdfFhilnrRSt] 目录名称
选项与参数:
-a :全部的档案,连同隐藏档,一起列出来
-d :仅列出目录本身,而不是列出目录内的档案数据
-h :将档案容量以较易读的方式(例如 GB, KB 等等)列出来
-i :列出 inode 号码
-r :将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小
-R :连同子目录内容一起列出来,等于该目录下的所有档案都会显示出来
-S :以档案容量大小排序,而不是用档名排序
-t :依时间排序,而不是用档名

ls -lrt 按时间由远到近
显示文件的完整时间格式
ls -l --full-time /root/install.log

[root@www ~]# mkdir [-mp] 目录名称
选项与参数:
-m :配置文件案的权限 直接设定,不需要看预设权限 (umask)
-p :帮助你直接将所需要的目录(包括上层目录)递归建立起来!
[root@www tmp]# mkdir -m 711 test2

查看文档:
cat         由第一行开始显示档案内容
tac     从最后一行开始显示,可以看出tac是cat的倒着写
nl         显示的时候,顺遍输出行号
more     一页一页的显示档案内容
less     不more类似,但是比more更好的是,他可以往前翻页
head     叧看头10行
tail     叧看尾巳10行
od         以二进制的方式读取档案内容

more的使用:
[root@www ~]# more /etc/man.config

空格键 (space)    :代表向下翻一页;
Enter                     :代表向下翻『一行』;
/字符串                 :代表在这个显示的内容当中,向下搜寻『字符串』这个关键词;
:f                             :立刻显示出文件名以及目前显示的行数;
q                             :代表立刻离开 more ,不再显示该档案内容。
b 或 [ctrl]-b     :代表往回翻页,不过这动作只对档案有用,对管线无用

less的使用:
空格键                     :向下翻动一页;
[pagedown]            :向下翻动一页;
[pageup]                 :向上翻动一页;
/字符串                 :向下搜寻『字符串』的功能;
?字符串                 :向上搜寻『字符串』的功能;
n                             :重复前一个搜寻 (与 / 或 ? 有关!)
N                             :反向的重复前一个搜寻 (与 / 或 ? 有关!)
q                             :离开 less 这个程序;

文档三属性:mtime、ctime、atime
修改档案时间或建置新档: touch
modification time (mtime):
当该档案的『内容数据』变更时,就会更新这个时间!内容数据指的是档案的内容,而不是档案的属性或权限喔
status time (ctime):
当该档案的『状态 (status)』改变时,就会更新这个时间,,举例来说,像是权限与属性被更改了,都会更新这个时间
access time (atime):
当『该档案的内容被取用』时,就会更新这个读取时间 (access)

[root@www ~]# touch [-acdmt] 档案
选项与参数:
-a :仅修订 access time
-c :仅修改档案的时间,若该档案不存在则不建立新档案
-d :后面可以接欲修订的日期而不用目前的日期,也可以使用 --date="日莆篁时间
-m :仅修改mtime
-t :后面可以接欲修订的时间而不用目前的时间,格式为[YYMMDDhhmm]


档案隐藏属性: chattr, lsattr
chattr指令只能在Ext2/Ext3的文件系统上面生效
[root@www ~]# chattr [+-=][ASacdistu] 档案或目录名称
选项与参数:
+ :增加某一个特殊参数,其他原本存在参数则不动
- :移除某一个特殊参数,其他原本存在参数则不动
= :设定一定,且仅有后面接的参数

最常用的两个:
a :当设定a之后,这个档案将只能增加数据,而不能删除也不能修改数据,只有root 才能设定这个属性。
i :这个i可就很厉害了!他可以让一个档案『不能被删除、改名、设定连结也无法 写入或新增资料!』对于系统安全性有相当大的帮助!只有root能设定此属性
A :当设定了A这个属性时,若你有存取此档案(或目录)时,他的讵问时间atime 将不会被修改,可避免I/O较慢的机器过度的存取磁盘,这对速度较慢的计算机有帮助
S :一般档案是异步写入磁盘的(原理请参考第五章sync的说明),如果加上S这个属性时,当你进行栏何档案的修改,该更动会『同步』写入磁盘中
c :这个属性设定之后,将会自动的将此档案『压缩』,在读取的时候将会自动解压缩, 但是在储存的时候,将会先进行压缩后再储存(看来对于大档案似乎蛮有用的)
d :当dump程序被执行的时候,设定d属性将可使该档案(或目录)不会被dump备份
s :档案设定了s属性时,如果这个档案被删除,他将会被完全的移除出这个硬盘空间,所以如果误删了,完全无法救回来了
u :与s相反的,当使用u来配置文件档案时,如果该档案被删除了,则数据内容其实还,存在磁盘中,可以使用来救援该档案

[root@www tmp]# touch attrtest
[root@www tmp]# chattr +i attrtest
连 root 也没有办法将这个档案删除
[root@www tmp]# chattr -i attrtest

lsattr (显示档案隐藏属性)
[root@www ~]# lsattr [-adR] 档案或目录
选项与参数:
-a :将隐藏文件的属性也秀出来
-d :如果接的是目录,仅列出目录本身的属性而非目录内的文件名
-R :连同子目录的数据也一并列出来

档案特殊权限: SUID, SGID, SBIT

SUID
『-rwsr-xr-x』,此时就被称为Set UID,简称为SUID的特殊权限
SUID 权限仅对二进制程序(binary program)有效
执行者对于该程序需要具有x的可执行权限
本权限仅在执行该程序的过程中有效(run-time)
执行者将具有该程序拥有者(owner)的权限

SUID的应用:
ll /etc/shadow
-r-------- 1 root root 1839 12-21 22:49 /etc/shadow
意思是这个档案仅有root可读且仅有root可以强制写入而已。
那么尝试普通用户修改自己的密码
一般用户对于/usr/bin/passwd这个程序来说是具有x权限的
一般用户执行passwd的过程中,会暂时获取root的权限来修改shadow文档。
既SUID的作用:临时获的root的权限进行读取和写入等操作。


SGID
当s标志在档案拥有者的x项目为SUID,那s在群组的x时则称为SetGID, SGID
[root@www ~]# ls -l /usr/bin/locate
-rwx--s--x 1 root slocate 23856 Mar 15 2007 /usr/bin/locate
与 SUID 不同的是,SGID 可以针对档案或目录来设定!如果是对档案来说, SGID 有如下的功能:
SGID 对二进制程序有用
程序执行者对于该程序来说,需具备x的权限
执行者在执行的过程中将会获得该程序群组的支持

当一个目录设定了SGID的权限后,它将具有如下的功能:
用户若对于此目录具有 r 与 x 的权限时,该用户能够进入此目录
用户在此目录下的有效群组(effective group)将会变成该目录的群组
用途:若用户在此目录下具有 w 的权限(可以新建档案),则使用者所建立的新档案,该新档案的群组与此目录的群组相同。

Sticky Bit
Sticky Bit, SBIT 目前只针对目录有效,对于档案已经没有效果了
当用户对于此目录具有 w, x 权限,亦即具有写入的权限时
当用户在该目录下建立档案或目录时,仅有自己与root才有权力删除该档案

作用体现:+++====常用++++====
只能够针对自己建立的档案或目录进行删除/更名/移动等动作,而无法删除他人的档案


搜寻的使用======
which   
寻找『执行档』
[root@gcp ~]# which ifconfig
/sbin/ifconfig
which 是根据用户所设定的PATH变量内的目录去搜寻可执行文件的
which 不能查找内建命令,如 cd  用type查看是否是内建命令
whereis
寻找特定档案
[root@www ~]# whereis [-bmsu] 档案或目录名
选项与参数:
-b :只找可执行文件(binary)格式的档案
-m :只找在说明文件manual路径下的档案
-s :只找 source 来源档案
-u :搜寻不在上述三个项目当中的其他特殊档案
查找可执行文件用选项-b就OK了。
whereis -b

locate
[root@www ~]# locate [-ir] keyword
-i :忽略大小写的差异
-r :后面可接正规表示法的显示方式
限制:要先updatedb 才能使用。


find
find 是很强大的搜寻指令,但时间花用的很大。
find 的搜索格式
find 绝对路径(/) -type f/d -mtime +2 -name *txt | xargs rm -rf { } /;

-mtime n :n 为数字,意义为在n天之前的『一天之内』被更动过内容的档案
-mtime +n :列出在n天之前(不含n天本身)被更劢过内容的档案档名
-mtime -n :列出在n天之内(含n天本身)被更劢过内容的档案档名
-newer file :file为一个存在的档案,列出比file还要新的档案档名

将过去系统上面24小时内有更动过内容(mtime)的档案列出
[root@www ~]# find / -mtime 0
寻找/etc底下的档案,如果档案日期比/etc/passwd新就列出
[root@www ~]# find /etc -newer /etc/passwd

2. 与使用者或组名有关的参数:
-uid n             :n为数字,这个数字是用户的账号 ID,亦即UID
-gid n             :n 为数字,这个数字是组名的ID,亦即GID,
-user name     :name 为使用者账号名称
-group name    :name 为组名
-nouser         :寻找档案的拥有者不存在/etc/passwd的人
搜寻 /home 底下属于alice的档案
[root@www ~]# find /home/ -user alice

3、与档案权限及名称有关的参数:
-name filename        :搜寻文件名为filenam的档案
-size [+-]SIZE        :搜寻比SIZE还要大(+)或小(-)的档案。这个SIZE的规格有
c    :代表 byte,
k    :代表 1024bytes
要找比50KB还要大的档案,就是『 -size +50k 』
-type TYPE                 :搜寻档案的类型为TYPE的
类型主要有:一般正规档案(f);装置档案(b, c); 目录(d);连结档(l);socket(s)等
-perm mode                 :搜寻档案权限『刚好等于』mode的档案,例如:0755
-perm +mode             :搜寻档案权限『包含任一mode的权限』 -perm +755 ,    644也会被搜索出来
-perm -mode             :搜寻档案权限『必须要全部囊括mode的权限』的档案  -perm -0744, 0755会被列出来


eg>. 假设系统中有两个账号,分别是alex和arod,这两个人除了自己群组之外还共同支持一个名为project的群组。假设这两个用户需要共同拥有/home/pro_all目录的开发权限,且该目录不让其他人进入查阅。 请问该目录的权限设定应为何?请先以传统权限说明,再以SGID的功能解析。

目标:了解到为何项目开发时,目录最好需要设定SGID的权限

1、创建用户添加群组
[root@feed ~]# groupadd procject
[root@feed ~]# useradd -G procject alex
[root@feed ~]# useradd -G procject arod
[root@feed ~]# id alex
uid=504(alex) gid=505(alex) groups=505(alex),504(procject)
[root@feed ~]# id arod
uid=505(arod) gid=506(arod) groups=506(arod),504(procject)
2、创建项目目录,增加权限
[root@feed ~]# mkdir /home/pro_all
[root@feed ~]# chgrp procject /home/pro_all
[root@feed ~]# chmod 770 /home/pro_all
[root@feed ~]# ll -d /home/pro_all
drwxrwx--- 2 root procject 4096 02-11 15:59 /home/pro_all
3、给项目目录增加SGID的权限
[root@feed ~]# chmod 2770 /home/pro_all/
[root@feed ~]# ll -d /home/pro_all
drwxrws--- 2 root procject 4096 02-11 16:05 /home/pro_all

实现了修改同组用户的文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值