“CentOS服务搭建-02-samba文件服务”的版本间的差异
Administrator(讨论 | 贡献) (→启动samba服务并设置自启动) |
Administrator(讨论 | 贡献) (→配置文件共享、用户、samba) |
||
第50行: | 第50行: | ||
#: force directory mode = 0777 | #: force directory mode = 0777 | ||
#: force create mode = 0777 | #: force create mode = 0777 | ||
− | + | ||
+ | =smb.conf说明:= | ||
* comment = Shared Directories # 共享文件目录描述 | * comment = Shared Directories # 共享文件目录描述 | ||
* path = /storage/shared/ # 共享文件目录 | * path = /storage/shared/ # 共享文件目录 | ||
第66行: | 第67行: | ||
## force directory mode = 0777 | ## force directory mode = 0777 | ||
## force create mode = 0777 | ## force create mode = 0777 | ||
+ | |||
+ | |||
+ | * [global] | ||
+ | # workgroup = WORKGROUP //这是工作组,可以添加自己的工作组,我用的是默认的WORKGROUP | ||
+ | # security = user | ||
+ | # map to guest = Bad User //这是samba 4.0版本以后必须设置为user用户,设置为share 然后用testparm检测smb.conf 会报错的 服务也启动不起来 | ||
+ | # log file = /var/log/samba/log.%m //log日志及路径 里面记载的用户的登录操作日志 | ||
+ | # max log size = 50 //日志文件存储的文件最大的大小 | ||
+ | # unix charset = UTF-8 //在Linux服务器上面的显示编码 如果不知道自己的编码 可以查看下自己的系统编码 | ||
+ | # display charset = UTF-8 //自己服务器上面的显示编码 一般都是和unix charset查到的一样 | ||
+ | # guest account = nobody //访问的用户范围 | ||
+ | # dos charset = cp936 //Windows端显示的编码 | ||
+ | # create mask = 777 //赋予权限 | ||
+ | # directory mask = 777 //赋予权限 | ||
+ | * [resource] //这个是Windows上显示的文件夹的名字(共享文件夹) | ||
+ | # comment = All Printers //这个是共享文件夹的说明 | ||
+ | # path = /home/resource //共享文件夹的路径 | ||
+ | # browseable = yes //是否让所有的使用者都看到这个项目 | ||
+ | # guest ok = yes //是否让来宾用户访问 | ||
+ | # writable = yes //是否为可以写入 | ||
+ | # read only = no //是否设置为只读 | ||
=用testparm检测配置文件的正确性,有可能会出现下面的错误= | =用testparm检测配置文件的正确性,有可能会出现下面的错误= |
2019年9月26日 (四) 23:29的版本
目录
安装并启动Samba
- yum -y install samba
- systemctl start smb.service
- 关闭安全防护
- vim /etc/sysconfig/selinux
- SELINUX=enforcing 改为 SELINUX=disabled # 关闭selinux
- systemctl disable firewalld.service # 关闭防火墙
- shutdown -r now # 重启使生效
- 注:
- 防火墙不关闭,所有节点无法进行挂载。也可以采用:防火墙放行TCP端口:139、445以及UDP端口:137、138。
- selinux不关闭,无法查看共享文件夹下的文件。
配置文件共享、用户、samba
- 创建共享目录:
- mkdir /share-jyc
- 创建用户组和用户:
- groupadd samba-jyc # samba-jyc组
- useradd -g samba-jyc share123 # samba-jyc 组下的用户 share123
- passwd share123 # share123 的密码设置,两次
- 添加samba文件共享用户
- smbpasswd -a share123 # 光添加系统账户还不够, 需要把已经存在的系统账户添加到samba中才可以访问共享目录
- smbpasswd的参数说明: -a: 添加 -x: 删除 -d: 禁用 -e: 启用
- 修改samba配置
- vi /etc/samba/smb.conf
- 内容修改为:
- [global]
- workgroup = JYCSAMBA
- security = user
- passdb backend = tdbsam
- printing = cups
- printcap name = cups
- load printers = yes
- cups options = raw
- [homes]
- comment = JYC Server-databackup share
- path = /home/sharejyc
- valid users = %S, %D%w%S
- browseable = yes
- read only = No
- inherit acls = Yes
- # 2019-09-26 增加
- writable = yes
- create mask = 0777
- directory mask = 0777
- force directory mode = 0777
- force create mode = 0777
smb.conf说明:
- comment = Shared Directories # 共享文件目录描述
- path = /storage/shared/ # 共享文件目录
- public = no # 是否允许guest访问
- admin users = admin # 指定管理用户
- valid users = @admin # 可访问的用户组、用户
- browseable = yes # 是否浏览权限,隐藏目录,但知道目录还是可以访问
- writable = yes # 是否可写权限
- secutity用来指定安全模式,user模式是需要账号密码来登录共享的
- valid users = @用户组,用来指定允许登录的用户组
- hosts allow用来指定开放的ip段,当前指定的是对192.168下的所有ip都开放
- 文件权限设置
- create mask = 0777
- directory mask = 0777
- force directory mode = 0777
- force create mode = 0777
- [global]
- workgroup = WORKGROUP //这是工作组,可以添加自己的工作组,我用的是默认的WORKGROUP
- security = user
- map to guest = Bad User //这是samba 4.0版本以后必须设置为user用户,设置为share 然后用testparm检测smb.conf 会报错的 服务也启动不起来
- log file = /var/log/samba/log.%m //log日志及路径 里面记载的用户的登录操作日志
- max log size = 50 //日志文件存储的文件最大的大小
- unix charset = UTF-8 //在Linux服务器上面的显示编码 如果不知道自己的编码 可以查看下自己的系统编码
- display charset = UTF-8 //自己服务器上面的显示编码 一般都是和unix charset查到的一样
- guest account = nobody //访问的用户范围
- dos charset = cp936 //Windows端显示的编码
- create mask = 777 //赋予权限
- directory mask = 777 //赋予权限
- [resource] //这个是Windows上显示的文件夹的名字(共享文件夹)
- comment = All Printers //这个是共享文件夹的说明
- path = /home/resource //共享文件夹的路径
- browseable = yes //是否让所有的使用者都看到这个项目
- guest ok = yes //是否让来宾用户访问
- writable = yes //是否为可以写入
- read only = no //是否设置为只读
用testparm检测配置文件的正确性,有可能会出现下面的错误
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
- 解决方法:编辑配置文件 vim /etc/security/limits.conf 在里面加入一行配置
- root - nofile 16384
- root指root用户 如果想都所有用户生效,把root替换为 * 即可!我是设置的 * 下面是配置文件内容
启动samba服务并设置自启动
- sudo systemctl start smb
- sudo systemctl enable smb.service # 设置开机启动
- sudo systemctl status smb
- testparm
防火墙允许samba
- firewall-cmd --zone=public --add-port=139/tcp --permanent
- firewall-cmd --zone=public --add-port=445/tcp --permanent
- firewall-cmd --zone=public --add-port=137/udp --permanent
- firewall-cmd --zone=public --add-port=138/udp --permanent
- firewall-cmd --permanent --zone=public --add-service=samba # samba服务允许通过防火墙
- firewall-cmd --reload
- systemctl restart firewalld.service
SELinux允许samba
- getsebool -a | grep samba # 查看samba状态
- setsebool -P samba_enable_home_dirs=1 # 赋予权限
- chcon -t samba_share_t /data/share/
客户端进行文件挂载
mkdir /share mount -t cifs //文件服务器ip/public /share -o "username=share,password=xxx"