Samba 服务的安装和简单配置
文章目录
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
1 配置本地yum源
1.1 删除原有的repo文件
[root@samba ~]# cd /etc/yum.repos.d/ [root@samba yum.repos.d]# rm -rf *
1.2 编写新的repo文件
[root@samba yum.repos.d]# vi yum.repo [localrepo] name=localrepo baseurl=file:///mnt enabled=1 gpgcheck=0
1.3 挂载光盘并设置永久挂载
[root@samba yum.repos.d]# mount /dev/cdrom /mnt/ mount: /dev/sr0 写保护,将以只读方式挂载 [root@samba yum.repos.d]# vi /etc/fstab /dev/cdrom /mnt iso9660 defaults 0 0 [root@samba yum.repos.d]# mount -a
1.4 验证本地yum源是否可用
[root@samba yum.repos.d]# yum makecache 已加载插件:fastestmirror Loading mirror speeds from cached hostfile localrepo | 3.6 kB 00:00:00 (1/4): localrepo/group_gz | 153 kB 00:00:00 (2/4): localrepo/primary_db | 3.3 MB 00:00:00 (3/4): localrepo/filelists_db | 3.3 MB 00:00:00 (4/4): localrepo/other_db | 1.3 MB 00:00:00 元数据缓存已建立 [root@samba yum.repos.d]# yum -y install vim net-tools bash-completion
2 设置主机名映射
2.1 查看主机名
[root@samba yum.repos.d]# hostname samba
2.2 查看ip地址
[root@samba yum.repos.d]# ip a s 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:34:8a:6b brd ff:ff:ff:ff:ff:ff inet 192.168.3.10/24 brd 192.168.3.255 scope global noprefixroute ens33 valid_lft forever preferred_lft forever inet6 fe80::ad73:2b66:c628:688e/64 scope link noprefixroute valid_lft forever preferred_lft forever
2.3 在/etc/hosts文件最后添加主机名映射
[root@samba yum.repos.d]# vim /etc/hosts 192.168.3.10 samba
3 设置selinux
3.1 修改selinux中默认运行模式为禁止
[root@samba yum.repos.d]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
3.2 设置临时运行模式宽松
[root@samba yum.repos.d]# setenforce 0 [root@samba yum.repos.d]# getenforce Permissive
4 关闭防火墙
[root@samba yum.repos.d]# systemctl disable firewalld --now Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [root@samba yum.repos.d]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1)
5 安装samba
5.1 安装samba
[root@samba yum.repos.d]# yum -y install samba
5.2 设置samba开机自启
[root@samba yum.repos.d]# systemctl enable smb --now Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service. [root@samba yum.repos.d]# systemctl status smb ● smb.service - Samba SMB Daemon Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled) Active: active (running) since 二 2024-01-30 23:31:36 CST; 54min ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 23270 (smbd) Status: "smbd: ready to serve connections..." CGroup: /system.slice/smb.service ├─23270 /usr/sbin/smbd --foreground --no-process-group ├─23272 /usr/sbin/smbd --foreground --no-process-group ├─23273 /usr/sbin/smbd --foreground --no-process-group └─23274 /usr/sbin/smbd --foreground --no-process-group
5.3 查看samba服务所使用的端口为139和445
[root@samba yum.repos.d]# netstat -nplt | grep smb tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 23270/smbd tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 23270/smbd tcp6 0 0 :::139 :::* LISTEN 23270/smbd tcp6 0 0 :::445 :::* LISTEN 23270/smbd
6 配置免账户密码的访客访问
6.1 在samba的配置文件smb.conf中添加下面的内容
[root@samba yum.repos.d]# vim /etc/samba/smb.conf 9 map to guest = bad user
6.2 并且在配置文件最后添加如下内容
[guest] #共享文件名称(也就是客户端访问时可以看到的那个名字) comment = this is guest #共享文件夹的描述 path = /share/guest #共享文件夹路径 public = yes #是否允许guest账户访问 writable = yes #是否允许guest账户访问 directory mask = 0777 #默认创建目录权限 create mask = 0777 #默认创建文件权限 browseable = yes #该指定共享目录可浏览 available = yes #该指定共享资源可使用
6.3 创建共享文件夹及测试文件
[root@samba yum.repos.d]# mkdir /guest [root@samba yum.repos.d]# cd /guest [root@samba guest]# echo 'hello\n' > 1.txt [root@samba guest]# mkdir 2 [root@samba /]# cd .. [root@samba /]# chmod -R 777 /guest [root@samba /]# ll /guest/ 总用量 4 -rwxrwxrwx 1 root root 8 1月 31 16:26 1.txt drwxrwxrwx 2 root root 6 1月 31 16:26 2
6.4 重启samba服务
[root@samba yum.repos.d]# systemctl restart smb.service
6.5 在物理机中使用 win+R 调出运行窗口,按照图片输入samba服务器ip地址和共享文件夹名
7 配置samba账户密码登录访问
7.1 创建登录samba服务的用户组
[root@samba /]# groupadd lisi
7.2 创建临时用户,设置不允许登录,并将用户加入刚刚创建的组
[root@samba /]# useradd -M lisi -s /sbin/nologin -g lisi [root@samba /]# id lisi uid=1001(lisi) gid=1001(lisi) 组=1001(lisi)
7.3 创建samba用户并设置密码
[root@samba /]# smbpasswd -a lisi New SMB password: Retype new SMB password: Added user lisi.
7.4 将用户添加到samba数据库中
pdbedit 参数说明
-a, --create 新建samba用户
-r, --modify 修改samba用户
-x, --delete 删除samba用户
-L, --list 列出全部samba用户,读取passdb.tdb数据库文件
-v, --verbose 显示详细信息
-c, --account-control=STRING 账户控制值
-w, --smbpasswd-style 以smbpasswd格式输出
-u, --user=USER 使用的用户
-N, --account-desc=STRING 设置账户描述
-f, --fullname=STRING 设置全名
-h, --homedir=STRING 设置家目录
-D, --drive=STRING 设置家设备
-S, --script=STRING 设置登陆脚本
-p, --profile=STRING 设置配置文件路径
-I, --domain=STRING 设置用户域名
-U, --user SID=STRING 设置用户SID或RID
-M, --machine SID=STRING 设置设备SID或RID
-m, --machine 账户是一个设备账户
-b, --backend=STRING 使用不同的passdb作为默认后端
-i, --import=STRING 指定后段导入用户账户
-e, --export=STRING 导出用户账户到指定后端
–policies-reset 恢复默认策略
-P, --account-policy=STRING 帐户策略的值(如最大密码有效期)
-C, --value=LONG 设置账号策略值
–force-initialized-passwords 强制初始化passdb后端
-z, --bad-password-count-reset 重置错误密码
-Z, --logon-hours-reset 重置登陆时间
–time-format=STRING 时间参数的格式
-t, --password-from-stdin 从标准输入获取密码
-K, --kickoff-time=STRING 设置开始时间
–set-nt-hash=STRING 从nt-hash设置密码
-d, --debuglevel=DEBUGLEVEL 设置debug级别
-s, --configfile=CONFIGFILE 使用备用配置文件
-l, --log-basename=LOGFILEBASE 设置日志文件的基本名称
-V, --version 输出版本号
–option=name=value 从命令行设置smb.conf选项
-?, --help 显示帮助信息
–usage 显示简要的使用信息
[root@samba /]# pdbedit -a -u lisi new password: retype new password: [root@samba /]# pdbedit -L lisi:1001:
7.5 在samba配置文件smb.conf最后添加如下配置
[root@samba /]# vim /etc/samba/smb.conf [lisi] comment = this is lisi path = /share/lisi public = yes writable = yes directory mask = 0777 create mask = 0777 browseable = yes available = yes valid users = @lisi,root write list = @lisi,root
7.6 创建共享文件夹及测试文件
[root@samba /]# mkdir -p /share/lisi [root@samba /]# echo 'hello\n' > /share/lisi/1.txt [root@samba /]# mkdir /share/lisi/2 [root@samba /]# cd /share/ [root@samba share]# chmod -R 777 lisi/ [root@samba share]# ll 总用量 0 drwxrwxrwx. 3 root root 28 1月 31 01:02 guest drwxrwxrwx. 3 root root 28 1月 31 02:02 lisi [root@samba share]# systemctl restart smb.service
7.7 在物理机中使用 win+R 调出运行窗口,按照图片输入samba服务器ip地址和共享文件夹名