不建议看
更新软件源:sudo apt-get update
安装samba:sudo apt-get install samba
start:启动该服务;
stop:关闭该服务;
restart:重新启动该服务;
status:查看该服务状态;
查看samba
服务状态,可以使用如下命令:
sudo service smbd status
更新软件源:sudo apt-get update
安装smbclient:sudo apt-get install smbclient
如果安装成功则会出现如下界面:
注意:如果当前用户是root
,则执行以上安装命令时不需要加sudo
。
samba
用户管理
smbpasswd
命令属于samba
套件,能够实现添加或删除samba
用户和为用户修改密码。
smbpasswd
命令格式:
smbpasswd 选项 用户名
常见选项如下:
-a:向smbpasswd文件中添加用户;
-c:指定samba的配置文件;
-x:从smbpasswd文件中删除用户;
-d:在smbpasswd文件中禁用指定的用户;
-e:在smbpasswd文件中激活指定的用户;
-n:将指定的用户的密码置空;
用户名:指定要修改smb
密码的用户。
注意:这里使用的用户是系统中已经存在的用户。
案例演示1
:
添加一个samba
用户sambaUser
,可以使用如下命令:
sudo useradd sambaUser
sudo smbpasswd -a sambaUser
[请在右侧“命令行”里直接体验]
smbclient命令常见用法
smbclient
命令格式:
smbclient 选项 smb服务器
常见选项如下:
-L:显示服务器端所分享出来的所有资源;
-p<TCP连接端口>:指定服务器端 TCP 连接端口编号;
-s<目录>:指定 smb.conf 所在的目录;
-U<用户名称>:指定用户名称;
-N:不用询问密码;
smb
服务器:指定要连接的smb
服务器。
常见smbclient
命令如下所示:
smb: \> ? 或 help [command] 提供关于帮助或某个命令的帮助;
smb: \> ![shell command] 执行所用的 SHELL 命令,或让用户进入 SHELL 提示符;
smb: \> cd [目录] 切换到服务器端的指定目录,如未指定,则 smbclient 返回当前本地目录;
smb: \> lcd [目录] 切换到客户端指定的目录;
smb: \> dir 或 ls 列出服务器端当前目录下的文件;
smb: \> exit 或 quit 退出smbclient;
smb: \> get file1 file2 从服务器上下载 file1,并以文件名 file2 存在本地机上;如果不想改名,可以把 file2 省略;
smb: \> mget file1 file2 file3 filen 从服务器上下载多个文件;
smb: \> md 或 mkdir 目录 在服务器上创建目录;
smb: \> rd 或 rmdir 目录 删除服务器上的目录;
smb: \> put file1 [file2] 向服务器上传一个文件 file1,传到服务器上改名为 file2;
smb: \> mput file1 file2 filen 向服务器上传多个文件;
注意:smbclient
的很多命令和ftp
的命令用法相似。
案例演示环境初始化:执行如下操作:向文件/etc/samba/smb.conf
结尾追加如下内容,并且重新启动Samba
服务器,下一关讲解为什么要这样做。
[homes]
comment = smbclient homes
path = /tmp
browseable = no
writable = yes
create mask = 0664
directory mask = 0775
[修改后的配置文件]
列出某个IP地址所提供的共享文件夹
案例演示1
:
使用smbclient
客户端列出本地所提供的共享文件夹(使用sambaUser
用户去登录服务器,密码为fzm
),可以使用如下命令:
smbclient -L 127.0.0.1 -U sambaUser%fzm
[请在右侧“命令行”里直接体验]
可以看到本地共享的文件夹有3个,分别是:print$
、IPC$
和sambaUser
。
远程连接Samba服务器
案例演示2
:
使用smbclient
客户端去连接sambaUser
共享文件夹(使用sambaUser
用户去登录服务器,密码为fzm
),可以使用如下命令:
smbclient //127.0.0.1/sambaUser -U sambaUser%fzm
[请在右侧“命令行”里直接体验]
其它操作
案例演示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
的用户名和密码才能访问)。
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
共享的好处是不同的登录用户看到的共享目录名称是本身用户名。
常见的设置共享目录的属性有如下几个:
1. comment :描述该共享的名称;
2. path:定义该共享的目录;
3. browseable :指定共享的目录是否可浏览;
4. Writable:指定共享的目录是否有写入权限;
5. read only:指定共享的目录为只读权限;
6. Public:指定是否可以允许 Guest 帐户访问;
7. Guest ok:通 public 相同,yes 为允许 guest 访问;
8. create mask:创建文件的默认权限;
9. directory mask:创建目录的默认权限。
我们现在讲解为什么我们在上一关中要向配置文件添加如下属性:
[上一关配置文件]
可以看到我们将home
的共享目录指定为/tmp
,并且设置可以有写权限,以及创建文件和目录的默认权限。
案例演示1
:
将home
设置为可浏览,具体使用如下步骤:
1. 修改 smb.conf 文件中的 server string 值(sudo vim /etc/samba/smb.conf)
2. sudo service smbd restart
3. smbclient -L 127.0.0.1 -U sambaUser%fzm
[修改配置文件]
[请在右侧“命令行”里直接体验]
可以看到现在本机共享文件夹又多了一个homes
的文件夹。
自定义共享
自定义共享文件夹可以设置多个,设置方式与home
的设置方式相似,并且共享文件夹的名字随便起。
案例演示1
:
自定义一个共享文件夹,将共享名字设置为MyShare
,指定共享目录为/tmp
,并且设置其可写属性以及创建文件和目录的默认权限分别是0644
和0755
,具体使用如下步骤:
1. 修改 smb.conf 文件中的 server string 值(sudo vim /etc/samba/smb.conf)
2. sudo service smbd restart
3. smbclient -L 127.0.0.1 -U sambaUser%fzm
[追加配置文件]
[请在右侧“命令行”里直接体验]
可以看到新创建的共享文件夹MyShare
成功的显示出来,如果登录的只需要输入:smbclient //127.0.0.1/MyShare -U userName%passwd