加入收藏 | 设为首页 | 会员中心 | 我要投稿 百客网 - 百科网 (https://www.baikewang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

Linux 文本处理命令 - mount

发布时间:2023-02-13 13:19:08 所属栏目:Unix 来源:
导读:  mount命令详解:挂载Linux系统外的文件

  Linux所有的硬件设备必须挂载之后才能使用,只不过,有些硬件设备(比如硬盘分区)在每次系统启动时会自动挂载,而有些(比如 U 盘、光盘)则需要手动进行挂载。
  mount命令详解:挂载Linux系统外的文件
 
  Linux所有的硬件设备必须挂载之后才能使用,只不过,有些硬件设备(比如硬盘分区)在每次系统启动时会自动挂载,而有些(比如 U 盘、光盘)则需要手动进行挂载。
 
  通过学习 Linux 文件系统,我们可以对挂载的含义进行引申,挂载指的是将硬件设备的文件系统和 Linux 系统中的文件系统,通过指定目录(作为挂载点)进行关联。而要将文件系统挂载到 Linux 系统上,就需要使用mount 挂载命令。
 
  mount 命令的常用格式有以下几种:
 
  [root@localhost ~]# mount [-l]
 
  单纯使用 mount 命令,会显示出系统中已挂载的设备信息,使用 -l 选项,会额外显示出卷标名称(读者可自行运行,查看输出结果);
 
  [root@localhost ~]# mount -a
 
  -a 选项的含义是自动检查 /etc/fstab 文件中有无疏漏被挂载的设备文件,如果有,则进行自动挂载操作。这里简单介绍一下 /etc/fstab 文件,此文件是自动挂载文件,系统开机时会主动读取 /etc/fstab 这个文件中的内容,根据该文件的配置,系统会自动挂载指定设备。有关自动挂载(修改此文件)的具体介绍unix命令手册,会在后续文章中讲解。
 
  [root@localhost ~]# mount [-t 系统类型] [-L 卷标名] [-o 特殊选项] [-n] 设备文件名 挂载点
 
  各选项的含义分别是:
 
  表 1 mount 命令选项及功能 选项功能
 
  rw/ro
 
  是否对挂载的文件系统拥有读写权限,rw 为默认值,表示拥有读写权限;ro 表示只读权限。
 
  async/sync
 
  此文件系统是否使用同步写入(sync)或异步(async)的内存机制,默认为异步 async。
 
  dev/nodev
 
  是否允许从该文件系统的 block 文件中提取数据,为了保证数据安装,默认是 nodev。
 
  auto/noauto
 
  是否允许此文件系统被以 mount -a 的方式进行自动挂载,默认是 auto。
 
  suid/nosuid
 
  设定文件系统是否拥有 SetUID 和 SetGID 权限,默认是拥有。
 
  exec/noexec
 
  设定在文件系统中是否允许执行可执行文件,默认是允许。
 
  user/nouser
 
  设定此文件系统是否允许让普通用户使用 mount 执行实现挂载,默认是不允许(nouser),仅有 root 可以。
 
  defaults
 
  定义默认值,相当于 rw、suid、dev、exec、auto、nouser、async 这 7 个选项。
 
  remount
 
  重新挂载已挂载的文件系统,一般用于指定修改特殊权限。
 
  【例 1】
 
  [root@localhost ~]# mount
 
  #查看系统中已经挂载的文件系统,注意有虚拟文件系统
 
  /dev/sda3 on / type ext4 (rw) proc on /proc type proc (rw)
 
  sysfe on /sys type sysfs (rw)
 
  devpts on /dev/pts type devpts (rw, gid=5, mode=620)
 
  tmpfs on /dev/shm type tmpfs (rw)
 
  /dev/sda1 on /boot type ext4 (rw)
 
  none on /proc/sys/fe/binfmt_misc type binfmt_misc (rw)
 
  sunrpc on /var/lib/nfe/rpc_pipefs type rpc_pipefs (rw)
 
  【例 2】
 
  修改特殊权限。通过例 1我们查看到,/boot 分区已经被挂载了,而且采用的是 defaults 选项。这里我们重新挂载分区,并采用 noexec 权限禁止执行文件执行,看看会出现什么情况(注意不要用 / 分区做实验,否则系统命令也就不能执行了。
 
  [root@localhost ~]# mount -o remount noexec /boot
 
  #重新挂载 /boot 分区,并使用 noexec 权限
 
  [root@localhost sh]# cd /boot
 
  #写一个 shell 脚本,看是否会运行
 
  [root@localhost boot]#vi hello.sh
 
  #!/bin/bash
 
  echo "hello!!"
 
  [root@localhost boot]# chmod 755 hello.sh
 
  [root@localhost boot]# ./hello.sh
 
  -bash:./hello.sh:权限不够
 
  #虽然赋予了hello.sh执行权限,但是仍然无法执行
 
  [root@localhost boot]# mount -o remount exec /boot
 
  #记得改回来,否则会影响系统启动
 
  对于特殊选项的修改,除非特殊场景下需要,否则不建议大家随意修改,非常容易造成系统出现问题,而且还找不到问题的根源。
 
  【例 3】挂载分区。
 
  [root@localhost ~]# mkdir /mnt/disk1
 
  #建立挂载点目录
 
  [root@localhost ~]# mount /dev/sdb1 /mnt/disk1
 
  #挂载分区
 
  /dev/sdb1 分区还没有被划分。我们在这里只看看挂载分区的方式,非常简单,甚至不需要使用 "-ext4" 命令指定文件系统,因为系统可以自动检测。
 
  可能读者会想,为什么使用 Linux 系统的硬盘分区这么麻烦,而不能像 Windows 系统那样,硬盘安装上就可以使用?
 
  其实,硬盘分区(设备)挂载和卸载(使用 umount 命令)的概念源自 UNIX,UNIX 系统一般是作为服务器使用的,系统安全非常重要,特别是在网络上,最简单有效的方法就是“不使用的硬盘分区(设备)不挂载”,因为没有挂载的硬盘分区是无法访问的,这样系统也就更安全了。
 
  另外,这样也可以减少挂载的硬盘分区数量,相应地,也就可以减少系统维护文件的规模,当然也就减少了系统的开销,即提高了系统的效率。
 

(编辑:百客网 - 百科网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章