目录
文件系统相关命令 df、dumpe2fs、du
1、df:查看文件系统相关信息
命令格式:
df 【可选项】:查看所有文件系统信息
df 【可选项】文件系统 :查看某个文件系统的相关信息
文件系统可以使用挂载点来表示、也可以用文件设备名
可选项:
-a 显示所有的文件系统信息 (相比较 df 多了一些系统自带的文件系统信息 )
-T 显示文件系统类型
-h 使用习惯单位显示容量
-m 以MB为单位显示容量
-k 以KB为单位显示容量
2、dumpe2fs: 显示ext2、ext3、ext4文件系统的超级快和块组信息
可以查看文件系统的默认块大小、inode大小、ACL权限是否开启以及使用情况等等。
命令格式:
dumpe2fs【 可选项 -bfhixV 】【可选项 -o superblock=superblock 】【 可选项-o blocksize=blocksize】设备文件名
(注意df 命令是用挂载点、而此处是设备文件名)
可选项:
-b : 显示文件系统中保留的损坏块
-o superblock = superblock : 检查文件系统时,使用指定大小的超级块。此选项通常不需要,除非文件系统
向导正在检查严重损坏的文件系统的剩余部分。
-o blocksize = blocksize : 检查文件系统时,指定块大小。此选项通常不需要,除非文件系统向导正在检
查严重损坏的文件系统的剩余部分。
-f : 强制执行
-h :只显示超级块信息,不显示任何块组描述符详细信息
-i :显示从e2image获得的文件系统信息,使用设备作为image文件的路径名
-x :以十六进制显示文件系统信息
-v :显示命令版本信息,并且退出
3、du:统计目录或文件大小(主要是目录)
命令格式: du 【可选项】 目录/文件
可选项: -s :只显示总和、不显示具体文件
-h :使用习惯单位显示容量
挂载命令mount 、 umount及相关文件 /etc/fstab、/etc/mtab、/proc/mounts
1、mount :用于查看挂载文件系统、查看挂载信息、重挂载
命令格式(1): mount 【可选项】 :显示已挂载设备
可选项:
-a: 挂载 /etc/fstab 中定义的所有挂载点
-l :显示全部已挂载信息,等同于mount,没卵用的可选项
-t : 指定显示的已挂载文件系统的类型
命令格式(2):
mount 【可选项】 设备文件名 挂载点 : 挂载文件系统
可选项:
-t: 指定挂载的文件系统的类型 ,一般不需要指定,系统能识别 ,除非是虚拟设备啊啥的
-o:指定挂载的更多特殊选项 ,可以有多个。
例如 -o ro 表示只读,例如 -o remount, ro表示重挂载且设为只读
还可以挂载Windows 共享文件:
在Windows上共享文件时指定一本机用户,便可以使用挂载该用户密码ip到目录中,达到访问共享文件的目的。 注意:此处 -t cifs 可以省略
mount -t cifs -o username=nick,password=Test123456 //10.32.2.30/doc /mnt
话说回来,vm tools 跟winscp他不香吗?
还可以通过挂载构建一块内存磁盘:
mount -t tmpfs -o size=512m tmpfs /mnt
这样,放在/mnt 下的文件就可以被高速访问哦,但是要注意断开数据就没了
另:可以把多个文件系统挂载到同一目录 ,会覆盖,上面的umount之后会显示下面的;
也可以把一个文件系统挂载到多个目录。
2 、umount: 卸载文件系统
命令格式: umount 【可选项】 文件系统
文件系统可以是挂载点、也可以是文件设备名。
可选项:
-a :卸载命令使用挂载点时可用, 卸载挂载目录下的所有文件系统
-h :显示帮助
-n :卸载时不把信息存入 /etc/mtab
-r :若无法成功卸载、则尝试以只读方式重挂载
-t <文件系统类型>:卸载命令使用挂载点时可用,仅卸载指定类型的文件系统
-v :执行时显示详细信息
-V :显示版本信息
注意这个命令不能再挂载点的目录下执行。
3 、
/etc/fstab :
定义某些挂载点,使用命令 mount -a 时会全部挂上
(一般是在系统启动时的脚本中调用,自己最好别用
/etc/mtab、 /proc/mounts :
mount 和 umount 命令会在 /etc/mtab 文件中维护当前挂载的文件系统的列表,这个文件在目前的系统中还是被支持的。但是更好的方式是用链接文件 /proc/mounts 代替 /etc/mtab 文件。
proc是 Linux 内核映射到用户空间的虚拟文件系统,它不和具体的物理设备关联,但它们具有普通文件系统的特征,又更加稳定可靠。
fdisk手动管理分区
(1)在虚拟机断电时添加一个新硬盘;
(2)fdisk -l :查看当前硬盘状态;
会发现,多了一个未分区文件设备。
(3)fdisk 设备名 :查看新硬盘的信息;
(4)按 m ,获取帮助,如下:
其中,
n表示添加一个新分区,
d表示删除一个分区,
l表示显示已有分区文件系统类型,
w表示写入分区,
t表示改变Id,(id时硬盘的唯一标识符)不采用默认的id号表示分区,
p显示系统有哪些分区,
q表示退出等,
(ctrl+退格键才能退格)
按l 试下 、可以看到有很多文件系统类型
(5)按 n ,新建一个分区,然后选择主分区,即 p
(6)如下图、设置分区号为1、大小为2G(也可以以设多少个柱面的方式来设置大小),然后得到一个分区
(7)按 n — e ,建立一个扩展分区,大小为默认,即占据所有剩余空间;
(8)按 n — l,建立一个逻辑分区,大小为默认,即占据所有扩展分区空间;
(9)按 w ,写入硬盘,并输入partprobe命令启动分区表;
(10)需要格式化分区:mkfs -t ext4 /dev/sdb1
以及mkfs -t ext4 /dev/sdb5 ,注意这里不能格式化扩展分区
(11)挂载一下分区,就可以使用了,但是每次重启我们都会看不到sdb1和sdb5分区的内容,因为没有开机自
动挂载,每次都需要我们手动挂载才能看到。
于是,我们可以去修改自动挂载文件 /etc/fstab,
(注意修改要小心,如果改错了可能会导致系统没法启动)
如图、/etc/fstab 共六个字段:
分别为:
- UUID(荐)/设备文件名 :硬盘唯一标识符
- 挂载点
- 文件系统类型
- 挂载参数
- 指定分区是否会被dump备份,0表示不备份,1表示每天备份,2表示不定期备份,备份我们可以看到的是lost+found文件夹
- 指定分区是否会被fsck检测,0表示不检测,其他表示检测,但是有优先级,数字小的比数字大的优先级高,如1比2优先级高
如果想添加某个分区开机自动挂载,在文件中按格式写入,然后mount -a 即可;
假如写错了,就需要使用root用户去修改文件,这时候文件可能会提示无法修改,因为我们挂载根分区时候默认采用只读的。这时就需要重新将根分区以读写的方式 recount ,然后重启电脑即可。
ACL权限管理
区别于只能将用户分为三类为之设置权限的ugo,
ACL可以:
1 、可以针对某个用户来设置权限
2 、可以针对某个用户组来设置权限
3 、子文件/目录继承父目录的权限
4 、设置某个文件 /文件夹的最大有效 acl 权限
ps:acl命令后方所加的文件/目录路径都是绝对路径。
命令(1):
setfacl 【可选项】 文件/目录 :管理ACL权限
可选项:
-m <acl参数 格式:u/g : name : 具体权限> :添加/更新 acl权限 (可增可减
栗子:setfacl -m u:tester:rw file
-R :与-m 配合使用,递归地配置文件/目录下所有子文件/目录的 acl 权限,当然,配置文件的语法没有错 ,但没有意义;
栗子:setfacl -m u:tester:rw -R file
d:<acl参数> : 与-m 配合使用,配置默认文件夹默认 acl权限,只能是文件夹,且之后在此文件夹下新建的文件 /文件夹都会引用此默认值,即继承;
栗子:setfacl -m d:u:tester:rw dir
m:<权限参数> :与-m 配合使用,设置文件 /文件夹的最大有效权限,ps:是在已设置了ACL权限之后对其起作用;
栗子: setfacl -m m:rw file
-x <acl参数> : 删除某个acl权限
栗子:setfacl -x u:tester:rw file
-b :删除某文件/目录的所有acl权限
栗子:setfacl -b file
-k :移除默认的acl权限
栗子:setfacl -k file
–set <acl参数>,<u权限参数>,<g权限参数>,<o权限参数> :重置某文件/目录的ACL权限,不仅要设置ACL参数,还要把ugo也写进去。且当某类用户权限全为空时,必须写上 -,比如下方的o权限:
栗子: setfacl --set u::rw, u:tester2:rwx, g::r, o::- aclfile
命令(2):
getfacl 文件/目录名 :查看某个文件/目录的acl 权限情况
文件特殊权限管理 SetUID 、SGID 、Stick BIT 、chattr 、lsattr
对于设置 SUID 与 SGID 权限,首先两个条件:
(1)进行权限设定的必须是可执行的二进制文件 ;
(2)命令的执行者必须有该文件的 x(执行) 权限。
ps:当执行者没有x 权限时,赋予它 SUID或SGID权限,相应的x权限位会变成S而不是s,代表不可用。
1、SUID:令普通用户在运行该可执行程序时具有与该文件所有者一样的权限 。
设置方式:1 、 chmod 4755 文件的绝对路径名
2、 chmod u+s 文件的绝对路径名
取消方式:1 、 chmod 755 文件的绝对路径名
2、 chmod u-s 文件的绝对路径名
设置完后,该文件的权限位的前三位的 u 的权限位的 x 会变成 s。
所以你现在知道为什么普通用户明明没法修改/etc/passwd ,却可以使用passwd修改密码的原因了吗?
2、SGID:令普通用户在运行该可执行程序时具有与该文件所属组一样的权限。
设置方式:1 、 chmod 2755 文件的绝对路径名
2、 chmod g+s 文件的绝对路径名
取消方式:1 、 chmod 755 文件的绝对路径名
2、 chmod g-s 文件的绝对路径名
设置完后,该文件的权限位的中间三位的 g 的权限位的 x 会变成 s。
3、Sticky BIT:设置对象: 目录 ,有该目录的 w 和 x 权限的普通用户;
作用: 令普通用户只能删除自己建立的文件 ,无法删除其他用户建立的文件 。
设置粘着位 chmod 1777 /tmp/ 或 chmod o+t /tmp/
删除粘着位 chmod 777 /tmp/ 或 chmod o-t /tmp/
设置完后,该文件的权限位的最后三位的 o 的权限位的 x 会变成 t。
4 、 文件系统chattr 权限 :对文件/目录进行某些操作限制,包括root用户
命令格式:chattr 【±=】 【权限选项】 文件/目录
+:增加权限
-:删除权限
=:等于某个权限
权限选项:
i:如果设置对象为文件,表示不允许对该文件进行 增删改,只能查看内容;
若为目录,表示只能查看目录下的文件数据 ,不能删除和新建文件。
a:若对象为文件,表示只能再文件中查看、增加数据,不能删除和修改;
若为目录 ,表示只能在目录中查看、新建、修改文件内容,不能删除。(注:不能改文件名
5 、lsattr :查看文件/目录的 chattr权限信息
命令格式: lsattr 【查看选项】 文件/目录
查看选项:
-a :显示所有文件和目录的 chattr 权限信息
-d :只显示自己的 chattr 权限信息