1. 安装Samba及相关包 $ sudo apt-getinstall samba samba-common smbfsPython-glade2system-config-samba 2. 创建共享目录 $ mkdir /home/kevin/share $ sudo chmod 777/home/kevin/Share 3. 创建Samba配置文件 1) 保存现有配置文件 $ sudo cp/etc/samba/smb.conf /etc/samba/smb.conf.backup 2) 修改配置文件 $ sudo gedit/etc/samba/smb.conf 在文件末尾添加 [share] path = /home/kevin/Share available = yes browseable = yes public = yes writable = yes
找到[global],添加 display charset = UTF-8 unix charset = UTF-8 dos charset = cp936 4. 创建Samba帐户 $ sudo touch /etc/samba/smbpasswd $ sudo smbpasswd -a kevin (该用户必须是已经在本机上创建的用户) 删除网络使用者的账号的命令是把上面命令的-a改成-x 5. 重启Samba服务器 $ sudo/etc/init.d/smbd restart 6. 测试使用 在Windows下输入ip使用,在文件夹下输入”\\”+”Ubuntu机器名或IP”+”\share”。 $ smbclient -L //localhost/Share 安装上文配置的实际上文件共享不要用户名登陆密码验证,我们可以修改配置实现权限管控。 $ sudo gedit /etc/samba/smb.conf 1、 将默认的 security= share 改成security = user 2、 将紧接着的 passdbbackend = tdbsam 改成 passdb backend = smbpasswd 3、 将; valid users = %S 改成 validusers = kevin (添加的samba服务器的用户名) 4、 创建Samba帐户 $ sudo touch/etc/samba/smbpasswd $ sudo smbpasswd -a kevin (该用户必须是已经在本机上创建的用户) 5、 重启服务器 $ sudo/etc/init.d/smbd restart TIPS: passdb backend = tdbsam 说明:passdb backend就是用户后台的意思。 目前有三种后台:smbpasswd、tdbsam和ldapsam。sam应该是security accountmanager(安全账户管理)的简写。 1.smbpasswd:该方式是使用smb自己的工具smbpasswd来给系统用户(真实用户或者虚拟用户)设置一个Samba密码,客户端就用这个密码来访问Samba的资源。smbpasswd文件默认在/etc/samba目录下,不过有时候要手工建立该文件。 2.tdbsam:该方式则是使用一个数据库文件来建立用户数据库。数据库文件叫passdb.tdb,默认在/etc/samba目录下。passdb.tdb用户数据库可以使用smbpasswd–a来建立Samba用户,不过要建立的Samba用户必须先是系统用户。我们也可以使用pdbedit命令来建立Samba账户。pdbedit命令的参数很多,我们列出几个主要的。 pdbedit –a username:新建Samba账户。 pdbedit –x username:删除Samba账户。 pdbedit –L:列出Samba用户列表,读取passdb.tdb数据库文件。 pdbedit –Lv:列出Samba用户列表的详细信息。 pdbedit –c “[D]” –u username:暂停该Samba用户的账号。 pdbedit –c “[]” –uusername:恢复该Samba用户的账号。 valid users = 允许访问该共享的用户 说明:valid users用来指定允许访问该共享资源的用户。 例如:valid users =bobyuan,@bob,@tech(多个用户或者组中间用逗号隔开,如果要加入一个组就用“@+组名”表示。) invalid users = 禁止访问该共享的用户 说明:invalid users用来指定不允许访问该共享资源的用户。 例如:invalid users = root@bob(多个用户或者组中间用空格隔开。) 启动Samba服务器后,可以使用ps命令查看进程: $ ps -aux
可以看到Samba服务会同时启动两个服务,其中smbd主要用来管理共享出来的目录,nmbd主要用来解析NetBIOS名。在Windows系统中,主机可以被加入一个组中,这样每个主机都必须有一个名字,这个名字是用于在网上被标志的名,并非机器的主机名,将其称为NetBIOS名。其中nmbd进程是随着smbd进程启动而启动。