Linux服务之Samba服务篇

Samba服务 桑巴Smb是基于cs架构

作用:用于跨平台进行文件共享

优点:兼容性好,较为安全(具备身份验证)

缺点:仅限内网环境使用

应用:一般在办公环境下使用

rz 也是一种可以在Windows和Linux操作系统之间进行文件共享的命令,只不过传输文件较小。

一、实现单用户共享文件

步骤:

1、安装

# yum -y install samba

2、配置(爱配不配)(默认可用,不需要配置)

# vim /etc/samba/smb.conf

3、启动

第一次启动# systemctl start smb 

修改配置文件后重启服务# systemctl restart smb

3.5、添加用户

useradd USERNAME

smbpasswd -a USERNAME

4.1windows访问

win+R打开运行窗口,输入两个反斜线加上samba服务器的地址。输入你的用户名和密码即可

4.2、挂载(Linux系统之间)

# mount -t cifs -o username=USERNAME,password=PASSWORD //ServerIP/ShareDIR /LocalDIR

5、测试

在Windows系统下删除远程连接:

net use * /delete 

扩展:

如需实现开机自动挂载,需要修改/etc/fstab并添加:

 //ServerIP/ShareDIR/MountDIRcifsusername=USERNAME,password=PASSWORD00

二、实现多用户共享文件

1、配置相关的配置文件

# yum /etc/samba/smb.conf

配置文件内容:

[nidaye]               #文件共享访问用户看到的目录名称

              comment = abcdef            #共享目录描述,可以随意填写

              path = /nimei              #共享目录(本机实际目录名称)路径,需要绝对路径

              write list = a b c d             #可写入的用户名单,多个用户使用空格隔开

              read only = yes/no             #是否只读

              writeable = yes/no            #是否可写

             valid users = A B C D              #可访问的用户,多个用户使用空格隔开

              browseable = yes/no         #(浏览,阅读)是否可显

              directory mask = 0775            #创建目录默认权限

              create mask = 0664           #创建文件默认权限

              guest ok = yes/no              #是否(不)需要二次验证(yes为不需要)

              public = yes/no           #是否(不)需要二次验证(yes为不需要)

2smbclient可以查看USERNAME的所共享的目录或文件

smbclient -U USERNAME -L 服务端IP地址

                     --user             --list  

三、创建Samba服务的第二种方法

1、下载安装

2、修改配置文件

vim /etc/samba/smb.conf 

[ren]   
        path = /ren
        public = yes
         read only = no
3、重启Samba服务

systemctl restart smb

4、创建普通用户及Samba用户 

useradd ryz

pdbedit -a -u ryz 

-a -create 创建Samba用户

-u -user=USER 使用已有的用户名 

 5、给共享文件的其他人增加读写权限

 chmod -R a+w /ren

 6、在Windows系统查看共享文件 

按下win+R进入运行界面,输入:\192.168.11.3 

 7、映射网络驱动器 

在windows系统中进入Samba共享文件夹后,右击文件夹,选择“映射网络驱动器”,确定;这样的话,就可以在“我的电脑”下的“网络位置”找到该共享目录,以后访问的话就不用在运行界面输入相关命令了。

遇到的问题:

1、挂载时遇到以下问题导致挂载不上 

mount: //192.168.11.3/ryz 写保护,将以只读方式挂载

mount: 无法以只读方式挂载 //192.168.11.3/ryz

2、解决办法:

# mount -o remount,rw /

可以参考mount相关知识:

mount 命令  [-t 文件系统] [-L 卷标名] [-o 特殊选项] 设备文件名 挂载点

       -l  查询系统中已经挂载的设备,-l 会显示卷标

       -a  依据配置文件/etc/fstab的内容,自动挂载

       -t  系统文件,加入系统类型指定挂载类型,可以ext3ext4 iso9660等系统文件

       -L  卷标名:挂载指定分区,而不是设备文件名挂载

       -o  特殊选择:可以指定挂载额外选项

       atime/noatime 更新访问时间/不更新访问时间。访问分区时,是否更新文件的访问时间,默认更新

       async/sync    异步/同步 默认异步

       auto/noauto   自动/手动  mount -a命令执行时,是否会自动安装/etc/fstab 文件内容挂载,默认自动

       defaults      定义默认值,相当于rwsuiddevexecautonouserasync这七个选择

       exec/noexec   执行/不执行,设定师傅允许文件系统中执行可执行文件,默认是exec允许

       remount       重新挂载已经挂载的文件系统,一般用于修改特殊权限

       rw/ro         读写/只读,文件系统挂载时,是否有读写的权限,默认rw

       suid/nosuid   具有/不具有SUID权限,设定文件系统是否具有SUID权限,默认具有

       user/nouser   允许/不允许普通用户挂载,设定文件系统是否允许普通用户挂载,默认不允许,只有root可以挂载分区

       usrquata      写入代表文件系统支持用户磁盘配额,默认不支持

       grpquata      写入代表文件系统支持组磁盘配额,默认不允许

 eg mount -o  remount,noexec /home   /home目录下不能执行可执行文件

拓展:两种防火墙的关闭方式

1、关闭firewalld防火墙

systemctl status firewalld 查看状态

systemctl stop firewalld 临时关闭

systemctl disable firewalld 永久关闭

2、关闭selinux防火墙

getenforce 查询防火墙的状态:

enforcing(强制杀死) permissive(警告) disabled(关闭防火墙)

setenforce 0 临时关闭

配置文件:

/etc/selinux/config

SELINUX=disabled #永久关闭

reboot 重启系统生效

原文地址:https://www.cnblogs.com/renyz/p/11232089.html