关闭防火墙
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# systemctl disable firewalld.service
关闭selinux
[root@localhost ~]# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
# SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
安装
[root@localhost ]# yum install samba
#查看
[root@localhost ]# rpm -qa | grep samba
安装包说明
samba-common-3.5.10-125.el6.x86_64 //主要提供samba服务器的设置文件与设置文件语法检验程序testparm
samba-client-3.5.10-125.el6.x86_64 //客户端软件,主要提供linux主机作为客户端时,所需要的工具指令集
samba-swat-3.5.10-125.el6.x86_64 //基于https协议的samba服务器web配置界面
samba-3.5.10-125.el6.x86_64 //服务器端软件,主要提供samba服务器的守护程序,共享文档,日志的轮替,开机默认选项
配置服务
安装后会生成/etc/samba目录,
#grep -vE "^$|#" smb.conf
# vi smb.conf
[public]
comment = Public Stuff
path = /home/test/test #指定目录
writeable = yes
public = yes
browseable = yes
guest ok = yes #是否可浏览,是否可被所有用户看到
writable = yes #是否可写(全局可写)
create mask = 0644 #新建文件权限644
directory mask = 0755 #新建目录权限755
扩展
[name]:共享名称为database
comment = test:描述
**path = /home/test:共享目录为/home/test
public = no:关闭所有人可见
writable = yes:允许写入操作
valid users = user:可以访问的用户列表
write list = user:有写入权限的用户列表
# 启动smb服务
[root@localhost samba]# systemctl start smb
[root@localhost samba]# systemctl status smb
添加账户(添加的账户必须linux已经创建的)
直接添加用户test会导致失败
[root@localhost share]# smbpasswd -a test
Unknown parameter encountered: " map to guest"
Ignoring unknown parameter " map to guest"
New SMB password:
Retype new SMB password:
Failed to add entry for user test.
创建linux账户
[root@localhost share]# groupadd test -g 6000
[root@localhost share]# useradd test -u 6000 -g 6000 -s /sbin/nologin -d /dev/null
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
创建samba用户
[root@localhost share]# smbpasswd -a test
Unknown parameter encountered: " map to guest"
Ignoring unknown parameter " map to guest"
New SMB password:
Retype new SMB password:
Added user test.
[carnet] //访问路径 访问方式 ip地址+【】里面的名字
comment = network share
path = /carnet //linux系统实际路径
public = yes
writable = yes
printable = no
browseable = yes
valid users = smb,test1 //有权限访问的账户
write list = @smb //只有@smb组才有写权限
create mask = 755 //权限盐码
directory mask = 755
guest ok = no //匿名访问关闭
删除samba用户
[root@localhost samba]# smbpasswd -x test
Deleted user test.
客户端访问共享目录
在windows输入\\19.6.6.192
然后输入设置的用户名和密码就可以了,并且可以将连接的文件夹映射为网络驱动器,这样就可以直接操作了
授权
**解决办法 : **
windows中的控制面板->程序和功能->启用或关闭windows功能中勾选SMB 1.0/CIFS文件共享支持 。
方法二、
pdbedit
首先我们要知道,samba默认的认证方式是通过用户口令进行认证的,当然,若不考虑安全性,直接把验证方式改为share往下即可。
pdbedit命令是专门用来创建访问共享用户的,你以为系统中的用户就可以吗,辣怎么可能,那样岂不是所有的已有用户都可以访问共享了吗,那和无验证模式有什么区别呢?这种认证模式可以确保仅让特定用户访问资源,假如有三个部门,人事,财务,市场,这样可以创建三个目录,然后创建对应的访问用户,将各自的目录共享给各自部门的人。
使用pdbedit命令创建用户时要注意,首先,只有先建立账户信息数据库之后,才能使用用户口令认证模式。其次,samba服务的数据库要求账户必须在当前系统中已经存在,否则日后创建文件时将导致文件的权限属性混乱。
pdbedit使用
pdbedit -a username:新建Samba账户。
pdbedit -r username:修改Samba账户。
pdbedit -x username:删除Samba账户。
pdbedit -L:列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit -Lv:列出Samba用户列表详细信息。
小需求:wzq是财务部部长的账户,只允许他能写入文件,其余账户只能读取
1.创建测试用户wzq
[root@linus ~]# useradd wzq
[root@linus ~]# pdbedit -a wzq1
new password:
retype new password:
Failed to add entry for user caiwu1. #创建系统中不存在的用户,显示条目未能添加
[root@linus ~]# pdbedit -a wzq #创建已存在的用户
new password:
retype new password:
Unix username: wzq
NT username:
Account Flags: [U ]
User SID: S-1-5-21-1877094264-3563949321-3775828196-1000
Primary Group SID: S-1-5-21-1877094264-3563949321-3775828196-513
Full Name:
Home Directory: \\linus\wzq
HomeDir Drive:
Logon Script:
Profile Path: \\linus\wzq\profile
Domain: LINUS
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: 三, 06 2月 2036 23:06:39 CST
Kickoff time: 三, 06 2月 2036 23:06:39 CST
Password last set: 四, 26 3月 2020 02:29:08 CST
Password can change: 四, 26 3月 2020 02:29:08 CST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
2.创建测试目录/data,属主为wzq
# mkdir /data
# chown wzq:wzq /data
# chmod +777 /data/
3.修改samba的主配置文件,写入共享信息
.... #将下列配置写入到文件最后,但要注意排列,否则会报错
[test]
comment = test #描述
path = /test #共享目录位置
public = No #不支持来宾访问
read only = Yes #只读权限
valid users = wzq #可以访问用户,可以把财务部所有的组成员写入此项中
write list = wzq #有可写入权限的用户
4.重载配置,并创建测试文件。
# systemctl reload smb
# touch /test/test.txt
# chmod +777 /test/test.txt #为什么还要给文件设置权限?此文件为root用户创建,若不给予其权限,即使服务搭建没有问题,也无权限使用此文件
参考链接 :
centos7安装samba :
https://blog.csdn.net/liuyunshengsir/article/details/89518042
https://blog.csdn.net/learner198461/article/details/71106742?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.control
https://blog.csdn.net/qq_31041847/article/details/109772889
https://blog.csdn.net/luoyunjin/article/details/102628945?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-16.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-16.control
https://blog.csdn.net/qq_43620503/article/details/109540984?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.control
Linux下的文件传输:samba服务配置及访问
https://yunwei.blog.csdn.net/article/details/105093054