首页 服务器系统 Linux

Linux软件-Samba共享文件

1、前言

Samba 是一种用来让Linux操作系统与Windows操作系统,以SMB / CIFS(服务器消息块/通用Internet文件系统)网络协议做链接的自由软件。不仅可访问及分享SMB的文件夹及打印机,还可以使用Windows Server的域控功能,成为域控制器以及域成员。 我将以 ubuntu 20.04 服务器版本进行设置。


2、软件安装

1)切换到root执行安装命令
apt-get install samba
2)查看samba版本
samba -V(超过3.0的版本,才有加域功能)
3)创建共享目录,用户用户组并配置权限
4)编写配置文件
vi /etc/samba/smb.conf
5)重启Samba服务使配置生效
service smbd restart

在ubuntu系统下需要安装samba-client和cifs-utils,才可使用samba共享文件 apt-get install smbclient apt-get install cifs-utils

可能需要设置防火墙

ufw disable //关闭防火墙

ufw enable //开启

ufw status //查看状态

guest登录
smbclient -L 192.168.100.105 -N 
用户登录
smbclient -L 192.168.100.105 -U name
映射Linux共享文件
smbmount //192.168.100.105/file /mnt/file -o username=name
映射Windows共享文件
mount -t cifs -o username=aaaaa,password=123456,vers=2.0  //192.168.100.105/text  /mnt/share

3、共享文件

1)创建目录

mkdir /home/samba/share chmod 777 /home/samba/share

2)配置文件

share模式

所有的用户都可以直接访问不需要用户名和密码,相当于Windows的everyone。

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

user模式

使用时,需要samba用户和密码才能访问。

[global]
    security = user

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

(1) 查看用户

pdbedit -L

(2) 修改密码

smbpasswd user

(3) 删除用户

smbpasswd -x user

(4)创建用户(随后可输入密码)

smbpasswd -a user

4、samba配置及说明

常见的samba配置及说明:

[share] # 该共享的共享名

comment = smb share test # 共享备注

path = /home/share # 共享路径

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

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

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

browseable = yes|no # 设置共享目录是否隐藏

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

public = yes|no # 指明共享目录是否能给游客帐号访问,guest ok = yes和public = yes可达到相同效果

user = user, @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 # 指明是否隐藏以“.”号开头的隐藏文件

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 = test # 强制把新建的文件的拥有者是谁。如果有一个共享目录,guest可以写,那么guest就可以删除,如果用force user= test强制在此目录下新建的文件的拥有者是test,同时限制create mask = 0755,这样guest就不能删除这个新建的文件

wide links = yes|no # 是否允许共享非共享资源,比如共享文件中有个文件指向非共享的文件或者目录,如果设置wide links = no将使该文件就不可用

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

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

相关推荐