1 前言
我的需求很简单,用安卓平板看电脑上的720p电影。试验了几种方式,还是SMB共享最靠谱,外挂字幕和电影内的音轨都能完美支持。
2 /etc/samba/smb.conf
[global] workgroup = MYGROUP server string = Samba Server Version %v # log files split per-machine: log file = /var/log/samba/log.%m # maximum size of 50KB per log file, then rotate: max log size = 50 security = user map to guest = Bad User passdb backend = tdbsam load printers = yes cups options = raw [homes] comment = Home Directories browseable = no writable = yes [printers] comment = All Printers path = /var/spool/samba browseable = no guest ok = no writable = no printable = yes # My Own Configuration [Videos] comment = Videos path = /media/MDATA/Videos public = yes
上面是我系统现在的samba配置文件。斜体字部分是我自己添加的内容,其他都是Fedora21默认配置,未修改。
- map to guest = Bad User
- 我需要的是匿名共享。当
security = user
时,需要设置此参数才能实现。Bad User
的含义,是在密码错误时拒绝登录,但如果用户名不存在,则视作guest登录,把用户映射到guest账户。 - [Videos]
- “[]”是配置片段(section,后面简称片段)开始的标记,同时也意味着上一片段的结束。[global]、[homes]和[printers]是三个特殊的片段,本文不深入解释。片段可以代表文件共享服务或打印服务。我这里创建的是文件共享服务,“[]”里面的内容即是客户端看到的共享名,不区分大小写。
- comment = Videos
- 这是一个文本子段,当客户端通过网上邻居或net view查询服务器时,会在共享名旁边看到这里写的内容。
- path = /media/MDATA/Videos
- 共享的目录。
- public = yes
- 本选项与
guest ok
作用相同,用在配置片段中表示连接此片段所提供的服务不需要密码,其权限是guest账户的权限。
3 ntfs分区的特殊设置
3.1 问题
共享的目录在NTFS分区下就会出现可看到共享目录但服务端拒绝访问的情况。拒绝访问是selinux引起的,其主要原因是NTFS目录不支持selinux context设置,无法通过chcon来设置。
# Set SELinux labels only on files and directories you have created. Use the # chcon command to temporarily change a label: sudo chcon -t samba_share_t /path/to/directory
通过加载分区的参数可以强制设置,具体配置方法如下。
3.2 设置fstab
#edit /etc/fstab file. sudo vi /etc/fstab
我的电影存放在/dev/sdb2,使用其
UUID(查看分区UUID的命令是blkid)在fstab
作如下设置。设置完后umount /dev/sdb2并mount -a重新挂载分区生效。
UUID=7428E25E28E21EBC /media/MDATA ntfs-3g context="system_u:object_r:samba_share_t:s0",defaults 0 0
3.3 设置selinux
# Turn the samba_share_fusefs Boolean on if you want to share ntfs # directories via Samba. Run the following command as the root user to turn this # Boolean on: sudo setsebool -P samba_share_fusefs on
3.4 重启smb
#restart smb service by systemctl command sudo systemctl restart smb.service
4 参考文档
4.1 Fedora 21 System Administrators Guide
4.2 Fedora20中通过SAMBA共享NTFS分区目录的配置
4.3 man smb.conf
Visits: 272