CentOS 7下安装samba
Samba是一种软件,它可以运行在非Windows平台上,比如UNIX, Linux, IBM System 390, OpenVMS或其他操作系统。Samba使用安装在主机上的TCP/IP协议。当正确配置完成后,Samba可以使主机与Windows客户端或服务器交互,这台主机就好像变成了Windows的文件和打印服务器。
配置好samba之后就可以在windows下编写代码,提交代码,然后在linux环境下编译代码。
安装步骤如下:
1.安装samba
yum install samba
(ubuntu下面可以用apt-get install 来安装)
安装完成之后可以用
rpm -qa|grep samba 命令来验证是否安装成功。
2.配置samba
修改samba的配置文件。在修改配置文件之前,记得要把配置文件备份一份,养成良好习惯。
使用cp(复制命令)进行备份
cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
然后编辑这个配置文件
vim /etc/samba/smb.conf
在配置文件的最后加上
[workspace]
path=/workspace
browseable=yes
writeable=yes
guest ok=yes
[workspace]包含的名称是windows中显示的文件目录
保存
使用testparm测试一下配置文件的语法
3.重启samba
service smb restart
4.建立一个共享目录
mkdir /workspace
5.访问
这个时候可能访问不到,可能是防火墙的原因,
Samba用到了下列端口:
1)Port 137 (UDP) - NetBIOS 名字服务 ; nmbd
2)Port 138 (UDP) - NetBIOS 数据报服务
3)Port 139 (TCP) - 文件和打印共享 ; smbd (基于SMB(Server Message Block)协议,主要在局域网中使用,文件共享协议)
4)Port 389 (TCP) - 用于 LDAP (Active Directory Mode)
5)Port 445 (TCP) - NetBIOS服务在windos 2000及以后版本使用此端口, (Common Internet File System,CIFS,它是SMB协议扩展到Internet后,实现Internet文件共享)
6)Port 901 (TCP) - 用于 SWAT,用于网页管理Samba
一般只要打开139端口就可以了。
编辑iptables配置文件,
vim /etc/sysconfig/iptables
将139端口加上去,重启iptables,
/etc/init.d/iptables restart
再次访问共享目录,访问是能访问了,不过需要密码
这个时候就要在smb.conf里面做一些更改,
在security = user下面加上
map to guest = Bad User
重启samba。再访问共享目录,可见能显示文件夹了
但是还是不能进入文件夹
因为linux不允许修改此文件夹,这个时候可以用以下命令
chcon -t samba_share_t /workspace
将workspace标记为samba_share_t,就可以打开文件夹了。
但是现在还不能在文件夹中创建文件,这个是因为匿名用户没有相关权限
查询一下nobody在系统中的属性
id nobody
通过chown命令将匿名用户加上去,chown nobody:nobody /workspace
(chown的作用是改变相关目录文件夹的拥有者及群组,chown nobody:nobody /workspace,是将workspace的拥有者变成nobody匿名用户)
或者
chmod 777 /workspace
(
chmod命令,全称是change file mode bits,使用ls –l可以查看所有文件的属性情况
drwxr-xr-x 中 第一个表示类型,d表示目录directory,第二到第四rwx表示拥有者有读写运行权限,第五到第七r-x表示拥有者所在的组有读和运行权限但没有写入权限,第八到第十r-x表示其他用户有读和运行权限但没有写入权限
)
至此创建共享目录就完成了。