在文章的开始,希望各人关注公众号Lind-Learn,在这里会分享各类计算机技术的知识。
1. samba先容
在日常办公情况中,操作系统除了windows以外,另有linux大概UNIX。windows和linux大概UNIX之间共享文件是无法直接完成的,为了解析差别系统之间的文件共享,samba服务可以较好地解决差别系统平台之间的共享问题。
samba是在LINUX和UNIX系统上实现SMB协议的一个免费C/S软件,由服务器及客户端程序构成
SMB(Server Messages Block,信息服务块)是一种再局域网上共享文件和打印机的一种通讯协议,它为局域网内的差别计算机之间提供文件及打印机等泽园的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他。
2. samba部署
- # 安装软件包
- [root@Lind ~]# yum -y install samba samba-client
- # samba:客户端
- # samba-client:客户端提供了smbclient命令
- # 设置服务自启动
- [root@Lind ~]# systemctl enable smb nmb
- # 组成Samba运行的有两个服务,一个是SMB,另一个是NMB;SMB是Samba 的核心启动服务,主要负责建立 Linux Samba服务器与Samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问,只有SMB服务启动,才能实现文件的共享,监听139 TCP端口;而NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,如果NMB服务没有启动,就只能通过IP来访问共享文件,监听137和138 UDP端口
- # 注意这里nmb是依赖rpc(远程过程调用服务)服务的(一般默认是安装好的)
- # 开启服务
- [root@Lind ~]# systemctl start smb nmb
复制代码
- [root@Lind ~]# vim /etc/samba/smb.conf
- # See smb.conf.example for a more detailed config file or
- # read the smb.conf manpage.
- # Run 'testparm' to verify the config is correct after
- # you modified it.
- # 你可以参考更详细的示例文件 (smb.conf.example) 或阅读 smb.conf 的手册页。testparm 命令可以用来验证配置文件的正确性
- [global] # 这部分包含了全局设置,适用于所有Samba共享
- # 设置工作组名称为 "SAMBA",Windows系统中,同一个工作组中的计算机更容易互相发现。
- workgroup = SAMBA
-
- # 设置安全模式为“用户”,要求客户端在访问共享资源时提供用户名和密码。
- security = user
- # 安全模式有五种
- # 1. user(用户级安全)
- # 这是最常用的安全模式。用户必须提供有效的用户名和密码来访问共享资源。认证在Samba服务器上完成,适用于大多数工作组和域环境。
- # 2. share(共享及安全)
- # 用户不需要提供用户名,只需要提供访问共享资源的密码。这种模式主要用于不需要严格控制用户权限的简单环境。此模式在现代Samba版本中已经被废弃,不建议使用。
- # 3. domain(域级安全)
- # Samba服务器作为域成员加入到Windows NT域中,用户的认证由域控制器(PDC或BDC)进行。Samba将用户的认证请求转发到域控制器,适用于需要集成到现有Windows NT域的环境中。
- # 4. abs(Active Directory安全)
- # Samba服务器作为Active Directory域的成员,使用Kerberos进行认证。这种模式用于Samba服务器加入Active Directory域的场景,适合现代企业环境。
- # 5. server(服务及安全)
- # Samba将用户的认证请求转发到另一台Samba服务器或Windows服务器上。如果该服务器接受请求,那么用户就被认为是已认证的。这种模式也较少使用,在现代Samba配置中不建议使用。
-
- # 指定Samba使用 tdbsam 作为密码数据库,这是一种轻量级数据库格式,适用于存储用户认证信息。
- passdb backend = tdbsam
-
- # 启用CUPS打印系统的支持。
- printing = cups
-
- # 指定打印机能力文件名称为CUPS。CUPS会自动生成这个文件以列出可用的打印机。
- printcap name = cups
-
- # 自动加载在系统上配置的所有打印机。
- load printers = yes
-
- 将打印数据直接发送到打印机,而不进行格式转换。
- cups options = raw
- [homes]# 这个部分配置了用户的家庭目录共享。
- # 为共享提供描述性注释,说明它是家庭目录。
- comment = Home Directories
-
- # 仅允许当前登录用户访问自己的家庭目录。%S表示共享名(通常是用户名),%D%w%S是域控制器相关的参数。
- valid users = %S, %D%w%S
-
- # 这个共享不会显示在网络邻居中,用户需要知道路径才能访问。
- browseable = No
- # 共享的内容不是只读的,用户可以进行写入操作。
- read only = No
- # 继承文件系统中的访问控制列表(ACL)权限。
- inherit acls = Yes
- [printers]# 这部分配置了打印机共享。
- # 为打印机共享提供描述性注释。
- comment = All Printers
-
- # 打印机的临时文件目录。当文件被发送到打印机时,它们会临时存储在这个目录中。
- path = /var/tmp
-
- # 标记此共享为可打印的。
- printable = Yes
-
- # 设置新创建的打印文件的权限,使得只有文件所有者可以读写。
- # 第一位表示特殊权限位4 2 1(分别表示设置用户ID位,设置组ID位,粘粘滞位),后面的三位跟一般文件的权限一样
- create mask = 0600
-
- # 打印机共享不会显示在网络邻居中。
- browseable = No
- [print$]# 这部分配置了存储打印机驱动程序的共享。
- # 为此共享提供描述性注释,说明它是存储打印机驱动程序的地方。
- comment = Printer Drivers
-
- # 指定驱动程序存储的路径。
- path = /var/lib/samba/drivers
-
- # 仅允许 printadmin 组和 root 用户有写入权限。
- # 组前面加上@符
- write list = @printadmin,root
-
- # 强制所有文件的属组为 printadmin。
- force group = @printadmin
-
- # 设置新文件的权限,使得文件所有者和组成员可以读写,其他用户只读。
- create mask = 0664
-
- # 设置新目录的权限,使得所有者和组成员可以读写和执行,其他用户只读和执行。
- directory mask = 0775
复制代码 注:smb配置样例文件篇幅较长,相关解开释在文章尾部
3. samba文件共享
- [共享名]
- comment = 描述
- path = 共享目录绝对路径
- browseable = no|yes 是否允许浏览
- hosts allow = 允许哪些网段访问
- public = no|yes 类似于guest ok
- valid users = 允许哪些用户可以访问共享
- # 注:public和valid users不能同时使用,这样public没效果
- writeable = no|yes 是否开启所有人写权限
- write list = @组 用户 上述代码为NO,允许哪些用户可写
- readonly = no|yes 是否只读共享
- read list = @组 用户 指定只能读取该共享资源的用户和组
- vaild users 指定能够进入此资源的特定用户和组
- invalid users 指定不能够使用共享资源的用户和组
- read list 指定只能读取该共享资源的用户和组
- write list 指定能读取和写该共享资源的用户和组
- admin list 指定能管理该共享资源(包括读写和权限赋予等)的用户和组
- pulbic 指明该共享资源是否能给游客装好访问,这个开关有时候也叫guest ok,所以有的配置文件中guest ok = yes是一样的。
- hide dot files 知名是是不是像unix那样隐藏以"."号开头的文件
- create mode 指明新建立的文件的属性,一般是0755
- directory mode 指明新建立的目录的属性,一般是0755
- sync always 知名对该共享资源进行写操作后是否进行同步操作
- short preserve case 指明不管文件名大小写。
- preserve case 指明保持大小写
- case sensitive 指明是否对大小写敏感,一般选no,不然可能引起错误。
- mangle case 指明混合大小写。
- default case 指明缺省的文件名是全部大写还是小写。
- force user 前置把建立文件的属主是谁。防止相同权限的用户删除别人的东西
- wide links 指明是否允许共享外符号连接,比如共享资源里面有个连接指向非共享资源里面的文件或者目录,如果设置wide links = no将使该连接不可用。
- max connections = n 设定同时连接数是n
- delete readonly 指明能否删除共享资源李米娜已经定义为只读的文件。
复制代码
由于系统本地用户无法直接登录,必须samba用户才可以登录
创建samba的方法
smbpasswd下令先容
smbpasswd -改变用户的SMB口令
-a 添加用户 # smbpasswd -a lind
-x 删除用户 # smbpasswd -x lind
-d 禁用账户 # smbpasswd -d lind
-e 取消禁用 # smbpasswd -e lind
-n 清除暗码 # smbpasswd -n lind
- 新建文件夹/common
- 在server上配置SMB服务
- 您的SMB服务器必须是workgroup工作组的一个成员
- 共享/common目录 共享名必须为common
- 只有192.168.11.0网段内的客户端可以访问common共享
- common必须是可以浏览的
- 用户basim必须能够读共享中的内容,如果必要的话,验证暗码是lind
- [root@Lind samba]# vim /etc/samba/smb.conf
- # 添加内容
- [common]
- comment = test
- path = /common
- browseable = yes
- hosts allow = 192.168.11.0/24
- valid users = basim
- # 创建目录
- [root@Lind samba]# mkdir /common
- # 重启服务
- [root@Lind samba]# systemctl restart smb nmb
- [root@Lind /]# useradd basim
- [root@Lind /]# smbpasswd -a basim
复制代码 4. 客户端挂载共享
smbclient - 雷同FTP操作方式访问SMB/CIFFS服务器资源的客户端
-L 此选项允许你检察服务器上可以得到的服务资源
-U|–user=username[%password] 这个参数指定程序毗连时利用的用户名大概用户名和暗码,如果米欸有指定password,将提示用户输入/
-W|–workgroup=domain 设置用户名的SMB域。这个选项越过了smb.conf配置文件中的默认域
-N 不消询问暗码
- [root@Lind /]# mount -o username=basim,password=lind -t cifs //192.168.11.20/common /mnt/samba/
复制代码
- mount: 这是 Linux 和类 Unix 系统中用于挂载文件系统的下令。
- -o: 表示“options”,后面跟着挂载选项。
- username=basim: 指定挂载时利用的用户名为 basim。
- password=lind: 指定挂载时利用的暗码为 lind。请注意,直接在下令行中通报暗码并不安全,由于这可能会导致暗码被记录在汗青记录或被其他用户看到。
- -t cifs: 指定要挂载的文件系统范例为 CIFS (Common Internet File System),这是 Samba 利用的文件系统协议。
- //192.168.11.20/common: 这是远程 Samba 服务器的地址以及要挂载的共享名称。在这个例子中,服务器的 IP 地址是 192.168.11.20,共享名是 common。
- /mnt/samba/: 这是本地文件系统上的一个目录,即挂载点。挂载完成后,你就可以通过访问这个本地目录来访问远程共享中的文件和目录了。
综上所述,这条下令的作用是将位于 IP 地址 192.168.11.20 上的 Samba 服务器的 common 共享挂载到本地的 /mnt/samba/ 目录下,并且利用用户名 basim 和暗码 lind 举行身份验证。
unmount dir取消挂载
实现永久挂载:在/etc/fstab文件中增长挂载文件
附:smb配置样例文件
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |