7.3 文件内容查阅
cat
tac
nl
more
less
head
tail
od
7.3.1 直接查看文件内容
cat (concatenate)
cat - concatenate files and print on the standard output
[-A] 将特殊字符也一并显示 (Tab会以^I的形式显示,断行则是$)
[-n] 打印行号 包括空白行tac
nl
[-b] 同时打印空白行行号
nl 可以作更多的显示设计
7.3.2 可翻页查看
more
Space 下一页
Enter 下一行
/字符串 在此处向下查询
:f 显示文件名以及目前显示的行数
q quit
b 往回翻页less
Space 下一页
PageUp
PageDown
/字符串 向下查询字符串
?字符串 向上查询字符串
n 重复前一个查询
q quit
7.3.3数据选取
head
[-n] 选取前 n 行显示
若n后数字前 带 -
如:-100
则是从后往前数100,其余部分显示tail
[-n] 最后n行显示
[-f] 持续检测文件更新,并显示最后几行 (ctrl c 退出)
7.3.4 非纯文本文:od
用不着 略
7.3.5 修改文件时间或创建新文件:touch
三个时间参数
内容改变时间 modification time mtime
属性改变时间 status time ctime
被读取时改变的时间access time atime
ls 显示的 mtime
[-a] atime
[-c] 不创建文件 --no-create
[-m] mtime
[-d] date
[-t] time YYMMDDhhmm
ll = ls -l
[--time=atime] 后接文件名
ex: touch -d "2 days ago" bashrc
touch -t 0709150202 bashrc
7.4 文件与目录的默认权限与隐藏权限
Review: chmod chown chgrp p#144
chgrp [-R]
用户组名必须在 /etc/group中存在
ex:将install.log的用户组改为users
chgrp users install.logchown [-R]
用户名必须在/etc/passwd中存在
同时改变文件的用户和用户组
chown user:group filechmod [-R]
rwx421
ex:
chmod 755 .bashrc
chmod u=rwx,go=rx .bashrc
chmod a+x .bahrc (a=all)
7.4.1文件默认权限: umask
- umask
[-S] Symbolic 以符号显示默认权限
看后三个,第一个是特殊权限
x对于目录非常重要,如果没有则无法进入该目录
同时也无法执行该目录下的命令
w对于目录而言,则可以让用户删除更改该目录
目录默认 777
文件默认 666
umask 则是该默认值需要减掉的权限
umask
0022
修改umask 直接
umask 0024
使用符号来加减,再转换成数字
7.4.2 文件隐藏属性 chattr lsattr
chattr [+ - =] [ASacdistu]
chattr - change file attributes on a Linux file system
[-a] 只能增加数据,只有root权限才可以设置
[-i] 不能被删除,改名,设置链接也无法被写入或添加数据 只有root权限可以设置
ex: 取消文件的i属性
chattr -i attrtestlsattr
lsattr - list file attributes on a Linux second extended file system
[-a] all 显示隐藏文件的隐藏权限
[-d] List directories like other files, rather than listing their
contents.
[-R] 递归显示
7.4.3 文件的特殊权限:SUID SGID SBIT
-
SetUID
文件owner 的x权限位被 s 占用,此时被称为 SetUID- SUID只对binary有效
- 执行者需要对程序有x权限
- SUID权限只在程序run的时候有效
- 执行者将具有程序所有者的权限
情景:
一般用户vbird使用passwd修改自己只有r权限的/etc/shadow中自己用户密码
SUID权限是passwd这个命令的
vbird对passwd这条命令具有 x 的权限
passwd owner 是 root
vbird 在执行 passwd 时,因为 SUID 权限的存在 ,会暂时获得root的权限
所以,/etc/shadow 可以被vbird执行的passwd修改
Tips:SUID只能用于binary 不用再用shell script上
- Set GID (file or directory)
s在用户组 Group 占据 x 权限位 就是SGID
对于文件用法
- SGID对binary有用
- 需要执行者具备 x 权限
- 执行者在执行过程会得到 用户组的支持
就是原本用户不在这个用户组,但在查看该文件或者目录时,使用用户组的权限
目录用法
- 用户对这个目录拥有r 和x权限,用户可以进入目录
- 用户在此目录的有效用户组 将会变成该目录的用户组
- 若用户在此目录下具有 w 权限 (可以新建文件),则用户所创建的新文件的用户组与此目录用户组相同
StickyBit
只针对目录有效
1.当用户对目录有w和x,就有w的权限
2.当用户在该目录下创建文件或目录时,只有自己和root才可以删除自己创建的文件
3.无法对别人的文件进行修改删除等
SUID4
SGID2
SBIT1
ex
chmod 7666 test
-rwSrwSrwT
666 也就是都没有原本的x权限
大S大T 意为空
chmod u=rwxs,go=x test;ls -l test
7.4.4查看文件类型:file
- file ~./bashrc
可以查看到文件的特殊属性和类型