大家好,又见面了,我是你们的朋友全栈君。
一、安装samba服务以及samba客户端
代码语言:javascript复制yum list samba
代码语言:javascript复制yum install samba samba-client
安装好samba软件包以后,在系统中会添加名为smb和nmb的标准系统服务,管理员可以通过service(centos6)或systemctl(centos7)工具来控制Samba服务的启动与终止。
其中smbd程序负责监听TCP协议的139端口(SMB协议)、445端口(CIFS协议),而nmbd服务程序负责监听UDP协议的137、138端口(NetBIOS协议)。
代码语言:javascript复制netstat -anput | grep mbd
代码语言:javascript复制cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
代码语言:javascript复制vim /etc/samba/smb.conf
使用如下配置:
代码语言:javascript复制# 全局设置:这部分配置项的内容对整个samba服务器都有效。
[global]
workgroup = SAMBA
# share:允许任何匿名用户访问
# user:默认、每一个用户访问时都需要提供账号密码
# domain/server:第三方集中认证
security = user
passdb backend = tdbsam
log file = /var/log/samba/log.%m
printing = cups
printcap name = cups
load printers = yes
cups options = raw
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
#打印机共享设置:若需要共享打印机设备,可以在这部分进行配置。
#[printers]
# comment = All Printers
# path = /var/tmp
# printable = Yes
# create mask = 0600
# browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @printadmin root
force group = @printadmin
create mask = 0664
directory mask = 0775
[wxzy_app]
# 共享描述
comment = app share
# 设置共享文件夹的路径
path = /home/app_smb
# 允许该指定共享目录可浏览
browseable = yes
# 设置是否允许匿名访问
public = no
# 允许访问共享目录的用户
valid users = @smb
# 读写控制共享目录的用户组
write list = app_admin
# 默认创建文件权限 rw_rw___
force create mode = 0660
# 默认创建目录权限 rwxrwxr__
force directory mode= 2770
# 设置强制设定新建文件所属用户
force user = app
# 设置强制设定新建文件所属用户组
force group = smb
# 该指定共享资源可使用
available = yes
unix charset = UTF-8
dos charset = cp936
[wxzy_app_admin]
# 共享描述
comment = app share admin
path = /samba/app_admin
browseable = yes
read only = no
force create mode = 0660
force directory mode = 2770
valid users = app_admin
二、创建samba用户和用户组
添加共享用户组:
代码语言:javascript复制groupadd -r smb
useradd -s /sbin/nologin -G smb app_smb
useradd -M -d /samba/app -s /sbin/nologin -G smb app
useradd -M -d /samba/app_admin -s sbin/nologin -G smb app_admin
-M 不创建用户的home目录
-d 手动设置用户目录
-s /usr/sbin/nologin – 禁止用户shell登录
-G admin将用户加入到app_admin用户组.
代码语言:javascript复制smbpasswd -a app
New SMB password:hengtian@201612
smbpasswd -a app_admin
New SMB password:admin
smbpasswd -e app
smbpasswd -e app_admin
三、创建samba共享目录以及文件夹权限设置
添加共享路径:
代码语言:javascript复制cd /
mkdir samba
cd samba
mkdir app
mkdir app_admin
chown -R app:smb app
chown -R app_admin:smb app_admin
chmod 770 /samba/app
chmod 770 /samba/app_admin
重启
代码语言:javascript复制sambda:systemctl restart smb
四、使用samba进行文件共享
方式1:文件夹挂载
1、安装cifs-utils软件包以支持samba的挂载(否则即使挂载没有报错也无法正常使用)
代码语言:javascript复制yum install cifs-utils
2、创建挂载点
代码语言:javascript复制mkdir /mnt/smbmount
3、进行条目挂载或把挂载条目写入/etc/fstab以使开机自动挂载
代码语言:javascript复制mount -t cifs -o username=app_admin //172.16.137.236/wxzy_app_admin /mnt/smbmount
-o username –访问共享文件夹时候的用户
//172.16.137.236/wxzy_app_admin – 共享文件夹的共享地址
/mnt/smbmount –本地挂载映射路径
如果需要开机自动挂载
代码语言:javascript复制Vim /etc/fstab
在最后一行添加
代码语言:javascript复制//172.16.137.236/wxzy_app_admin /mnt/smbmount cifs default,username=app_admin,password=123 0 0
如果需要针对多用户挂载参考:https://blog.csdn.net/kangvcar/article/details/76093904?depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-3&utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-3
方式2:使用samba-client
代码语言:javascript复制smbclient //172.16.137.236/wxzy_app -U app
五、关于samba的权限控制
samba的权限由两方面构成:一是目录本身的权限,二是samba的配置权限。最终权限定义是两者的最小交集。
在smb.conf中通过一下几个配置项配置sambe的权限
代码语言:javascript复制 # 允许该指定共享目录可浏览
browseable = yes
# 设置是否允许匿名访问
public = no
# 允许访问共享目录的用户
valid users = @smb
# 读写控制共享目录的用户组
write list = app_admin
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144796.html原文链接:https://javaforall.cn