不建议看 

  1. 更新软件源:sudo apt-get update
  2. 安装samba:sudo apt-get install samba

 

  1. start:启动该服务;
  2. stop:关闭该服务;
  3. restart:重新启动该服务;
  4. status:查看该服务状态;

查看samba服务状态,可以使用如下命令:

sudo service smbd status

samba怎么切换用户 samba 修改用户名密码_运维

 



  1. 更新软件源:sudo apt-get update
  2. 安装smbclient:sudo apt-get install smbclient

如果安装成功则会出现如下界面:

samba怎么切换用户 samba 修改用户名密码_服务器_02

注意:如果当前用户是root,则执行以上安装命令时不需要加sudo

samba用户管理

smbpasswd命令属于samba套件,能够实现添加或删除samba用户和为用户修改密码。

smbpasswd命令格式:

smbpasswd 选项 用户名

常见选项如下:



  1. -a:向smbpasswd文件中添加用户;
  2. -c:指定samba的配置文件;
  3. -x:从smbpasswd文件中删除用户;
  4. -d:在smbpasswd文件中禁用指定的用户;
  5. -e:在smbpasswd文件中激活指定的用户;
  6. -n:将指定的用户的密码置空;

用户名:指定要修改smb密码的用户。

注意:这里使用的用户是系统中已经存在的用户。

案例演示1:

添加一个samba用户sambaUser,可以使用如下命令:



  1. sudo useradd sambaUser
  2. sudo smbpasswd -a sambaUser

samba怎么切换用户 samba 修改用户名密码_运维_03

[请在右侧“命令行”里直接体验]

smbclient命令常见用法

smbclient 命令格式:

smbclient 选项 smb服务器

常见选项如下:



  1. -L:显示服务器端所分享出来的所有资源;
  2. -p<TCP连接端口>:指定服务器端 TCP 连接端口编号;
  3. -s<目录>:指定 smb.conf 所在的目录;
  4. -U<用户名称>:指定用户名称;
  5. -N:不用询问密码;

smb服务器:指定要连接的smb服务器。

常见smbclient命令如下所示:



  1. smb: \> ? 或 help [command] 提供关于帮助或某个命令的帮助;
  2. smb: \> ![shell command] 执行所用的 SHELL 命令,或让用户进入 SHELL 提示符;
  3. smb: \> cd [目录] 切换到服务器端的指定目录,如未指定,则 smbclient 返回当前本地目录;
  4. smb: \> lcd [目录] 切换到客户端指定的目录;
  5. smb: \> dir 或 ls 列出服务器端当前目录下的文件;
  6. smb: \> exit 或 quit 退出smbclient;
  7. smb: \> get file1 file2 从服务器上下载 file1,并以文件名 file2 存在本地机上;如果不想改名,可以把 file2 省略;
  8. smb: \> mget file1 file2 file3 filen 从服务器上下载多个文件;
  9. smb: \> md 或 mkdir 目录 在服务器上创建目录;
  10. smb: \> rd 或 rmdir 目录 删除服务器上的目录;
  11. smb: \> put file1 [file2] 向服务器上传一个文件 file1,传到服务器上改名为 file2;
  12. smb: \> mput file1 file2 filen 向服务器上传多个文件;

注意:smbclient的很多命令和ftp的命令用法相似。

案例演示环境初始化:执行如下操作:向文件/etc/samba/smb.conf结尾追加如下内容,并且重新启动Samba服务器,下一关讲解为什么要这样做。



  1. [homes]
  2. comment = smbclient homes
  3. path = /tmp
  4. browseable = no
  5. writable = yes
  6. create mask = 0664
  7. directory mask = 0775

samba怎么切换用户 samba 修改用户名密码_运维_04

[修改后的配置文件]

列出某个IP地址所提供的共享文件夹

案例演示1:

使用smbclient客户端列出本地所提供的共享文件夹(使用sambaUser用户去登录服务器,密码为fzm),可以使用如下命令:

smbclient -L 127.0.0.1 -U sambaUser%fzm

samba怎么切换用户 samba 修改用户名密码_samba怎么切换用户_05

[请在右侧“命令行”里直接体验]

可以看到本地共享的文件夹有3个,分别是:print$IPC$sambaUser

远程连接Samba服务器

案例演示2:

使用smbclient客户端去连接sambaUser共享文件夹(使用sambaUser用户去登录服务器,密码为fzm),可以使用如下命令:

