Samba共享服务搭建

服务端安装 yum -y install samba
客户端安装 yum -y install cifs-utils  samba-client
配置文件参数:
 [global]
         workgroup = MYGROUP
         server string = Samba Server Version %v
         log file = /var/log/samba/log.%m
         max log size = 50
         
         security = user    #设置认证方式为user认证
         passdb backend = smbpasswd
         smb passwd file = /etc/samba/smbpasswd
         username map = /etc/samba/smbusers
         ntlm auth = yes      #配置ntlm兼容性(XP无法访问需要开启此项)
         load printers = yes
         cups options = raw
 [public]
         comment = public files server
         path = /smb    #目共享录路径
         write list = user,user1    #设置可以写入的用户  
         valid users = @xues,@user    #设置可以访问的组
         create mask = 0664
         directory mask = 0775    

 

设置访问用户
valid users = 用户名,用户名,... [多个用户用,号隔开]
valid users = @组名 [设置一个组]
 
设置目录读写
writable = yes #设置目录是否可读写
write list = 用户名 #设置指定用户可读写 [设置此项需要把上一项(writable = yes)注释掉,否则不起作用]
 
控制访问源
hosts allow #定义允许访问的客户端
hosts deny #定义禁止访问的客户端
 
举例:
hosts allow = 192.168.1. #允许192.168.1.0/24网段访问
hosts allow = 192.168.1. EXCEPT 192.168.1.5 #排除特定地址
 
账号映射:

1 passdb backend = smbpasswd
2 smb passwd file = /etc/samba/smbpasswd
3 username map = /etc/samba/smbusers        #smb.conf添加一条配置文件, 指定到smbusers这个文件
4 [root@VM ~] useradd -M -s /sbin/nologin xues        #添加一个xues系统用户,可以不创建家目录
5 [root@VM ~] smbpasswd -a xues         #创建smb账户[smb账户必须是系统账户]
6 [root@VM ~]  vi /etc/samba/smbusers  #编辑 /etc/samba/smbusers配置文件,给xues用户加几个映射账户 xue1 xue2 xue3 ...,映射到刚才创建的系统用户xues
 
 
1,查看共享文件夹
 
2,挂载共享文件夹
1,使用凭证文件挂载,避免密码泄露,提高安全性(推荐)
mount.cifs -o credentials=/root/.smbpasswd,iocharset=utf8 //10.1.1.2/media/ /mnt/media
创建一个凭证文件,例如/root/.smbpasswd 格式如下
username=<用户名>
password=<密码>
修改权限 chmod 600 /root/.smbpasswd

2,也可以交互式挂载,挂载的过程中输入密码
mount.cifs -o iocharset=utf8,username=123 //10.1.1.2/media/ /mnt/media

3,带上密码挂载
mount.cifs -o iocharset=utf8,username=123,password=123 //10.1.1.2/media/ /mnt/media

 

挂载samba共享遇到mount error(13): Permission denied的解决方法
在挂载命令里添加 sec=ntlmssp
  
3、取消挂载
umount -l /mnt
 
挂载Samba磁盘时隐藏用户名和密码

要在挂载Samba磁盘时隐藏用户名和密码,可以使用credentials文件来存储凭据,并修改权限以防止其他用户访问。下面是一些步骤来实现此目的:

  1. 创建一个新文件,用于保存用户名和密码。可以使用以下命令创建一个空的credentials文件:
touch ~/.smbcredentials
  1. 将用户名和密码以以下格式添加到credentials文件中:
username=<your_username>
password=<your_password>

确保用你的实际用户名和密码替换<your_username><your_password>

  1. 使用以下命令修改credentials文件的权限,仅允许当前用户读取:
chmod 600 ~/.smbcredentials
  1. 打开用于挂载Samba磁盘的命令中的相关选项。在命令中使用credentials选项和指向credentials文件的路径:
mount -t cifs //<server_address>/<share_name> <mount_point> -o credentials=~/.smbcredentials

其中,<server_address>是Samba服务器地址,<share_name>是共享的名称,<mount_point>是要挂载到的本地目录。

通过这样的方法,用户名和密码将被存储在一个只有当前用户可以读取的文件中,而不会明文出现在挂载命令中,从而实现了隐藏用户名和密码的效果。

 
简单配置,满足本地账号访问:
1,配置文件使用user方式访问,注销掉 passdb backend选项
[global]
    workgroup = SAMBA
    security = user

