300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > centos7 yum安装samba及管理

centos7 yum安装samba及管理

时间:2020-12-07 01:31:10

相关推荐

centos7 yum安装samba及管理

关闭SELINUX

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

setenforce 0

安装 smb

yum -y install samba samba-client

启动并设置我开机自运行

systemctl start smb nmb

systemctl enable smb nmb

防火墙 开启samba默认端口

firewall-cmd --permanent --add-service=samba

firewall-cmd --reload

查看samba版本号

smbd -V

添加访问用户

先创建操作系统用户

useradd -s /sbin/nologin user01

创建smb登录用户

smbpasswd -a user01

修改SMB配置文件

vi /etc/samba/smb.conf追加

[sharefile-user01]comment = Shared Directoriespath = /user01public = noadmin users = user01valid users = user01browseable = yeswritable = yescreate mask = 0777directory mask = 0777force directory mode = 0777force create mode = 0777

创建要共享的路径,这里的/user01

mkdir /user01

设置文件访问权限

chown -R 777 /user01

重启smb服务

systemctl restart smb nmb

windows测试访问

运行输入\\192.168.53.26

共享管理

列出用户列表pdbedit -L

列出用户详细信息的列表pdbedit -Lv

修改smb登录密码

smbpasswd user01

systemctl restart smb nmb

注:

restart了,如该重置密码用户正在访问,马上无法访问,需要注销一次系统,再次进入才有验证弹窗;如不restart,被重置密码的用户重置前已经登录,那依然可以继续访问,只有下一次登录才被阻止;该用户未登录,重置后,不重启,可用新密码登录。

添加smb用户,并允许访问上面创建的共享

一样的先创建操作系统用户 > 创建smb登录用户;

useradd -s /sbin/nologin user02 && smbpasswd -a user02

在/etc/samba/smb.conf 中的共享区的valid users 追加用户

valid users = @ user01 user02

只追加valid users仅可访问,无法写入,需admin users行也追加用户名(对该共享具有完全控制权限)

删除SMB用户

smbpasswd -x user01

systemctl restart smb nmb

这个时候/etc/passwd 还有存在用户,继续删除

userdel user01

关闭用户home目录的共享

当共享目录名为非用户名时,用户的home/user01“家目录” 也会被共享了,并可读写权限,这是不安全的,

关闭方式:

在/etc/samba/smb.conf 中将[homes]及其区间配置都注释了即可。

定义用户组访问权限

valid users和admin users都支持以添加组和用户方式,组为@后带组名表现形式,下面是操作流程:

groupadd ITuseradd IT001 -g IT -s /sbin/nologinuseradd IT002 -g IT -s /sbin/nologincat /etc/passwdsmbpasswd -a IT001cat /etc/samba/smb.conf | grep IT

valid users = @ IT user01 user02

systemctl restart smb nmb

即可使用IT组的用户IT001或IT002登录访问

如需黑名单一个组用户,添加

invalid users = IT002

禁用与恢复用户

禁用用户pdbedit -c '[D]' -u user01 | grep Flags

恢复用户pdbedit -c '[ ]' -u user01 | grep Flags

已登录用户,不会受到影响,需重启systemctl restart smb nmb

共享目录指定用户可见

需求:用户kevin登录后只能看到他有权限的共享目录,而其他用户登录也不能看到kevin的共享目录。

操作方式:

在/etc/samba下建立一个文本文件其名称为kevin.smb.conf

cat /etc/samba/kevin.smb.conf

[kevin]security = userpath = /data/kevinvalid users = @kevinread list = @kevinwrite list = @kevinwritable = yescreate mask = 0777directory mask = 0777

在/etc/samba/smb.conf文件中引用子配置文件

[global]区间中添加

config file = /etc/samba/%U.smb.conf

创建共享目录

mkdir -p /data/kevin

授权目录权限

chown kevin.kevin -R /data/kevin

新建用户kevin

useradd -s /sbin/nologin kevin && smbpasswd -a kevin

当以kevin的身份访问Samba服务器,只能看到共享目录kevin,其他在smb.conf中定义的共享资源都无法看到。

访问控制

允许/禁止来源地址客户端的访问

可在[global]全局或指定作用共享区间中添加

ip白名单hosts allow=192.168.53.0/255.255.255.0 EXCEPT 192.168.53.63

