案例演示3
:
显示远程主机的当前目录,并且显示客户端当前工作目录,显示远程主机的当前目录下的所有文件信息,显示客户端当前工作目录下的所有信息,可以使用如下命令:
- pwd
- ! pwd
- ls
- ! ls
[请在右侧“命令行”里直接体验]
案例演示4
:
在远程主机上新创建一个文件夹newDir
,然后将本地的/home/fzm/testFile
上传到newDir
目录下,将远程主机上的sambaUser/fzm
文件下载到/home/fzm
目录下,并重命名为newFzm
,最后退出smbclient
客户端,可以使用如下命令:
- mkdir newDir
- put /home/fzm/testFile newDir/testFile
- get sambaUser/fzm /home/fzm/newFzm
- exit
[请在右侧“命令行”里直接体验]
案例演示5
:
在Windows
系统上通过samba
服务器去访问Linux
系统共享的文件夹,可以使用如下步骤:
- 在
Windows
主机上打开"运行"(快捷键win+r
)输入需要访问的Linux
的IP
地址(格式为:\\IP);
[请在`Windows`主机上进行验证]
- 回车后即可看到
Linux
主机上所共享的文件夹(fzm
);
[请在`Windows`主机上进行验证]
- 打开
fzm
文件夹进行访问即可(有时需要输入samba
的用户名和密码才能访问)。
[请在`Windows`主机上进行验证]
编程要求
本关任务是学会如何使用smbclient
命令访问samba
服务器的共享资源。
注意:在执行本关任务前,首先执行如下命令来初始化任务环境。
- apt-get update
- apt-get install smbclient
- useradd testUser
- smbpasswd -a testUser(输入新设置的密码)
- touch testFile
- 向文件`/etc/samba/smb.conf`结尾追加如下内容,并且重新启动`Samba`服务器,并且重新启动服务
- [homes]
- comment = smbclient homes
- path = /tmp
- browseable = no
- writable = yes
- create mask = 0664
- directory mask = 0775
具体编程要求如下:
- 启动
samba
服务; - 使用
smbclient
命令连接本机testUser
共享文件夹(将本机作为远程服务器,并且使用testUser
用户去访问); - 在远程服务器上新建一个目录
Dir
; - 将本地的一个文件(
/root/testFile
)上传到远程主机的Dir
目录下并重命名为upLoadFile
。
任务描述
通过以上关卡的学习,我们学会了使用smbclient
命令来登录远程主机,并进行文件的上传和下载操作。接下来我们来学习如何配置samba
服务器。
本关任务:学会samba
服务器的常见配置。
相关知识
上一关卡中,我们在案例演示前进行了一系列环境的初始化,现在我们详细的介绍为什么我们要做那些环境的配置。
samba
服务器提供了很多的配置项,每个配置项都有不同的功能,接下来,我们介绍samba
常见的配置项功能,samba
服务器的配置文件存放路径为:/etc/samba/smb.conf
目录下。
smb.conf
结构
smb.conf
文件中包括4
种结构,[Global
]、[Homes
]、[printers
]、[Userdefined_shareName
],其中:
- Globa:用于定义全局参数和缺省值;
- Homes:用于用户的home目录共享;
- Printers:用于定义打印机共享;
- Userdefined_ShareName:用于自定义共享(可有多个)。
全局配置参数[Global]
全局配置参数常用的主要有以下几个:
- Workgroup:设置 samba 要加入的工作组;
- server string:指定浏览列表里的机器描述;
- netbios name:设 置samba 的 NetBIOS 名字(需要自己添加);
- Intterface:设置接口 IP 地址;
- Host allow:设置允许访问的主机 IP;
- log file:指定日志文件的名称;
- Max log size:指定日志文件的最大尺寸(KB);
- security:是定义 samba 的安装等级。
案例演示1
:
修改浏览列表里的机器描述为This is My Samba Server
,具体使用如下步骤:
- 修改 smb.conf 文件中的 server string 值(sudo vim /etc/samba/smb.conf)
- sudo service smbd restart
- smbclient -L 127.0.0.1 -U sambaUser%fzm
[修改配置文件]
[请在右侧“命令行”里直接体验]
配置home共享[homes]
home
共享默认将用户的宿主目录进行了共享,这是十分危险的。为了安全考虑,我们需要自己指定共享的目录,使用home
共享的好处是不同的登录用户看到的共享目录名称是本身用户名。
常见的设置共享目录的属性有如下几个:
- comment :描述该共享的名称;
- path:定义该共享的目录;
- browseable :指定共享的目录是否可浏览;
- Writable:指定共享的目录是否有写入权限;
- read only:指定共享的目录为只读权限;
- Public:指定是否可以允许 Guest 帐户访问;
- Guest ok:通 public 相同,yes 为允许 guest 访问;
- create mask:创建文件的默认权限;
- directory mask:创建目录的默认权限。
我们现在讲解为什么我们在上一关中要向配置文件添加如下属性:
[上一关配置文件]
可以看到我们将home
的共享目录指定为/tmp
,并且设置可以有写权限,以及创建文件和目录的默认权限。
案例演示1
:
将home
设置为可浏览,具体使用如下步骤:
- 修改 smb.conf 文件中的 server string 值(sudo vim /etc/samba/smb.conf)
- sudo service smbd restart
- smbclient -L 127.0.0.1 -U sambaUser%fzm
[请在右侧“命令行”里直接体验]
可以看到现在本机共享文件夹又多了一个homes
的文件夹。
自定义共享
自定义共享文件夹可以设置多个,设置方式与home
的设置方式相似,并且共享文件夹的名字随便起。
案例演示1
:
自定义一个共享文件夹,将共享名字设置为MyShare
,指定共享目录为/tmp
,并且设置其可写属性以及创建文件和目录的默认权限分别是0644
和0755
,具体使用如下步骤:
- 修改 smb.conf 文件中的 server string 值(sudo vim /etc/samba/smb.conf)
- sudo service smbd restart
- smbclient -L 127.0.0.1 -U sambaUser%fzm
[追加配置文件]
[请在右侧“命令行”里直接体验]
可以看到新创建的共享文件夹MyShare
成功的显示出来,如果登录的只需要输入:smbclient //127.0.0.1/MyShare -U userName%passwd
编程要求
本关任务是学会如何配置samba
服务器。
注意:在执行本关任务前,首先执行如下命令来初始化任务环境。
- mkdir /testDir
- chmod 777 /testDir
- useradd testUser
- smbpasswd -a testUser(输入新设置的密码)
- touch testFile
具体编程要求如下:
- 自定义一个共享文件夹,将共享名字设置为
TestShare
,指定共享目录为/testDir
,同时设置其可浏览,并且设置其可写属性以及创建文件和目录的默认权限分别是0644
和0755
; - 使用
smbclient
命令连接本机TestShare
共享文件夹(将本机作为远程服务器,并且使用testUser
用户去访问); - 在远程服务器上新建一个目录
Dir
; - 将本地的一个文件(
/root/testFile
)上传到远程主机的Dir
目录下并重命名为upLoadFile
。