学习Linux嵌入式开发,原来草草按网上步骤设置的samba发现在共享目录中创建的文件目录因为是匿名用户,老是要修改文件权限,因此特花了些时间研究下samba设置共享目录的安装使用,总结如下:
1.samba安装,我使用的是ubuntu12.00的linux操作系统,其它系统可能操作有所不同:
--1.安装samba服务:sudo apt-get install samba //安装该服务,就可以使用samba共享目录了
--2.安装smbfs sudo apt-get install smbfs //smb文件系统
--3.安装图形化配置工具sudo apt-get install system-config-samba //安装后可在 系统/系统管理菜单中看到samba工具
2.两个配置文件说明:
--1.samba配置文件位置:/etc/samba/smb.conf //samba服务配置文件
--2.samba用户配对文件:/etc/samba/smbusers
3.samba启动脚本:samba的启动脚本在/etc/rc.d/init.d/smbd
//要注意的是每次不管是用图形化工具修改samba配置后,都要执行下面命令来重新载入配置配置才能够起作用
--重载samba配置:/etc/rc.d/init.d/smbd reload
--重启samba服务:/etc/rc.d/init.d/smbd restart
4.smb.conf的语法
--1.[global]部分定义的参数用来控制Samba的总特性。除global部分外,每一部分都定义了一个专门的服务
workgroup = workgroup //设置工作组
server string = %h server (Samba, Ubuntu) //设置主机名
security = user //安全设置 user表示用户级别,另一个好像是share:共享级别
[global] 段中还定义了日志文件目录和锁定文件的位置。日志文件在解决故障和完善系统时是很有用的,锁定文件可以阻止多个用户同时修改相同的文件
--2.[homes] 段中的设置控制了每一个用主目录的共享权限。comment 参数指定的字符串在你浏览本机资源时出现在指定资源的旁边。
browseable 参数控制一项服务是否能够出现在网络资源浏览表中
read only 只读
--添加一个共享目录
[stonecao] //一个新的共享服务
comment = stonecao
path = /home/stonecao //共享服务目录
writeable = yes //权限可写
; browseable = yes
valid users = stonecao //需要用户验证 验证用户一个一个可用的samba用户
具体很多配置项我也不是很懂,毕竟我只要它能用就好了,我把我本机配置的一个smb.conf列出如下:
[global]
workgroup = workgroup
server string = %h server (Samba, Ubuntu)
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
usershare allow guests = yes
username map = /etc/samba/smbusers
security = user
; guest ok = no
; encrypt passwords = yes
; guest account = nobody
[edu]
comment = edu
path = /home/edu
writeable = yes
; browseable = yes
valid users = edu
creat mask = 0777 //window环境共享目录下新建文件权限的掩码(即要把原用户权限与掩码进行与计算得到通过共享创建文件的权限)
上面是我的一个可用的配置例子,另外对应的/etc/samba/smbusers里面的内容如下:
edu =edu
5.当我们修改好smb.conf文件后我们需要检查一下我们的配置是否有语法错误,使用命令:
testparm
6.smbpasswd添加samba账号
smbpasswd [options] [username]
--1.添加一个samba账号:
smbpasswd -a edu //注意edu必须是已经存在的linux账号
--2.删除一个samba账号:
smbpasswd -x edu
--3.使一个smaba账号不可用:
smbpasswd -d edu
--4.使一个账号可用:
smbpasswd -e edu
//添加一个windows用户名与linux用户名不一样的一个samba账号,更改samba下的smbusers文件,添加 edu = 你想要设置的windows登陆名即可。
//当你使用smbpasswd -a添加一个samba用户时需要你设置密码,密码就是你在window环境访问samba共享目录时的密码