ip黑名单hosts deny=192.168.53.99/255.255.255.255

监听绑定设置

在[global]全局参数中添加

bind interfaces only = yes

如绑定网卡interfaces =eth0 #可以多个

如绑定网络地址interfaces = 192.168.53.26 #可以多个

修改通信端口smb ports = 4455

限制客户端访问连接数目

可在[global]全局或指定作用共享区间中添加

max connections = 0

0表示不限制,超出连接数目,则新的连接请求将被拒绝

设置无操作断开会话时间

deadtime = 10

隐藏点.文件

hide dot files = yes

隐藏指定文件/夹

hide files = /*.exe/*档案/

禁止上传类型文件,并带隐藏文件功能

veto files = /*.exe/*.rar/*.zip/

centos作客户端挂载SMB共享盘

安装Samba客户端软件

yum -y install cifs-utils

手动挂载

mount -t cifs -ousername=kevin,password=passwd,uid=0,gid=0 //192.168.53.26/kevin /mnt

mount.cifs-o username=kevin,password=passwd //192.168.53.26/kevin /mnt

注意mount.cifs指定挂载用的uid,gid无效

uid=0,gid=0指定用户,组去挂载,0 0为root,当为root时,其他用户进入共享可读不可写;

在已经挂载的samba存储内,chown更改归属和chomd修改权限都无作用

如需隐藏密码,不带password=即可手动输入

挂载免验证共享

mount.cifs //192.168.53.26/guestfile /mnt

Password for root@//192.168.53.26/guestfile:(直接回车)

查看挂载

df -hT

文件系统 类型 容量 已用 可用 已用% 挂载点/dev/mapper/centos-root xfs 37G 2.1G 35G 6% /devtmpfs devtmpfs 1.5G 0 1.5G 0% /devtmpfs tmpfs 1.5G 0 1.5G 0% /dev/shmtmpfs tmpfs 1.5G 9.5M 1.5G 1% /runtmpfs tmpfs 1.5G 0 1.5G 0% /sys/fs/cgroup/dev/sda1 xfs 1014M 155M 860M 16% /boottmpfs tmpfs 300M 0 300M 0% /run/user/0//192.168.53.26/kevin cifs 37G 2.1G 35G 6% /mnt

卸载挂载

umount //192.168.53.26/kevin

设置开机自动挂载

将用户名、密码、共享域的信息写入到一个认证文件中

vi /root/auth.smb

username=kevin

password=passwd

domain=SAMBA

更改密码文件权限

chmod 600 /root/auth.smb

将挂载信息写入/etc/fstab,实现开机挂载

//192.168.53.26/kevin /mnt cifs credentials=/root/auth.smb 0 0

测试挂载是否成功,无报错即成功

mount -a

挂载非445端口的smb

mount.cifs -o username=kevin,password=kevin,port=4455 //192.168.53.26/kevin /mnt

以只读方式挂载

mount.cifs -o username=kevin,password=kevin--ro //192.168.53.26/kevin /mnt

创建win免登录访问的共享

[global]全局参数中

security = user下一行添加

map to guest = Bad User

再新建guest访问的区间

[guestfile]comment=Shared guest Dirpath=/guestfilebrowseable=yeswritable=yesguest ok=yescreate mask = 0775directory mask = 0775

创建目录与更改目录权限

mkdir /guestfile

chown -R nobody:nobody /guestfile

systemctl restart smb nmb

win免验证直接访问guestfil成功,点击其他需验证的共享才跳验证窗口

日志

[global]全局参数中添加

log file = /var/log/samba/log.%m

log level=3#等级越大,记录内容越多

日志文件默认存放/var/log/samba/中,以客户端计算器名字或ip命名的文件

查看登录成功的记录

cat log.PC8 | grep 'connect to service'

pc8 (ipv4:192.168.53.99:63047) connect to service sharefile-user01 initially as user user01 (uid=0, gid=1000) (pid 12105)

查看登录失败的记录

cat log.PC8 | grep 'request_error_ex'

查看操作文件的记录

cat log.z97esx--f | grep 123.doc

在windows连接非445端口smb

因win默认也固定只访问TCP445为目标,可本机或其他机器,起一个端口转发服务:如本机监听445转发远端的4455(太多方式了,不细说了)访问\\127.0.0.1即可。Android可使用“FX文件管理器8.0及其以上版本”。

案例参数说明

[kevin]# 自定义共享名comment = Home Directories# 描述符,是给系统管理员看的path = /home/kevin# 共享的路径public = yes# 是否公开,也就是是否能在网上邻居看到该共享browseable = yes# 共享的目录是否让所有人可见writable = yes# 是否可写guest ok = no# 是否拒绝匿名访问,仅当安全级别为 share 时才生效workgroup = WORKGROUP# 工作组,要设置成跟 Windows 的工作组一致server string = Samba Server Version %v # 其他 Linux 主机查看共享时的提示符netbios name = MYSERVER # 用于在 Windows 网上邻居上显示的主机名hosts allow = 127. 192.168.12. 192.168.13. # 指定允许访问 samba 服务器的主机security = share # 定义安全级别log file = /var/log/samba/log.%m # 定义日志文件,每个访问的主机会产生独立的日志文件,%m 是客户端主机名max log size = 50# 定义单个日志的最大容量(KB)passdb backend = tdbsam# 用户的存储方式,smbpasswd表示明文存储,tdbsam 表示密文存储deadtime = 10# 客户端在10分钟内没有打开任何 Samba 资源,服务器将自动关闭会话display charset = UTF8# 设置显示的字符集max connections = 0 # 设置最大连接数,0表示无限制,如果超过最大连接数则拒绝连接guest account = nobody # 设置匿名账户为nobodyload printers = yes# 是否在启动 Samba 时就共享打印机cups options = raw# 设置打印机使用的方式valid users = user1 user2user3 # 指定哪些用户可访问,如不指定则所有用户都可访问invalid users = user1 user2 # 指定哪些用户不可以访问create mask = 0775 # 客户端上传文件的默认权限directory mask = 0775 # 客户端创建目录的默认权限write list = user1 user2 user3 # 设置可对文件进行写操作的用户admin users = user1 # 设置共享目录的管理员,具有完全权限

smbclient

smbclient主要用在Linux访问SMB共享文件,实现文件的传输,也方便应用于脚本运作。

安装

yum install -y samba-client

列出目标服务器的共享目录

smbclient -L //192.168.53.26 -U user01%user01

连接进入共享目录

[root@localhost ~]#smbclient //192.168.53.26/kevin -U kevin%passwd

smb: \> ls

查看共享目录下的文件

smbclient -c "ls" //192.168.53.26/kevin -U kevin%passwd

在共享目录创建文件

smbclient -c "mkdir $(date "+%Y%m%d%H%M")" //192.168.53.26/kevin -U kevin%passwd

下载文件

smbclient -c "get a.exe" //192.168.53.26/kevin -U kevin%passwd

上传文件

smbclient -c "put a.exe" //192.168.53.26/kevin -U kevin%passwd

注意:下载上传是覆盖目标/合并目录,(put a.exe a.exe1)是上传并重命名批量上传(多个单文件用,批量prom)

smbclient -c "prom; mput a.exe b.exe" //192.168.53.26/kevin -U kevin%passwd

批量命令mget和mput

批量下载 [不含递归]

smbclient -c "prom;mget* " //192.168.53.26/kevin -U kevin%passwd

批量上传[含递归文件,递归用recurse ON]

smbclient -c "prom;recurse ON; mput*" //192.168.53.26/kevin -U kevin%passwd

批量下载[含递归文件]

smbclient -c "prom;recurse ON; mget*" //192.168.53.26/kevin -U kevin%passwd

批量下载指定目录

smbclient -c "prom;recurse ON; cd 2010/; mget *" //192.168.53.26/kevin -U kevin%passwd

批量上传到共享中的目录

smbclient -c "prom; cd 2010;mput *" //192.168.53.26/kevin -U kevin%passwd

批量上传到共享以今天日期的文件夹

smbclient -c "prom; mkdir $(date "+%Y%m%d");cd $(date "+%Y%m%d");mput *" //192.168.53.26/kevin -U kevin%passwd

链接非默认端口

smbclient -p 4455 -c "ls" //192.168.53.26/kevin -U kevin%passwd

参看文献

Samba服务的配置总结 - 散尽浮华 - 博客园

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。