smbclient //127.0.0.1/sambaUser -U sambaUser%fzm

samba怎么切换用户 samba 修改用户名密码_linux_06

[请在右侧“命令行”里直接体验]

其它操作

案例演示3:

显示远程主机的当前目录,并且显示客户端当前工作目录,显示远程主机的当前目录下的所有文件信息,显示客户端当前工作目录下的所有信息,可以使用如下命令:



  1. pwd
  2. ! pwd
  3. ls
  4. ! ls

samba怎么切换用户 samba 修改用户名密码_samba怎么切换用户_07

[请在右侧“命令行”里直接体验]

案例演示4:

在远程主机上新创建一个文件夹newDir,然后将本地的/home/fzm/testFile上传到newDir目录下,将远程主机上的sambaUser/fzm文件下载到/home/fzm目录下,并重命名为newFzm,最后退出smbclient客户端,可以使用如下命令:



  1. mkdir newDir
  2. put /home/fzm/testFile newDir/testFile
  3. get sambaUser/fzm /home/fzm/newFzm
  4. exit

samba怎么切换用户 samba 修改用户名密码_bc_08

[请在右侧“命令行”里直接体验]

案例演示5:

Windows系统上通过samba服务器去访问Linux系统共享的文件夹,可以使用如下步骤:

  • Windows主机上打开"运行"(快捷键win+r)输入需要访问的LinuxIP地址(格式为:\\IP);

[请在Windows主机上进行验证]

  • 回车后即可看到Linux主机上所共享的文件夹(fzm);

[请在Windows主机上进行验证]

  • 打开fzm文件夹进行访问即可(有时需要输入samba的用户名和密码才能访问)。

 

 

 

 

 

 

samba服务器提供了很多的配置项,每个配置项都有不同的功能,接下来,我们介绍samba常见的配置项功能,samba服务器的配置文件存放路径为:/etc/samba/smb.conf目录下。

smb.conf结构

smb.conf文件中包括4种结构,[Global]、[Homes]、[printers]、[Userdefined_shareName],其中:



  1. Globa:用于定义全局参数和缺省值;
  2. Homes:用于用户的home目录共享;
  3. Printers:用于定义打印机共享;
  4. Userdefined_ShareName:用于自定义共享(可有多个)。

全局配置参数[Global]

全局配置参数常用的主要有以下几个:



  1. Workgroup:设置 samba 要加入的工作组;
  2. server string:指定浏览列表里的机器描述;
  3. netbios name:设 置samba 的 NetBIOS 名字(需要自己添加);
  4. Intterface:设置接口 IP 地址;
  5. Host allow:设置允许访问的主机 IP;
  6. log file:指定日志文件的名称;
  7. Max log size:指定日志文件的最大尺寸(KB);
  8. security:是定义 samba 的安装等级。

案例演示1:

修改浏览列表里的机器描述为This is My Samba Server,具体使用如下步骤:



  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

samba怎么切换用户 samba 修改用户名密码_samba怎么切换用户_09

[修改配置文件]

samba怎么切换用户 samba 修改用户名密码_linux_10

[请在右侧“命令行”里直接体验]

配置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:创建目录的默认权限。

我们现在讲解为什么我们在上一关中要向配置文件添加如下属性:

samba怎么切换用户 samba 修改用户名密码_服务器_11

[上一关配置文件]

可以看到我们将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

samba怎么切换用户 samba 修改用户名密码_bc_12

[修改配置文件]

samba怎么切换用户 samba 修改用户名密码_samba怎么切换用户_13

[请在右侧“命令行”里直接体验]

可以看到现在本机共享文件夹又多了一个homes的文件夹。

自定义共享

自定义共享文件夹可以设置多个,设置方式与home的设置方式相似,并且共享文件夹的名字随便起。

案例演示1:

自定义一个共享文件夹,将共享名字设置为MyShare,指定共享目录为/tmp,并且设置其可写属性以及创建文件和目录的默认权限分别是06440755,具体使用如下步骤:



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

samba怎么切换用户 samba 修改用户名密码_linux_14

[追加配置文件]

samba怎么切换用户 samba 修改用户名密码_bc_15

[请在右侧“命令行”里直接体验]

可以看到新创建的共享文件夹MyShare成功的显示出来,如果登录的只需要输入:smbclient //127.0.0.1/MyShare -U userName%passwd