一. samba的安装:

   sudo apt-get install samba

   sudo apt-get install cifs-utils //很多博客写的是smbfs,这个软件包已经失效了,用cifs-utils软件包替代后,也成功共享了

 

二. 选择要共享的目录(或创建目录):

    mkdir /home/工作目录/myshare
    sudo chmod 777 /home/工作目录/myshare

 

或我用的是我整个“工作目录”共享的,工作目录一般是你的登录用户名。

 

三. 创建Samba配置文件:

1. 备份现有的配置文件

    sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

2. 修改现配置文件

    sudo vim /etc/samba/smb.conf

修改方法如下:

共享模式

(1) share模式就是,所有的用户都可以直接访问不需要用户名和密码,无需samba用户就可以访问服务器

找到[Global],添加或修改security

[Global]

  security = share 

在smb.conf最后添加

[share]

comment = smb share test

path = /home/工作目录/myshare
available = yes
browseable = yes
public = yes
writable = yes

user模式

user方式共享则需以samba用户和密码才能访问.

把 security = share 将它改成 security = user 

在smb.conf最后添加

[share]

comment = smb share test
path = /home/linux/share
available = yes
browseable = yes
public = no

valid users=chen  //允许chen用户登录

write list=chen   //只允许chen用户写入

说明:writable=yes允许写入,当我们需要限制只有被允许用户有写入权限时,这条命令就要删除,因为该条命令权限大于你对单个用户的限制。

四. 创建samba帐户

      sudo touch /etc/samba/smbpasswd

      sudo smbpasswd -a smbuser

然后会要求你输入samba帐户的密码, 需要提前创建smbuser用户名(这个是我专门用来共享的用户名),否则会失败。

创建smb专门共享账户smbuser, 这个不是必须的,也可以用已存在的账户,smbuser的添加方法:

sudo groupadd smbuser -g 6000

sudo useradd smbuser -u 6000 -g 6000 -s /sbin/nologin -d /dev/null

 

测试共享用户:

smbclient -L //localhost/myshare

 

  五. 重启samba服务器

    sudo /etc/init.d/smbd restart 或sudo service smbd restart

然后就在window 我的电脑中用\\x.x.x.x\myshare访问了

六. 创建映射盘符

subst z: \\x.x.x.x\myshare

就可以和本地文件一样访问了。

 

samba的相关操作命令

(1)  查看用户

sudo pdbedit -L

(2) 修改密码

sudo smbpasswd user

(3) 删除用户

sudo smbpasswd -x user

 

总结一下常见的samba配置及说明:

[share] # 该共享的共享名

        comment = smb share test # 该共享的备注

        path = /home/share # 共享路径

        allow hosts = host(subnet) # 设置该Samba服务器允许的工作组或者域

        deny hosts = host(subnet) # 设置该Samba服务器拒绝的工作组或者域

        available = yes|no # 设置该共享目录是否可用

        browseable = yes|no # 设置该共享目录是否可显示

        writable = yes|no # 指定了这个目录缺省是否可写,也可以用readonly = no来设置可写

        public = yes|no # 指明该共享资源是否能给游客帐号访问,guest ok = yes其实和public = yes是一样的

        user = user, @group # user设置所有可能使用该共享资源的用户,也可以用@group代表group这个组的所有成员,不同的项目之间用空格或者逗号隔开

        valid users = user, @group # 指定能够使用该共享资源的用户和组

        invalid users = user, @group # 指定不能够使用该共享资源的用户和组

        read list = user, @group # 指定只能读取该共享资源的用户和组

        write list = user, @group # 指定能读取和写该共享资源的用户和组

        admin list = user, @group # 指定能管理该共享资源(包括读写和权限赋予等)的用户和组

        hide dot files = yes|no # 指明是否像UNIX那样隐藏以“.”号开头的文件

        create mode = 0755 # 指明新建立的文件的属性,一般是0755

        directory mode = 0755 # 指明新建立的目录的属性,一般是0755

        sync always = yes|no # 指明对该共享资源进行写操作后是否进行同步操作

        short preserve case = yes|no # 指明是否区分文件名大小写

        preserve case = yes|no # 指明是否保持大小写

        case sensitive = yes|no # 指明是否对大小写敏感,一般选no,不然可能引起错误

        mangle case = yes|no # 指明混合大小写

        default case = upper|lower # 指明缺省的文件名是全部大写还是小写

        force user = testuser # 强制把建立文件的属主是谁。如果我有一个目录,让guest可以写,那么guest就可以删除,如果我用force user= testuser强制建立文件的属主是testuser,同时限制create mask = 0755,这样guest就不能删除了

        wide links = yes|no # 指明是否允许共享外符号连接,比如共享资源里面有个连接指向非共享资源里面的文件或者目录,如果设置wide links = no将使该连接不可用

        max connections = 100 # 设定最大同时连接数

        delete readonly = yes|no # 指明能否删除共享资源里面已经被定义为只读的文件。

参考:

https://www.cnblogs.com/adong7639/p/7832046.html

https://www.cnblogs.com/thinkingandworkinghard/p/7803178.html

 

posted on 2018-11-19 14:11  startnewlife  阅读(3759)  评论(0编辑  收藏  举报