SAMBA文件共享服务
在讲解FTP文件传输服务确实可以让主机之间的文件传输变得简单方便,但是FTP协议的本质是传输文件,而非共享文件,因此要想通过客户端直接在服务器上修改文件内容还是一件比较麻烦的事情。
首先需要先通过软件仓库来安装Samba服务程序(Samba服务程序的名字也恰巧是软件包的名字),顺手再安装一个samba-client软件包,这是用于一会测试共享目录的客户端程序
[root@linuxprobe ~]# dnf install samba samba-client
安装完毕后打开Samba服务程序的主配置文件,好在参数并不多,只有37行。其中第17至22行代表共享该登录用户的家目录内容,虽然某些情况下可以更方便的共享文件,但这个默认操作着实有些危险,建议删除掉不要共享;而24-29行是用SMB协议共享本地的打印机设备,方便局域网内的用户可以远程使用,当前我们没有打印机设备,因此也删除掉不共享;最后的31至37行依然为共享打印机设备的参数,同样建议予以删除。
[root@linuxprobe ~]# vim /etc/samba/smb.conf 1 # See smb.conf.example for a more detailed config file or 2 # read the smb.conf manpage. 3 # Run 'testparm' to verify the config is correct after 4 # you modified it. 5 6 [global] 7 workgroup = SAMBA 8 security = user 9 10 passdb backend = tdbsam 11 12 printing = cups 13 printcap name = cups 14 load printers = yes 15 cups options = raw 16 #以下全部删除 17 [homes] 18 comment = Home Directories 19 valid users = %S, %D%w%S 20 browseable = No 21 read only = No 22 inherit acls = Yes 23 24 [printers] 25 comment = All Printers 26 path = /var/tmp 27 printable = Yes 28 create mask = 0600 29 browseable = No 30 31 [print$] 32 comment = Printer Drivers 33 path = /var/lib/samba/drivers 34 write list = @printadmin root 35 force group = @printadmin 36 create mask = 0664 37 directory mask = 0775
对着Samba服务的主配置文件一顿删减操作,最后的有效配置参数只剩下了8行。所剩不多的参数中,我们还能继续删除不需要的参数,例如5-8行参数中所提到的cups全称叫做Common UNIX Printing System,中文名叫通用UNIX打印系统服务,依然是用于打印机或打印服务器的,继续予以删除。
[root@linuxprobe ~]# cat /etc/samba/smb.conf 1 [global] 2 workgroup = SAMBA 3 security = user 4 passdb backend = tdbsam 5#以下删除 6 printing = cups 7 printcap name = cups 8 load printers = yes 8 cups options = raw
注意:删除掉不需要的代码是常规操作,能够让服务程序“轻装前进”,关闭非必要功能,实现更好的性能,把硬件资源用到刀刃上。其次还能让运维人员更好的找到所需的代码,对比一百行代码来讲,从十行代码中找到一个参数要容易很多。
参数 | 作用 |
---|---|
[global] | 全局参数 |
workaroup = SAMBA | 工作组名称 |
security = user | 安全验证的方式,总共有4种) |
passdb backend = tdbsam | 定义用户后台的类型,总共有3种 |
printing = cups | 打印服务协议 |
printcap name = cups | 打印服务名称 |
load printers = yes | 是否加载打印机 |
cups options = raw | 打印机的选项 |
[homes] | 共享名称 |
comment = Home Directories | 描述信息 |
valid users= %S,%D%w%S | 可用账户 |
browseable=No | 指定共享信息是否在”网上邻居“中可见 |
read only = No | 是否只读 |
inherit acls = Yes | 是否继承访问控制列表 |
[printers] | 共享名称 |
comment = All Printers | 描述信息 |
path = /var/tmp | 共享路径 |
printable = Yes | 是否可打印 |
create mask = 0600 | 文件权限 |
browseable = No | 指定共享信息是否在"网上邻居"中可见 |
[print$] | 共享名称 |
comment = Printer Drivers | 描述信息 |
path=/var/lib/samba/drivers | 共享路径 |
write list= @printadmin root | 可写入文件的用户列表 |
force group = @printadmin | 用户组列表 |
create mask = 0664 | 文件权限 |
directory mask = 0775 | 目录权限 |
1.#share:来访主机无需验证密码口令;比较方便,但安全性较差
2.#user:需验证来访主机提供的口令后才可以访问;提高了安全性
3.#server:使用独立的远程主机验证来访主机提供的口令(集中管理账户)
4.#domain:使用域控制器进行身份验证
1.#smbpasswd:使用smbpasswd命令为系统用户设置Samba服务程序的密码
2.#tdbsam:创建数据库文件并使用pdbedit命令建立Samba服务程序的用户
3.#ldapsam:基于LDAP服务进行账户验证
全局配置参数用于设置整体的资源共享环境,对里面的每一个独立的共享资源都有效。区域配置参数则用于设置单独的共享资源,且仅对该资源有效。创建共享资源的方法很简单,只要将表中的参数写入到Samba服务程序的主配置文件中,然后重启该服务即可。
参数 | 作用 |
---|---|
[database] | 共享名称为database |
comment = Do not arbitrarily modify the database file | 警告用户不要随意修改数据库 |
path = /home/database | 共享目录为/home/database |
public = no | 关闭”所有人可见“ |
writable = yes | 允许写入操作 |
创建用于访问共享资源的账户信息。在RHEL 8系统中,Samba服务程序默认使用的是用户口令认证模式(user)。这种认证模式可以确保仅让有密码且受信任的用户访问共享资源,而且验证过程也十分简单。不过,只有建立账户信息数据库之后,才能使用用户口令认证模式。另外,Samba服务程序的数据库要求账户必须在当前系统中已经存在,否则日后创建文件时将导致文件的权限属性混乱不堪,由此引发错误。
pdbedit命令用于管理samba服务程序的账户信息数据库,格式为“pdbedit [选项] 账户”。在第一次把账户信息写入到数据库时需要使用-a参数,以后在执行修改密码、删除账户等操作时就不再需要该参数了。
参数 | 作用 |
---|---|
-a 用户名 | 建立Samba用户 |
-x 用户名 | 删除Samba用户 |
-L | 列出用户列表 |
-Lv | 列出用户详细信息的列表 |
[root@linuxprobe ~]# id linuxprobeuid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe)[root@linuxprobe ~]# pdbedit -a -u linuxprobenew password:此处输入该账户在Samba服务数据库中的密码 retype new password:再次输入密码进行确认 Unix username: linuxprobe NT username: Account Flags: [U ]User SID: S-1-5-21-650031181-3622628401-3290108334-1000 Primary Group SID: S-1-5-21-650031181-3622628401-3290108334-513 Full Name: linuxprobe Home Directory: \\linuxprobe\linuxprobe HomeDir Drive: Logon Script: Profile Path: \\linuxprobe\linuxprobe\profile Domain: LINUXPROBE Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: Wed, 06 Feb 2036 23:06:39 CST Kickoff time: Wed, 06 Feb 2036 23:06:39 CST Password last set: Fri, 05 Mar 2021 18:52:35 CST Password can change: Fri, 05 Mar 2021 18:52:35 CST Password must change: never Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
创建用于共享资源的文件目录。在创建时,不仅要考虑到文件读写权限的问题,而且由于/home目录是系统中普通用户的家目录,因此还需要考虑应用于该目录的SELinux安全上下文所带来的限制。在samba的帮助手册中告诉用户正确的文件上下文值应该是samba_share_t,所以只需要修改完毕后执行restorecon命令,就能让应用于目录的新SELinux安全上下文立即生效。
[root@linuxprobe ~]# mkdir /home/database[root@linuxprobe ~]# chown -Rf linuxprobe:linuxprobe /home/database[root@linuxprobe ~]# semanage fcontext -a -t samba_share_t /home/database[root@linuxprobe ~]# restorecon -Rv /home/databaseRelabeled /home/database from unconfined_u:object_r:user_home_dir_t:s0 to unconfined_u:object_r:samba_share_t:s0
设置SELinux服务与策略,使其允许通过Samba服务程序访问普通用户家目录。执行getsebool命令,筛选出所有与Samba服务程序相关的SELinux域策略,根据策略的名称(和经验)选择出正确的策略条目进行开启即可
[root@linuxprobe ~]# getsebool -a | grep sambasamba_create_home_dirs --> off samba_domain_controller --> off samba_enable_home_dirs --> off samba_export_all_ro --> off samba_export_all_rw --> off samba_load_libgfapi --> off samba_portmapper --> off samba_run_unconfined --> off samba_share_fusefs --> off samba_share_nfs --> off sanlock_use_samba --> off tmpreaper_use_samba --> off use_samba_home_dirs --> off virt_use_samba --> off[root@linuxprobe ~]# setsebool -P samba_enable_home_dirs on
在Samba服务程序的主配置文件中,根据表所提到的格式写入共享信息。
[root@linuxprobe ~]# vim /etc/samba/smb.conf [global] workgroup = SAMBA security = user passdb backend = tdbsam[database] comment = Do not arbitrarily modify the database file path = /home/database public = no writable = yes
Samba服务程序的配置工作基本完毕。Samba服务程序在Linux系统中的名字为smb,所以重启并加入到启动项中,保证在重启服务器后依然能够为用户持续提供服务。
[root@linuxprobe ~]# systemctl restart smb [root@linuxprobe ~]# systemctl enable smb Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.
避免防火墙会限制用户访问,因此决定将iptables防火墙清空,再把samba服务添加到firewalld防火墙中,确保万无一失。
[root@linuxprobe ~]# iptables -F[root@linuxprobe ~]# iptables-save [root@linuxprobe ~]# firewall-cmd --zone=public --permanent --add-service=sambasuccess[root@linuxprobe ~]# firewall-cmd --reloadsuccess
在服务器本地检查samba服务是否启动可以用“systemctl status smb”进行查看,而如果想进一步看samba服务都共享出去了哪些共享目录,则可以用smbclient命令来查看共享详情,-U参数指定了用户名称,建议一会用哪位用户进行挂载,就用哪位用户身份进行查看;-L参数列举共享清单。
[root@linxuprobe ~]# smbclient -U huawei -L localhostEnter SAMBA\huawei's password: Sharename Type Comment --------- ---- ------- database Disk Do not arbitrarily modify the database file IPC$ IPC IPC Service (Samba 4.9.1)Reconnecting with SMB1 for workgroup listing. Server Comment --------- ------- Workgroup Master --------- -------
无论Samba共享服务是部署Windows系统上还是部署在Linux系统上,通过Windows系统进行访问时,其步骤和方法都是一样的。下面假设Samba共享服务部署在Linux系统上,并通过Windows系统来访问Samba服务。
要在Windows系统中访问共享资源,只需要点击开始按钮后输入两个反斜杠,然后再加服务器的IP地址即可
在RHEL 8系统中,Samba服务程序使用的是独立的账户信息数据库。所以,即便在Linux系统中有一个huawei账户,Samba服务程序使用的账户信息数据库中也有一个同名的huawei账户,大家也一定要弄清楚它们各自所对应的密码。
Samba服务程序还可以实现Linux系统之间的文件共享。按照要求来设置Samba服务程序所在主机(即Samba共享服务器)和Linux客户端使用的IP地址,然后在客户端安装支持文件共享服务的软件包(cifs-utils)。
[root@linuxprobe ~]# dnf install cifs-utils
安装好软件包后,在Linux客户端上创建一个用于挂载Samba服务共享资源的目录,可以与服务器上的共享名称同名,这样便于日后查找。mount命令的-t参数指定协议类型,-o参数指定用户命和密码,最后追加上服务器IP地址和共享名称和本地挂载目录即可。服务器IP地址后面的共享名称指的是配置文件中[database]的值,而不是服务器本地挂载的目录名称,虽然这两个值可能一样,但读者们应该认出它们的区别。
[root@rhel7_2 ~]# mkdir /database[root@rhel7_2 ~]# mount -t cifs -o username=huawei,password=123 //192.168.44.128/database /database/[root@rhel7_2 ~]# df -Th文件系统 类型 容量 已用 可用 已用% 挂载点/dev/mapper/rhel-root xfs 18G 3.0G 15G 17% /devtmpfs devtmpfs 985M 0 985M 0% /dev tmpfs tmpfs 994M 80K 994M 1% /dev/shm tmpfs tmpfs 994M 8.9M 986M 1% /run tmpfs tmpfs 994M 0 994M 0% /sys/fs/cgroup/dev/sda1 xfs 497M 119M 379M 24% /boot/dev/sr0 iso9660 3.5G 3.5G 0 100% /media/cdrom//192.168.44.128/database cifs 17G 12G 6.0G 66% /database
如果说每次重启电脑后都需要再手动的mount挂载一下远程共享目录,是不是觉得很麻烦呢?其实我们可以按照Samba服务的用户名、密码、共享域的顺序将相关信息写入到一个认证文件中,然后让/etc/fstab文件和系统自动的加载它。为了保证不被其他人随意看到,最后把这个认证文件的权限修改为仅root管理员才能够读写:
[root@linuxprobe ~]# vim auth.smbusername=linuxprobe password=redhat domain=MYGROUP[root@linuxprobe ~]# chmod 600 auth.smb
挂载信息写入到/etc/fstab文件中,以确保共享挂载信息在服务器重启后依然生效
[root@linuxprobe ~]# vim /etc/fstab## /etc/fstab# Created by anaconda on Thu Feb 25 10:42:11 2021## Accessible filesystems, by reference, are maintained under '/dev/disk/'.# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.## After editing this file, run 'systemctl daemon-reload' to update systemd# units generated from this file.#/dev/mapper/rhel-root / xfs defaults 0 0 UUID=37d0bdc6-d70d-4cc0-b356-51195ad90369 /boot xfs defaults 1 0/dev/mapper/rhel-swap swap swap defaults 0 0/dev/cdrom /media/cdrom iso9660 defaults 0 0 //192.168.10.10/database /database cifs credentials=/root/auth.smb 0 0[root@linuxprobe ~]# mount -a
NFS网络文件服务器
如果读者们觉得Samba服务程序的配置太麻烦,而且恰巧需要共享文件的主机都是Linux系统,非常推荐大家在客户端部署NFS服务来共享文件。NFS网络文件系统服务可以将远程Linux系统上的文件共享资源挂载到本地主机的目录上,从而使得本地主机(Linux客户端)基于TCP/IP协议,像使用本地主机上的资源那样读写远程Linux系统上的共享文件。
由于RHEL 8系统中默认已经安装了NFS服务,外加NFS服务的配置步骤也很简单;接下来,准备配置NFS服务。首先请使用软件仓库检查自己的RHEL 8系统中是否已经安装了NFS软件包
[root@linuxprobe ~]# dnf install nfs-utilsUpdating Subscription Management repositories.Unable to read consumer identity This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.Last metadata expiration check: 0:00:12 ago on Sat 06 Mar 2021 04:48:38 AM CST.Package nfs-utils-1:2.3.3-14.el8.x86_64 is already installed.Dependencies resolved.Nothing to do.Complete!
为了检验NFS服务配置的效果,我们需要使用两台Linux主机(一台充当NFS服务器,一台充当NFS客户端)
不要忘记配置好防火墙,以免默认的防火墙策略禁止正常的NFS共享服务
[root@linuxprobe ~]# iptables -F[root@linuxprobe ~]# iptables-save[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-service=nfssuccess[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-service=rpc-bindsuccess[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-service=mountdsuccess[root@linuxprobe ~]# firewall-cmd --reloadsuccess
在NFS服务器上建立用于NFS文件共享的目录,并设置足够的权限确保其他人也有写入权限。
[root@linuxprobe ~]# mkdir /nfsfile[root@linuxprobe ~]# chmod -R 777 /nfsfile[root@linuxprobe ~]# echo "welcome to linuxprobe.com" > /nfsfile/readme
NFS服务程序的配置文件为/etc/exports,默认情况下里面没有任何内容。我们可以按照“共享目录的路径 允许访问的NFS客户端(共享权限参数)”的格式,定义要共享的目录与相应的权限。
例如,如果想要把/nfsfile目录共享给192.168.10.0/24网段内的所有主机,让这些主机都拥有读写权限,在将数据写入到NFS服务器的硬盘中后才会结束操作,最大限度保证数据不丢失,以及把来访客户端root管理员映射为本地的匿名用户等,则可以按照下面命令中的格式,将表中的参数写到NFS服务程序的配置文件中。
参数 | 作用 |
---|---|
ro | 读写 |
rw | 只读 |
root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户 |
no_root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员 |
all_squash | 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户 |
sync | 同时将数据写入到内存与硬盘中,保证不丢失数据 |
async | 优先将数据保存到内存,然后再写入硬盘;这样效率很高,但可能会丢失数据 |
[root@linuxprobe ~]# vim /etc/exports/nfsfile 192.168.10.*(rw,sync,root_squash)
在NFS服务的配置文件中巧用通配符能够实现很多便捷功能,就比如匹配IP地址就有三种方法——第一种是直接写*号,代表任何主机都可以访问;第二种则是实验中采用的192.168.10.*通配格式,代表来自192.168.10.0/24网段的主机;第三种则是直接写对方的IP地址,如192.168.10.20,代表仅允许某个主机进行访问。
启动和启用NFS服务程序。由于在使用NFS服务进行文件共享之前,需要使用RPC(Remote Procedure Call,远程过程调用)服务将NFS服务器的IP地址和端口号等信息发送给客户端。因此,在启动NFS服务之前,还需要顺带重启并启用rpcbind服务程序,并将这两个服务一并加入开机启动项中。
[root@linuxprobe ~]# systemctl restart rpcbind[root@linuxprobe ~]# systemctl enable rpcbind[root@linuxprobe ~]# systemctl start nfs-server[root@linuxprobe ~]# systemctl enable nfs-serverCreated symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /usr/lib/systemd/system/nfs-server.service.
NFS客户端的配置步骤也十分简单。先使用showmount命令查询NFS服务器的远程共享信息,必要的参数见表,其输出格式为“共享的目录名称 允许使用客户端地址”。
参数 | 作用 |
---|---|
-e | 显示NFS服务器的共享列表 |
-a | 显示本机挂载的文件资源的情况NFS资源的情况 |
-v | 显示版本号 |
[root@linuxprobe ~]# showmount -e 192.168.10.10Export list for 192.168.10.10:/nfsfile 192.168.10.*
然后在NFS客户端创建一个挂载目录。使用mount命令并结合-t参数,指定要挂载的文件系统的类型,并在命令后面写上服务器的IP地址、服务器上的共享目录以及要挂载到本地系统(即客户端)的目录。
[root@linuxprobe ~]# mkdir /nfsfile[root@linuxprobe ~]# mount -t nfs 192.168.10.10:/nfsfile /nfsfile[root@linuxprobe ~]# df -hFilesystem Size Used Avail Use% Mounted on devtmpfs 969M 0 969M 0% /dev tmpfs 984M 0 984M 0% /dev/shm tmpfs 984M 9.6M 974M 1% /run tmpfs 984M 0 984M 0% /sys/fs/cgroup/dev/mapper/rhel-root 17G 3.9G 14G 23% //dev/sr0 6.7G 6.7G 0 100% /media/cdrom/dev/sda1 1014M 152M 863M 15% /boot tmpfs 197M 16K 197M 1% /run/user/42 tmpfs 197M 3.4M 194M 2% /run/user/0 192.168.10.10:/nfsfile 17G 3.9G 14G 23% /nfsfile
挂载成功后就应该能够顺利地看到在执行前面的操作时写入的文件内容了。如果希望NFS文件共享服务能一直有效,则需要将其写入到fstab文件中:
[root@linuxprobe ~]# cat /nfsfile/readmewelcome to linuxprobe.com[root@linuxprobe ~]# vim /etc/fstab ## /etc/fstab# Created by anaconda on Thu Feb 25 10:42:11 2021## Accessible filesystems, by reference, are maintained under '/dev/disk/'.# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.## After editing this file, run 'systemctl daemon-reload' to update systemd# units generated from this file.#/dev/mapper/rhel-root / xfs defaults 0 0 UUID=37d0bdc6-d70d-4cc0-b356-51195ad90369 /boot xfs defaults 0 0/dev/mapper/rhel-swap swap swap defaults 0 0/dev/cdrom /media/cdrom iso9660 defaults 0 0 192.168.10.10:/nfsfile /nfsfile nfs defaults 0 0
AutoFs自动挂载服务
无论是Samba服务还是NFS服务,都要把挂载信息写入到/etc/fstab中,这样远程共享资源就会自动随服务器开机而进行挂载。虽然这很方便,但是如果挂载的远程资源太多,则会给网络带宽和服务器的硬件资源带来很大负载。如果在资源挂载后长期不使用,也会造成服务器硬件资源的浪费。可能会有读者说,“可以在每次使用之前执行mount命令进行手动挂载”。这是一个不错的选择,但是每次都需要先挂载再使用,您不觉得麻烦吗?
autofs自动挂载服务可以帮我们解决这一问题。与mount命令不同,autofs服务程序是一种Linux系统守护进程,当检测到用户试图访问一个尚未挂载的文件系统时,将自动挂载该文件系统。换句话说,将挂载信息填入/etc/fstab文件后,系统在每次开机时都自动将其挂载,而autofs服务程序则是在用户需要使用该文件系统时才去动态挂载,从而节约了网络资源和服务器的硬件资源。
需要自行安装下autofs服务程序
[root@linuxprobe ~]# dnf install autofs
处于生产环境中的Linux服务器,一般会同时管理许多设备的挂载操作。如果把这些设备挂载信息都写入到autofs服务的主配置文件中,无疑会让主配置文件臃肿不堪,不利于服务执行效率,也不利于日后修改里面的配置内容,因此在autofs服务程序的主配置文件中需要按照“挂载目录 子配置文件”的格式进行填写。挂载目录是设备挂载位置的上一级目录。例如,光盘设备一般挂载到/media/cdrom目录中,那么挂载目录写成/media即可。对应的子配置文件则是对这个挂载目录内的挂载设备信息作进一步的说明。子配置文件需要用户自行定义,文件名字没有严格要求,但后缀建议以.misc结束。具体的配置参数如第7行的加粗字所示。
[root@linuxprobe ~]# vim /etc/auto.master## Sample auto.master file# This is a 'master' automounter map and it has the following format:# mount-point [map-type[,format]:]map [options]# For details of the format look at auto.master(5).#/media /etc/iso.misc /misc /etc/auto.misc## NOTE: mounts done from a hosts map will be mounted with the# "nosuid" and "nodev" options unless the "suid" and "dev"# options are explicitly given.
在子配置文件中,应按照“挂载目录 挂载文件类型及权限 :设备名称”的格式进行填写。例如,要把光盘设备挂载到/media/iso目录中,可将挂载目录写为iso,而-fstype为文件系统格式参数,iso9660为光盘设备格式,ro、nosuid及nodev为光盘设备具体的权限参数,/dev/cdrom则是定义要挂载的设备名称。配置完成后再顺手将autofs服务程序启动并加入到系统启动项中
[root@linuxprobe ~]# vim /etc/iso.misciso -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom[root@linuxprobe ~]# systemctl start autofs [root@linuxprobe ~]# systemctl enable autofs Created symlink /etc/systemd/system/multi-user.target.wants/autofs.service → /usr/lib/systemd/system/autofs.service.
接下来将发生一件非常有趣的事情。先查看当前的光盘设备挂载情况,确认光盘设备没有被挂载上,而且/media目录中根本就没有iso子目录
[root@linuxprobe ~]# umount /dev/cdrom[root@linuxprobe ~]# df -hFilesystem Size Used Avail Use% Mounted on devtmpfs 969M 0 969M 0% /dev tmpfs 984M 0 984M 0% /dev/shm tmpfs 984M 9.6M 974M 1% /run tmpfs 984M 0 984M 0% /sys/fs/cgroup /dev/mapper/rhel-root 17G 3.9G 14G 23% / /dev/sda1 1014M 152M 863M 15% /boot tmpfs 197M 16K 197M 1% /run/user/42 tmpfs 197M 3.4M 194M 2% /run/user/0 192.168.10.10:/nfsfile 17G 3.9G 14G 23% /nfsfile[root@linuxprobe ~]# cd /media[root@linuxprobe media]# ls[root@linuxprobe media]#
但是,我们却可以使用cd命令切换到这个iso子目录中,而且光盘设备会被立即自动挂载上,也就能顺利查看光盘内的内容了。
[root@linuxprobe media]# cd iso[root@linuxprobe iso]# lsAppStream EULA images RPM-GPG-KEY-redhat-beta BaseOS extra_files.json isolinux RPM-GPG-KEY-redhat-release EFI GPL media.repo TRANS.TBL[root@linuxprobe iso]# df -hFilesystem Size Used Avail Use% Mounted on devtmpfs 969M 0 969M 0% /dev tmpfs 984M 0 984M 0% /dev/shm tmpfs 984M 9.6M 974M 1% /run tmpfs 984M 0 984M 0% /sys/fs/cgroup /dev/mapper/rhel-root 17G 3.9G 14G 23% / /dev/sda1 1014M 152M 863M 15% /boot tmpfs 197M 16K 197M 1% /run/user/42 tmpfs 197M 3.4M 194M 2% /run/user/0 192.168.10.10:/nfsfile 17G 3.9G 14G 23% /nfsfile /dev/sr0 6.7G 6.7G 0 100% /media/iso
nfsfile -fstype=nfs 192.168.44.136:/nfsfilecd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom database -fstype=cifs,credentials=/root/auth.smb ://192.168.44.136/database