新装Ubuntu18.04 LTS替换之前一直作为服务器windows server系统,主要是做文件服务器,在学校的内部网络使用。
之前并没有正经搭建过,所以搭建了好久才弄完。很简单的文件服务器。
因为只做分享,管理只由实机操作或者winSCP远程管理,所以分享的权限只有只读。
安装只安装了samba,sambaclient就不装了。
~$ sudo apt-get install samba
安装完在/etc/samba下的配置文件smb.conf是samba的配置文件。建议备份一份该文件
~$ cd /etc/samba
$ cp smb.conf smb.conf.bak
$ sudo vim smb.conf
vim支持高亮,所以有效的部分就是高亮的,默认是有[global]以及下面的语句就是samba的配置。有workgroup工作组,因为主要分享给windows使用,所以这个就默认。接下来的
server string =%h server (Samba,Ubuntu)
在使用命令行界面登录samba时才能看到效果的欢迎语句,主要讲的是%h,这是配置文件的变量,一共有以下的几个(参考鸟哥的服务器架设的第三版)
%m:代表 Client 端的 NetBIOS 主机名喔!
%M:代表 Client 端的 Internet 主机名喔!就是 HOSTNAME。
%L:代表 SAMBA 主机的 NetBIOS 主机名。
%H:代表用户的家目录。
%U:代表目前登入的使用者的使用者名称
%g:代表登入的使用者的组名。
%h:代表目前这部 SAMBA 主机的 HOSTNAME 喔!注意是 hostname 不是NetBIOS name喔!
%I:代表 Client 的 IP 咯。
%T:代表目前的日期与时间
%S:任何登入使用者
接下来还有一个就是security=user,这是安全验证层次,有share,user和domain(这个我没搞清)。
其他的看网上的详细或者鸟哥的书吧。
靠近文档底部还有两个高亮的分享配置,[printers]和[print$]看名字就可以知道是打印机的,用不到,注释掉。此配置文件可以#或;注释。这里设置两个分享。
[share1] #显示的分享名
comment = Share Test #标注这是什么
path = /home/guet/share1 #分享的路径
browseable = yes #可在输入地址后见到
read only = yes #只读
public = yes #公有
配置完保存使用命令检验是否有错
~$ testparm
重启samba服务
~$ sudo /etc/init.d/smbd restart
[ ok ] Restarting smbd (via systemctl): smbd.service.
做到这里就完成分享了,存在分享的文件夹即可看到文件下的内容
[share2]
comment = Share Test
path = /home/guet/share2
browseable = no #需要地址加分享名才能进入
writable = yes #可写
create mask= 0755 #创建文件权限
directory mask=0755 #创建文件夹权限
valid users = share #哪个用户登录
无错则新建一个用于登录samba的用户,不用于登录系统
~$ sudo useradd -s /sbin/nologin -g guet share
设置此账户在登录samba的登录密码,不是设置用户的系统密码(也不需要设置)
~$ sudo smbpasswd share
New SMB password:
Retype new SMB password:
Added user share.
重启samba服务
~$ sudo /etc/init.d/smbd restart
[ ok ] Restarting smbd (via systemctl): smbd.service.
看到并没有出现share2文件加在此地址下面,所以在地址后面加上分享名share2
可能会出现此窗口
当时头痛了我很久啊,经过鸟叔的书提醒,原来是创建的分享文件夹权限最低755,或者连接过了一次samba的share1的原因,并不是配置的原因。修改好了权限,再重启连接的机子或者用别的机子连接测试就知道了。
实际用此账户也是对应系统里的权限操作的,在这个文件夹如果有别的用户创建文件以及文件夹,权限也会限制,所以我把此账户加入到系统登录的账户组内,这样这个文件夹再设置个775权限,就可有权限操作了。
安装vsftpd
~ $ sudo apt-get install vsftpd
安装完查看 /srv下是否有ftp文件夹,此文件夹是ftp匿名登录的文件夹,所有者root,组ftp,755权限。(很神奇的文件夹),没有就新建。
配置文件在/etc下面的vsftpd.conf,建议备份
~$ cd /etc
$ sudo cp vsftpd.conf vsftpd.conf.bak
$ sudo vim vsftpd.conf
ftp部分只做简单的匿名只读分享,不设别的账户,只有几句设置就行了。
anonymous_enable=YES #允许匿名登录
#local_enable=YES #不允许服务器用户登录
#write_enable=YES #不可写
#anon_upload_enable=YES #不允许匿名上传
#anon_mkdir_write_enable=YES #不允许匿名新建文件夹
anon_root=/home/guet/ftp #修改匿名登录的路径
神奇的事情,只要在无/srv/ftp的前提下,就算直接设置anon_root也一样不能用,很神奇!(可能我操作有问题吧!)修改的anon_root发现使用下面的命令重启ftp服务没效果
$ sudo /etc/init.d/vsftpd restart
Stopping FTP server: vsftpd.
Starting FTP server: vsftpd.
虽然重启拂去显示结果是这样,但别的机子访问ftp地址,出现的还是之前的目录,而我直接重启系统就出现效果了,所以应该是这个命令没有起到马上应用的效果。
ftp我觉得没samba好用,所以更高级得功能没有去研究,整出来只是做备用,搞了两天,有点小爆炸,神一般得权限,还好,我的要求不高,所以不整那么麻烦。
分享出来做个简单记录,也给搭建这两个服务的大家一个参考,哪里写得不好,敬请见谅。
得益于鸟哥的书,才明白了很多,直接找网上的教程有很多实用技巧没有学到,有兴趣的大家可以看下书学习下