Ubuntu 20.04 安装配置Samba服务

发布于 2020-08-15  2424 次阅读


Ubuntu 20.04 安装配置Samba服务

1、安装Samba服务

sudo apt-get install samba samba-common

2、配置需要共享的目录

改变需要共享目录的权限,让其他人可以更改文件和目录,以/home为例(若多人使用同一服务器建议在每个用户家目录单独共享,不建议共享整个home目录,防止误操作删除他人文件)

sudo chmod 777 /home/ -R

3、添加Samba用户

添加samba用户username,用于其他人或设备认证,这里添加的用户需要在系统账号中存在,否则添加失败
username换为你服务器里已存在的用户名

sudo smbpasswd -a username
New SMB password:
Retype new SMB password:
Added user username.

4、配置Samba

先备份,以防改错,修改配置文件时建议养成备份的好习惯,改错了还能恢复

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

修改配置,添加共享,可直接加到文件尾

[home] #共享名,该共享标签,可随意取,该名字为在其他电脑上看到的共享名
    comment = home directories #该共享描述
    path = /home/  #共享路径
    public = yes    #指定该共享是否允许guest账户访问
    writable = yes #writable用来指定该共享路径是否可写
    workgroup = DAWN #设定 Samba Server 所要加入的工作组或者域

5、重启samba服务

sudo service smbd restart

若找不到服务可尝试如下方法,不过得具体看,有的版本路径不是/etc/init.d/samba,比如我的为/etc/init.d/samba-ad-dc,可以看对应路径是啥,决定用哪个命令

sudo /etc/init.d/samba restart
sudo /etc/init.d/samba-ad-dc restart

6、smbpasswd 命令的用法

smbpasswd 命令的用法 
    smbpasswd -a 增加用户(要增加的用户必须以是系统用户)    
    smbpasswd -d 冻结用户,就是这个用户不能在登录了    
    smbpasswd -e 恢复用户,解冻用户,让冻结的用户可以在使用    
    smbpasswd -n 把用户的密码设置成空.    
                 要在global中写入 null passwords -true    
    smbpasswd -x  删除用户  

7、smb.conf的配置项说明

Samba的主配置文件为/etc/samba/smb.conf

[共享名]
    comment = 任意字符串
    说明:comment是对该共享的描述,可以是任意字符串。
    path = 共享目录路径
    说明:path用来指定共享目录的路径。可以用%u、%m这样的宏来代替路径里的unix用户和客户机的Netbios名,用宏表示主要用于[homes] 共享域。例如:如果我们不打算用home段做为客户的共享,而是在/home/share/下为每个Linux用户以他的用户名建个目录,作为他的共享目录,这样path就可以写成:path = /home/share/%u; 。用户在连接到这共享时具体的路径会被他的用户名代替,要注意这个用户名路径一定要存在,否则,客户机在访问时会找不到网络路径。同样,如果我们不是以用 户来划分目录,而是以客户机来划分目录,为网络上每台可以访问samba的机器都各自建个以它的netbios名的路径,作为不同机器的共享资源,就可以 这样写:path = /home/share/%m 。
    browseable = yes/no
    说明:browseable用来指定该共享是否可以浏览。
    writable = yes/no
    说明:writable用来指定该共享路径是否可写。
    available = yes/no
    说明:available用来指定该共享资源是否可用。
    admin users = 该共享的管理者
    说明:admin users用来指定该共享的管理员(对该共享具有完全控制权限)。在samba 3.0中,如果用户验证方式设置成“security=share”时,此项无效。
    例如:admin users =david,sandy(多个用户中间用逗号隔开)。
    valid users = 允许访问该共享的用户
    说明:valid users用来指定允许访问该共享资源的用户。
    例如:valid users = david,@dave,@tech(多个用户或者组中间用逗号隔开,如果要加入一个组就用“@组名”表示。)
    invalid users = 禁止访问该共享的用户
    说明:invalid users用来指定不允许访问该共享资源的用户。
    例如:invalid users = root,@bob(多个用户或者组中间用逗号隔开。)
    write list = 允许写入该共享的用户
    说明:write list用来指定可以在该共享下写入文件的用户。
    例如:write list = david,@dave
    public = yes/no
    说明:public用来指定该共享是否允许guest账户访问。
    guest ok = yes/no
    说明:意义同“public”。

Satxm,一个正在肝地球Online的人。