[public]  #这个名字是访问smb共享文件夹所看到的名称
    path = /mnt/FTP
    valid users = admin
    write list = admin
    hosts allow = 10.10.2.100  #只允许指定IP访问
    create mask = 0644
    directory mask = 0775

 

2,创建本地登录用户

[root@vm7 ~]# useradd -M -s /sbin/nologin admin  #添加本地账号,禁止创建Home目录,禁止登录控制台
[root@vm7 ~]# smbpasswd -a admin    #将admin用户设置为smb账号
New SMB password:  #配置admin账号访问smb文件夹的密码
Retype new SMB password:
Added user admin.

 

如果发现windows上访问smb共享创建的文件权限和linux上指定的create mask权限不一致,请进行如下配置

create mode = 0644
force create mode = 0644
directory mode = 0755
force directory mode = 0755

参数的含意:

create mode :这个配置定义新创建文件的属性.samba在新建文件时,会把dos文件的权限映射成对应的unix权限,在映射后所得的权限,会与这个参数所定义的值进行与操作.

force create mode:进行或操作,这样就得到最终linux下的文件权限.

directory mode:这个配置与create mode参数类似,只是它是应用在新创建的目录上.

force directory mode:进行或操作,这样就得到最终linux下的目录权限

如上配置所建的文件的权限都是644,文件夹755

 

如果XP系统不能访问samba:

从samba 4.5开始,ntlm auth参数默认值由“yes”变为“no”。导致默认情况下使用NTLM级别LAN Manager身份验证的客户端不允许登录Samba服务器,受影响的客户端包括Windows XP、Windows2003等。

解决方法(任选一种都可解决):
1. Samba服务器端smb.conf配置文件中添加“ntlm auth = yes”后重启smb服务。
2. Windows XP客户端修改本地安全设置、安全选项、“网络安全:LAN Manager身份验证级别”的值为“仅发送 NTLMv2响应”。

 

对没有访问权限的用户隐藏文件夹 

1,配置完成以后cp一份配置文件

cp -p /etc/samba/smb.conf /etc/samba/user.smb.conf (user为用户名)

2,编辑user.smb.conf,在需要对该用户隐藏的文件夹配置里加入 browseable = no

[glbal]
    workgroup = SAMBA
    security = user

#   passdb backend = tdbsam

    printing = cups
    printcap name = cups
    load printers = yes
    cups options = raw


[Movie]
    browseable = no
    path = /mnt/Movie
    valid users = ftpuser,user
    write list = ftpuser
    hosts allow = 10.10.2.0/24
    create mask = 0750
    directory mask = 0750

[FTP]
    browseable = no
    path = /mnt/FTP
    valid users = ftpuser
    write list = ftpuser
    hosts allow = 10.10.2.100
    create mask = 0750
    directory mask = 0750
user.smb.conf

 

3,在主目录设置,使独立配置文件生效

[glbal]
    workgroup = SAMBA
    security = user

#   passdb backend = tdbsam

    printing = cups
    printcap name = cups
    load printers = yes
    cups options = raw

#加入如下两条代码,使其能调用独立配置文件
include = /etc/samba/%U.smb.conf
include = /etc/samba/%G.smb.conf

 

testparm命令

Linux testparm命令用于测试Samba的设置是否正确无误。

[manage@FTP log]$ testparm
Load smb config files from /etc/samba/smb.conf
Global parameter workgroup found in service section!
Global parameter security found in service section!
Global parameter printcap name found in service section!
Global parameter load printers found in service section!
WARNING: No path in service glbal - making it unavailable!
NOTE: Service glbal is flagged unavailable.
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

 

 SELinux配置
设置SELinux服务与策略,使其允许通过Samba服务程序访问普通用户家目录。执行getsebool命令,筛选出所有与Samba服务程序相关的SELinux域策略,根据策略的名称(和经验)选择出正确的策略条目进行开启即可:
[root@linuxprobe ~]# getsebool -a | grep samba
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
use_samba_home_dirs --> off
virt_sandbox_use_samba --> off
virt_use_samba --> off
[root@linuxprobe ~]# setsebool -P samba_enable_home_dirs on

posted @ 2020-10-14 22:15  局域网外  阅读(841)  评论(0编辑  收藏  举报