Linux文件系统权限与目录配置
文件信息介绍
命令: ls -al
结果: -rw-r–r-- 1 root root 1864 May 4 18:01 xxx.yml
结果解析:
– :文件类型
rw-r–r--: 三个为一组,分别代表owner,group,others的读=4 写=2 执行=1 三种权限,–为没有该权限。
1: 多少文件名加接到inode. 每个文件都有一个Inode.
root: 文件拥有者
root : 所属group
1864 : 文件大小
May 4 18:01:修改时间
文件默认权限
- umask 当前用户在建立文件或目录时的权限默认值。 umask -S
umask也会显示三个数字,例如022,那也是代表owner,group,others三个组对应的读,写,执行的权限。但其意义为,创建文件时,这三组用户分别默认要拿掉的权限。0,代表owner什么权限都不回收,后面两个2代表group,others默认是没有写权限的
修改文件属性与权限
- chgrp 修改文件所属组 chgrp grp filename
- cown 修改文件所有者 user:group filename
- chmod 修改文件权限 chmod xyz filename. xyz分别等于上述三组里每一组rwx权限相加的值。
chmod u/g/o/a +/-/= r/w/x file/dir. a代表全部, -代表移除,+代表添加,=代表覆盖
文件隐藏属性
- lsattr
- chattr
S 同步写入磁盘
A 存取文件时不修改Atime
a 只能增加内容,不能修改
c 自动压缩
d 指定文件不会被dump备份
i 文件不能被删除,修改,设置链接
s 如果文件被删除,则无法恢复
u 如果文件被删除,可以恢复。
文件特殊权限
- SUID s,当s出现在拥有者执行权限x的位置,称为SUID权限。仅对二进制文件有效。执行者需要有x权限,该权限只在执行该程序过程中有效,并且在执行过程中拥有owner权限。
- SGID s,当s出现在组group的x位置,称为SGID权限。在执行过程中获得用户组的权限,可以针对文件或目录。
- SBIT t,只对目录有效。当用户在目录下建立文件时,只有自己和root才有权利删除。
目录操作
- ~ : home
- ~user:指定用户的home
- – 前一个工作目录
- mkdir -p abc/abc/123, 递归创建所有目录
- cp -a,复制文件所有特性,包括权限, -u,有差异时才复制,-d 复制连接文件的属性
- basename filepath. 获取文件名
- dirname filepath,获取目录名
- touch,创建空文件或修改的文件时间信息
- file filename,观察文件类型
- which command
- whereis 文件或目录,在特定目录 下查找, whereis -l,列出查找范围。
- locate keyword,去数据库查找。updatedb,更新数据库
- find path option, -perm,查找文件权限刚好等于xxxx的。{}代表由find找到的内容。-exec xxxxcommad ; 代表查找之外的其它操作命令。
文件内容
- cat 从第一行开始显示文件内容
- tac 从最后一行开始显示
- nl 显示文件内容的同时显示行号
- more/less 一页页显示内容。more: :f 显示文件名以及当前显示行数。 q,退出。 b 向前翻页。space/enter向后翻页。Less,space/up/down, n/N:next string, g/G:数据的第一行或最后一行。
- head/tail 只看前面或后面几行
- od 以二进制的方式读取文件内容
文件系统特性 索引式文件体系统
- 文件属性与权限信息还有数据区块的位置信息会放在indoe,数据放在数据区块中。超级区块记录整个文件系统的整体信息(indode与数据区块的总量,使用量,剩余量)
- inode, 区块都有自己的编号。
- 区块对照表,可以知道哪块区块是空的
- inode 对照表,记录的是使用或未使用的Indoe号码。
一个文件被加载到内存中后,如果没有被修改,则是clean状态,如果 修改过,则标记为dirty,系统会不定时将内存中的dity.
- 查看inode ls -lid 目录1 目录2
- 查看支持的文件系统: ls -l /lib/modules/$(uname -r) /kernel/fs
- 查看已加载的文件系统 cat /proc/filesystems
- VFS来管理这些文件系统
文件系统的操作
- df 列出文件系统整体磁盘的使用量
- du 文件或目录 查看文件系统的磁盘使用量
- blkid 列了设备ID
- 挂载设备 mount UUID="" /xxx/sss 。 -o remount,rw, auto /,重新挂载只读目录
- 挂载文件 mount --bind 目录1 目录2,将目录1挂载到目录2
- umont 设备或持载点
- /etc/fstab,/etc/mtab
- mount -o loop ,挂载iso
文件打包压缩
- tar -c 打包 -x 解压 -t 查看压缩包文件列表 -f filename - C 目录