《鸟哥的linux私房菜 基础篇》第七章读书笔记(中)--常见档案内容查阅命令,chattr,lsattr,SUID,SGID,SBIT,file

档案内容查阅常见命令:

         cat 由第一行开始显示档案内容,没有翻页,直接显示

         tac从最后一行开始显示,是cat的倒写,发向显示

         nl  显示的时候,顺便输出行号,可以对行号的显示方式进行多种变化

         more 一页一页的显示档案内容,“空格键”下一页,“b”上一页。“/字符串”在显示的内容当中,向下搜寻字符串这个关键词;“:f”立刻显示出文件名以及目前显示的行数

         less  与more类似,比more多的功能是,可以利用pagedown, page up按钮来上下翻页,在结束的时候需要输入:q。?字符串:向上搜寻;/字符串:详细搜寻。n重复前一个搜寻;N反向重复前一个搜寻

         head只看头几行“-n number”,默认10行。number为负数时,表示列前的所有行数,但不包括后面的100行,即最后100行不显示

         tail  只看尾巴几行。也有一个-n参数。-f参数表示持续侦测后面所接的档名,要等到按下ctrl_c才结束,所以当有数据向该档案中写入时,就会立刻显示出来。“tail –n +100 file”只列出100行以后的数据

         od以二进制的方式读取档案内容

 

         head–n 20 /etc/man.config | tail –n 10  显示第11到第20行之间的内容

cat (concatenate,使连结)

cat[-AbEnTv]

-A  :相当于-vET的整合选项,可列出一些特殊字符而不是空白而已;

-b  :列出行号,仅针对非空白行做行号显示,空白行不标行号!

-E  :将结尾的断行字符 $ 显示出来; linux的断行字符为$,而windows的断行字符为^M$

-n  :打印出行号,连同空白行也会有行号,与 -b 的选项不同;

-T  :将 [tab] 按键以^I(大写i)显示出来;

-v  :列出一些看不出来的特殊字符

 

nl [-bnw] 档案

-b  :挃定行号挃定癿方式,主要有两种:

     -b a :表示丌讳是否为空行,也同样列出行号(类似 cat -n);

     -b t :如果有空行,空癿那一行丌要列出行号(默讣值);

-n  :列出行号表示癿方法,主要有三种:

     -n ln :行号在屏幕癿最左方显示;

     -n rn :行号在自己字段癿最右方显示,丏丌加 0 ;

     -n rz :行号在自己字段癿最右方显示,丏加 0 ;

-w  :行号字段癿占用癿位数

 

Linux下文件主要的三个变动时间:

modification time (mtime); status time(ctime); access time (atime)

在ls命令使用时添加--time= ctime/atime,ls默认显示的是mtime

 

利用分号可以同时下达几个命令

 

touch [-acdmt] 档案:建立一个空档案;将某个档案日期修订为目前(mtime与atime)

选项不参数:

-a  :仅修订 access time;

-c  :仅修改档案的时间,若该档案不存在则不建立新档案;

-d  :后面可以接欲修订的日期而不用目前的日期,也可以使用 --date="日期或时间"

-m  :仅修改 mtime ;

-t  :后面可以接欲修订的时间而不用目前的时间,格式为[YYMMDDhhmm]

ctime一般不会改变

 

umask 指定目前用户在建立档案或目录时候的权限默认值

#umask 得到数字型态的权限设定分数à四个数字,第一组是特殊权限用的。其他三组分别对应的是u,g,o,它们的数字表示没有权限的那一项。在预设权限上减去这个值,即为建立档案或目录时的权限。

#umask –S (symbolic)以符号类型的方式来显示权限

 

默认权限:档案为666(必须要执行x),目录为777(默认为所有权限均开放)

 

修改建立档案或目录的默认权限值:umask 数值。数值是你想要去掉的那个权限

在计算的时候最好不要直接将数字相减。例如预设为666,默认的为003,相减后为663,多了一个x权限,而原本我们就没有预设这个,所以用符号rwx来计算比较靠谱。

 

chattr [+-=][ASacdistu] 档案或目录名称 :配置文件案隐藏属性

+:增加某一个特殊参数,其他不变

-:移除一个特定参数,其他不变

=:设定一定,且仅有后面接的参数

a:当设定a后,这个档案将智能增加数据,而不能删除数据,只有root才能设定这个属性。

i:使一个档案不能被删除、改名、设定连结,也无法写入或新增资料,对系统安全性有相当大的帮助。只有root能设定此属性。

 

lsattr [-adR] 档案或目录

-a:将隐藏文件的属性页显示出来;

-d:如果接的是目录,仅列出目录本身的属性而非目录内的文件名

-R:连同子目录的数据也一起列出来

 

当s这个标志出现在档案拥有者x权限上时,例如/usr/bin/passwd文档的权限【-rwsr-xr-x】,此时就被称为Set UID,简称SUID的特殊权限。

 

SUID权限仅对二进制程序有效

执行者对于该程序需要具有x的可执行权限

本权限在执行该程序的过程中有效

执行者将具有该程序拥有者的权限

例子见书

 

SUID仅可用在binary program上,而不能够用在shell script里面。Shell script只是将很多的binary执行档呼叫进来而已。则SUID的权限部分,还是要看shell script呼叫进来的程序的设定。SUID对目录也是无效的。

 

当s标志在群组的x时为Set GID,即SGID。它还可以用在目录上。目录具有SGID的特殊权限时,代表用户在这个目录下新建值群组都会与该目录的组名相同。感觉比较深奥,要全部记下来,就见书吧。

 

Sticky Bit, SBIT目前只针对目录有效,对档案已经没有效果了。

当用户甲对A目录具有群组或其他人的身份,并且拥有该目录w的权限,表示甲对该目录内任何人建立的目录或档案均可进行“删除、更名、搬移”等动作。不过,如果将A目录加上SBIT的权限项目时,则甲只能够针对自己建立的档案或目录进行删除、更名、移动等动作,而无法删除他人的档案。

 

数字法SUID/SGID/SBIT权限的设定

4为SUID, 2为SGID,1为SBIT

要将一个档案权限改为-rwsr-xr-x时,由于s在用户权利中,所以是SUID,因此在原先的755之前加上4,即chmod 4755 filename。当我们不具备x权限是,如果再设定的话,就会出现S,T这样的大写。

 

还可以通过符号发来处理:

chmod u=rwxs,go=x test;

chmod g+s,o+t test;   在上面的继承上加上SGID和SBIT

 

file filename命令观察文件类型,如输入ASCII还是data档案,或者binary,且其中有没有使用到动态函式库(share library)等信息。

你可能感兴趣的:(《鸟哥的linux私房菜 基础篇》第七章读书笔记(中)--常见档案内容查阅命令,chattr,lsattr,SUID,SGID,SBIT,file)