“CentOS服务搭建-02-samba文件服务”的版本间的差异
(→smb.conf说明:) |
|||
第2行: | 第2行: | ||
=安装并启动Samba= | =安装并启动Samba= | ||
− | + | * 安装samba | |
− | + | <pre> | |
− | + | yum -y install samba | |
− | + | systemctl start smb.service | |
− | + | </pre> | |
− | + | * 关闭安全防护 | |
− | + | <pre> | |
− | + | vim /etc/sysconfig/selinux | |
− | + | SELINUX=enforcing 改为 SELINUX=disabled # 关闭selinux | |
− | + | systemctl disable firewalld.service # 关闭防火墙 | |
+ | shutdown -r now # 重启使生效 | ||
+ | </pre> | ||
+ | * 注: | ||
+ | ** 防火墙不关闭,所有节点无法进行挂载。也可以采用:防火墙放行TCP端口:139、445以及UDP端口:137、138。 | ||
+ | ** selinux不关闭,无法查看共享文件夹下的文件。 | ||
=配置文件共享、用户、samba= | =配置文件共享、用户、samba= | ||
− | + | * 创建共享目录: | |
− | + | <pre> | |
− | + | mkdir /share-jyc | |
− | + | </pre> | |
− | + | * 创建用户组和用户: | |
− | + | <pre> | |
− | + | groupadd samba-jyc # samba-jyc组 | |
− | + | useradd -g samba-jyc user123 # samba-jyc 组下的用户 user123 | |
− | + | passwd share123 # user123 的密码设置,两次 | |
− | + | </pre> | |
− | + | * 添加samba文件的共享用户 | |
− | + | ** smbpasswd -a user123 # 系统账户以外添加samba账户,才可以访问共享目录 // 参数说明: -a: 添加 -x: 删除 -d: 禁用 -e: 启用 | |
− | + | ** 对于共享目录需要使用chown 添加文件夹的用户权限,比如: chown user123:samba-jyc share-jyc # 给samba-jyc组的user123用户添加权限到share-jyc文件夹 | |
− | + | * 修改samba配置 | |
− | + | <pre> | |
− | + | vi /etc/samba/smb.conf | |
− | + | </pre> | |
− | + | * 内容修改为: | |
− | + | <pre> | |
− | + | [global] | |
− | + | workgroup = JYCSAMBA | |
− | + | security = user # smb4.0开始使用 | |
− | + | passdb backend = tdbsam | |
− | + | printing = cups | |
− | + | printcap name = cups | |
− | + | load printers = yes | |
− | + | cups options = raw | |
− | + | [homes] # 自定义,windows用户看到的文件夹名称 | |
− | + | comment = JYC Server-databackup share # 自定义,windows用户看到的文件夹描述 | |
− | + | path = /home/sharejyc | |
− | + | valid users = %S, %D%w%S | |
− | + | browseable = yes | |
+ | read only = No | ||
+ | inherit acls = Yes | ||
+ | writable = yes | ||
+ | create mask = 0777 | ||
+ | directory mask = 0777 | ||
+ | force directory mode = 0777 # 未使用 | ||
+ | force create mode = 0777 # 未使用 | ||
+ | </pre> | ||
− | =smb.conf说明= | + | ==smb.conf说明== |
* public = no # 是否允许guest访问 | * public = no # 是否允许guest访问 | ||
* admin users = admin # 指定管理用户 | * admin users = admin # 指定管理用户 | ||
第55行: | 第68行: | ||
* hosts allow用来指定开放的ip段,当前指定的是对192.168下的所有ip都开放 | * hosts allow用来指定开放的ip段,当前指定的是对192.168下的所有ip都开放 | ||
* 文件权限设置 | * 文件权限设置 | ||
− | + | <pre> | |
− | + | create mask = 0777 | |
− | + | directory mask = 0777 | |
− | + | force directory mode = 0777 | |
+ | force create mode = 0777 | ||
+ | </pre> | ||
− | + | <pre> | |
− | + | [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 //是否设置为只读 | ||
+ | </pre> | ||
=用testparm检测配置文件的正确性,有可能会出现下面的错误= | =用testparm检测配置文件的正确性,有可能会出现下面的错误= | ||
− | + | <pre> rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) </pre> | |
− | + | * 解决方法:编辑配置文件 vim /etc/security/limits.conf 在里面加入一行配置 | |
− | + | <pre>root -nofile 16384</pre> | |
− | + | * root指root用户。如果想都所有用户生效,把root替换为“*”即可!我是设置的“*”。 | |
=启动samba服务并设置自启动= | =启动samba服务并设置自启动= | ||
− | + | <pre> | |
− | + | sudo systemctl start smb | |
− | + | sudo systemctl enable smb.service # 设置开机启动 | |
− | + | sudo systemctl status smb | |
+ | testparm | ||
+ | </pre> | ||
=防火墙允许samba= | =防火墙允许samba= | ||
− | + | <pre> | |
− | + | 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 | ||
+ | </pre> | ||
=SELinux允许samba= | =SELinux允许samba= | ||
− | + | <pre> | |
− | + | getsebool -a | grep samba # 查看samba状态 | |
− | + | setsebool -P samba_enable_home_dirs=1 # 赋予权限 | |
+ | chcon -t samba_share_t /data/share/ | ||
+ | </pre> | ||
=客户端进行文件挂载= | =客户端进行文件挂载= | ||
+ | <pre> | ||
mkdir /share | mkdir /share | ||
mount -t cifs //文件服务器ip/public /share -o "username=share,password=xxx" | mount -t cifs //文件服务器ip/public /share -o "username=share,password=xxx" | ||
+ | </pre> | ||
=Windows下更换帐户登陆samba= | =Windows下更换帐户登陆samba= | ||
− | + | <pre> | |
+ | net use \\192.168.1.102\IPC$ /delete # 删除上一次建立的连接 | ||
+ | </pre> |
2020年12月23日 (三) 10:48的版本
目录
安装并启动Samba
- 安装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 user123 # samba-jyc 组下的用户 user123 passwd share123 # user123 的密码设置,两次
- 添加samba文件的共享用户
- smbpasswd -a user123 # 系统账户以外添加samba账户,才可以访问共享目录 // 参数说明: -a: 添加 -x: 删除 -d: 禁用 -e: 启用
- 对于共享目录需要使用chown 添加文件夹的用户权限,比如: chown user123:samba-jyc share-jyc # 给samba-jyc组的user123用户添加权限到share-jyc文件夹
- 修改samba配置
vi /etc/samba/smb.conf
- 内容修改为:
[global] workgroup = JYCSAMBA security = user # smb4.0开始使用 passdb backend = tdbsam printing = cups printcap name = cups load printers = yes cups options = raw [homes] # 自定义,windows用户看到的文件夹名称 comment = JYC Server-databackup share # 自定义,windows用户看到的文件夹描述 path = /home/sharejyc valid users = %S, %D%w%S browseable = yes read only = No inherit acls = Yes writable = yes create mask = 0777 directory mask = 0777 force directory mode = 0777 # 未使用 force create mode = 0777 # 未使用
smb.conf说明
- public = no # 是否允许guest访问
- admin users = admin # 指定管理用户
- valid users = @admin # 可访问的用户组、用户
- 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"
Windows下更换帐户登陆samba
net use \\192.168.1.102\IPC$ /delete # 删除上一次建立的连接