leoatchina的博客

ubuntu服务器samba、ftp、timemachine配置过程

作为家里htpc服务器的ubuntu电脑由于前面操作不慎,系统出了一些非常影响检验的总是,特别是owncloud功能挂了,最后决定重装。
重装后先把最重要的 samba,ftp,timemachine功能给恢复回来,其他以后慢慢搞。
在这过程中,又重新看了以前的笔记,查了一些资料,在实践中发现无论原来的笔记,人家的经验都有一些繁琐,或不是非常正确的地方, 这里记录下自己的配置备参考 。

电脑硬盘和目录

有一个ssd和一个hdd,hdd mount成 /mnt/
这里有一个非常容易忽视的设置,要把 /mnt/和其子目录设置成 samba帐号 可读写和执行,否则samba服务会报权限错误

1
sudo chmod 770 -R /mnt

我的/mnt下面的文件夹分配

1
2
3
4
5
6
7
8
9
10
11
# htpc @ htpc in /mnt [10:48:35]
$ ls -alh
total 36K
drwxrwxrwx 8 htpc htpc 4.0K 3月 4 22:30 .
drwxr-xr-x 24 root root 4.0K 3月 4 10:39 ..
drwxrwx--- 4 htpc htpc 4.0K 3月 4 09:39 backup
drwxrwx--- 5 htpc htpc 4.0K 3月 4 11:16 config
dr-xr-x--- 5 share htpc 4.0K 3月 4 22:31 ftp # ftp主目录
drwxrwx--- 4 www-data htpc 4.0K 2月 21 22:02 owncloud # owncloud目录
drwxrwx--- 10 share htpc 4.0K 3月 4 22:43 share # 这个是samba的
drwxrwx--- 8 tm htpc 4.0K 3月 5 10:48 timemachine # mac用的timemachine目录

其中, share目录通过修改 /etc/fstab 开机mount到 /mnt/ftp/share中去。在这个文件最后加这样一句

1
/mnt/share /mnt/ftp/share none bind 0 0

为什么要这么做,是因为vsftp的要求:不能在ftp的根目录可写,所以ftp这个目录的权限也要设置成 550

用户

samba和ftp的share帐号

1
sudo useradd share -d /mnt/ftp -s /usr/sbin/nologin -g htpc

说明下

  • -d 主目录,为了ftp服务
  • -s 设置shell为 nologin,就是不能远程登陆
  • -g 设置成htpc组,这个其实是为了htpc这个主账号登陆上去后管理方便,不是一定要设置

samba

安装

1
sudo apt-get install samba

配置

sudo vim /etc/samba/smb.conf

网上的教程太冗余,我先贴我的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[global]
netbios name = htpc #局域网显示名称
server string = Samba Server Version %v
workgroup = workgroup #局域网共享分组
load printers = no
security = user # 这个比较重要,设计成user是根据你linux内帐户权限对共享目录进行访问
log level = 8
log file = /var/log/samba/samba.log
max log size = 50
unix charset = utf8 #这个也比较重要
map hidden = no
[share]
comment = share
path = /mnt/share # 路径
browseable = yes #这个其实比较重要的,如果设置成no,你的这个目录在共享里是看不到的,除非输入路径
writable = yes
read only = no
valid users = share,@htpc # 允许访问的用户和用户组
write list = share,@htpc # 允许写入的用户和用户组

重启服务

sudo service smbd restart

再强调一次,设置samba目录时,要把父目录也设置成share帐户可读入,否则不能访问samba目录

ftp,其实就是vsftp

安装

sudo apt-get install vsftpd

配置

sudo vim /etc/vsftp
还是一句话,网上的配置太麻烦,贴我的,其实就几个地方比较重要

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
listen=YES
anonymous_enable=NO
local_enable=YES #用本地帐户登陆
write_enable=YES
local_umask=022
local_root=/mnt/ftp # 主目录
max_clients=5
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
idle_session_timeout=600
data_connection_timeout=120
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=ftp
rsa_cert_file=/etc/ssl/private/vsftpd.pem
chroot_local_user=YES #限制在ftp 主目录内,这也是前面 mount share目录的原因

重启和登陆ftp

sudo service vsftpd restart

然后你用 ubuntu share账户就可以登陆了

timemachine

这里我必须吐槽一下, 网上找到很多教程,装这个装那个,配这个配那个,其实在最新版的ubuntu下面,avahi服务是自带的,根本不用装,而且一般人要用到的配置也很简单,抄来抄去写那么多干什么。

安装 ,就装这个就行了

sudo apt-get install netatalk

配置,就改最后两行就够了

sudo vim /etc/netatalk/AppleVolumes.default

注释掉 "Home Directory",加上这么一句 /mnt/timemachine/ "TimeMachine" volsizelimit:600000 options:tm
然后呢,最多对 /mnt/timemachine目录设置一个专门帐号,就行了

重启和访问

sudo service netatalk restart

在finder里,按 cmd+k,输入 afp://ip 访问你的TimeMachine服务器,然后你打开timemachine设置选择你的 TimeMachine