以下以root用户执行
1、安装:
# yum install samba samba-client -y
2、设置开机启动:
# systemctl enable smb.service
ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service'
3、查看是否设置成功
# systemctl status smb.service
smb.service - Samba SMB Daemon
Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled)
Active: inactive (dead)
4、启动samba服务
# systemctl start smb.service
5、再次查看启动状态
# systemctl status smb.service
smb.service - Samba SMB Daemon
Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled)
Active: active (running) since Sat 2014-12-27 00:15:48 EST; 11s ago
Main PID: 2372 (smbd)
Status: "smbd: ready to serve connections..."
CGroup: /system.slice/smb.service
├─2372 /usr/sbin/smbd
└─2373 /usr/sbin/smbd
Dec 27 00:15:48 localhost.localdomain smbd[2372]: [2014/12/27 00:15:48.521059, 0] ../lib/util/become...dy)
Dec 27 00:15:48 localhost.localdomain systemd[1]: Started Samba SMB Daemon.
Dec 27 00:15:48 localhost.localdomain smbd[2373]: STATUS=daemon 'smbd' finished starting up and ready...FUL
Hint: Some lines were ellipsized, use -l to show in full.
6、配置配置文件
进入目录:
# cd /etc/samba
备份:
# cp smb.conf smb.conf.bak
修改smb.conf文件,找到“[homes]”,修改以下设置:
[homes]
comment = Home Directories
browseable = no
writable = yes
#(最新版本的smb加入此项可能出现无法启动情况,故去掉20161030)
# valid users = %S
# valid users = MYDOMAIN\%S
create mask = 0664
force create mode = 0664
directory mask = 0775
force directory mode = 0775
=====================================================
补充:
发现直接从windows拷进去的文件,都会有执行的权限
这里要在smb.conf添加以下
(*20131203记录,新版的samba一定要在[homes]后面追加,放在smb.conf最后是无效的)
create mask = 0664
force create mode = 0664
directory mask = 0775
force directory mode = 0775
说明:
默认创建文件是-rw-rw-r-- 664权限
默认创建目录是rwxrwxr-x 775权限
====================================================
7、添加用户
# smbpasswd -a username
如果出现bash: smbpasswd: command not found,就是没有安装samba-client了
-------------------------------------------------附:smbpasswd命令的常用方法smbpasswd -a 增加用户(要增加的用户必须以是系统用户)smbpasswd -d 冻结用户,就是这个用户不能在登录了smbpasswd -e 恢复用户,解冻用户,让冻结的用户可以在使用smbpasswd -n 把用户的密码设置成空. 要在global中写入 null passwords -truesmbpasswd -x 删除用户-----------------------------------------------
8、selinux设置
# getsebool -a | grep samba
# setsebool -P samba_enable_home_dirs on
9、防火墙,使用新的防火墙firewall添加就可以,比iptables更方便
# firewall-cmd --list-services
# firewall-cmd --permanent --add-service=samba
# firewall-cmd --reload
# firewall-cmd --list-services
由于redhat7开始,iptables被firewalld代替了,所以使用firewalld的方法
关于firewalld的说明,可以看fedora官网介绍
https://fedoraproject.org/wiki/FirewallD/zh-cn
10、重启samba服务
# systemctl restart smb.service
---------------------------------------------------------------------
转自:http://blog.chinaunix.net/uid-23069658-id-3142052.html
关于Samba,大家有没有这种感觉,弄了N久丫的死活不喘气儿。找来各种“哥”和“姐”,发现全是“详解…配置专题”,看了半天不知道别个在说什么,好不容易找了个简单的教程,从头到尾跟着做,尼玛,浪费时间精力不说,就是跑不起来。是不是有种吐血的生理反应了。唉,不会写文档的娃,伤不起啊。而本文实现的是Linux和Windows间资源互通的问题:在Linux下架设Samba服务器,在Windows下来访问。
1、 下载及安装Samba
推荐用yum来安装,这样它可以自己解决包的依赖关系,省时、省事又方便。一条命令搞定:
yum -y install samba
2、 配置Samba
关于Samba的配置网上资料一大堆,可照着很多教程一步一步做下去发现最后就是用不了,郁闷至极啊。
我的目的不是多仔细,多深入的教你Samba的好,而是教会你如何快速的可以将Samba用起来,因此安全性方面的东西考虑的不是很多。但为了照顾到大家不同档次的水平和口味,我还是尽可能的多写一些东西。
首先,我强烈的建议大家在修改系统原有任何文件的时候一定要养成“先备份,后修改”的好习惯,相信我,这个习惯会为侬节约很多不必要浪费的时间。接下来我要做的是将/home/目录下的用户“koorey”的主目录给挖出来,供我在windows下访问。步骤如下:
1). 备份Samba的配置文件:cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
2). 网上很多教程说针对/etc/samba/smb.conf文件要在[global]字段中加入下配置项:
dos charset = GB2312 ←将Windows 客户端的文字编码设置为简体中文 GB2312
unix charset =GB2312 ←指定Samba所在的CentOS服务端新建文件或目录时的编码为 GB2312
display charset= GB2312 ←指定使用SWAT(一种通过浏览器控制Samba的工具)时页面的默认文字编码
directory mask =0777 ←指定新建目录的属性(以下4行)
force directorymode = 0777
directorysecurity mask = 0777
force directorysecurity mode = 0777
create mask =0777 ←指定新建文件的属性(以下4行)
force createmode = 0777
security mask =0777
force securitymode = 0777
声明:我没有加这些配置,而且在我在共享出来的目录里添加,修改删除文件都没任何问题,还没有乱码现象。
我在/etc/samba/smb.conf文件的末尾之添加如下字段:
[koorey]
comment = koorey
path = /home/koorey
writable = yes
3). Linux中/etc/passwd里的用户和Samba里的用户几乎没啥关系,硬说有的话,那就是:Samba的所有用户都必须是系统里已存在的用户。我们要授权系统用户访问Samba的话,通过命令:
smbpasswd -a koorey #添加用户koorey到Samba用户数据库中
这条命令输入完后,会提示为新建的用户koorey设置访问密码。最后再执行一下service smb restart命令就OK了。至此,Samba服务器就架设好了。不信?为啥?因为后面还有章节,哈哈,说的没错。理论上说确实已经架设好了,可千万不要忽略了Linux的安全机制的存在:iptables和selinux。其中本人就吃了selinux不少苦头。因为只弄了iptables,却忘记了selinux这个牛叉叉的家伙。关于iptables本人会在后面的博客从头到脚,从里到外,循序渐进的以此和大家交待它的来龙去脉。当然,如果你感兴趣的话。
3、 在对待iptables的问题上:
普通青年:直接在命令行敲…
service iptables stop。
文艺青年:依次在命令行敲…
iptables -I RH-Firewall-1-INPUT 5 -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
iptables -I RH-Firewall-1-INPUT 5 -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
iptables -I RH-Firewall-1-INPUT 5 -p udp -m udp --dport 137 -j ACCEPT
iptables -I RH-Firewall-1-INPUT 5 -p udp -m udp --dport 138-j ACCEPT
iptables-save
service iptables restart
4、 同样,在对在selinux的问题上:(这丫的把我坑惨了呀)
普通青年:直接在命令行敲…
setenforce 0
vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled为开机重启后不再执行setenfore节约光阴。
文艺青年:依次在命令行敲…
setsebool -Psamba_enable_home_dirs on
setsebool -Psamba_export_all_rw on
完事儿之后再:getsebool -a | grep samba一把,你懂得…
5、最后在Windows系统里,访问结果如下: