学习Linux嵌入式开发,原来草草按网上步骤设置的samba发现在共享目录中创建的文件目录因为是匿名用户,老是要修改文件权限,因此特花了些时间研究下samba设置共享目录的安装使用,总结如下:

1.samba安装,我使用的是ubuntu10.10的linux操作系统,其它系统可能操作有所不同:

--1.安装samba服务:sudo apt-get install samba //安装该服务,就可以使用samba共享目录了
 --2.安装smbfs sudo apt-get install smbfs //??
 --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 restart4.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[stonecao]
 comment = stonecao
 path = /home/stonecao
 writeable = yes
 ;browseable = yes
 valid users = stonecaocreat mask = 0777 //window环境共享目录下新建文件权限的掩码(即要把原用户权限与掩码进行与计算得到通过共享创建文件的权限)
上面是我的一个可用的配置例子,另外对应的/etc/samba/smbusers里面的内容如下:
stonecao = stonecao
5.当我们修改好smb.conf文件后我们需要检查一下我们的配置是否有语法错误,使用命令:
testparm
6.smbpasswd添加samba账号
smbpasswd [options] [username]
 --1.添加一个samba账号:
 smbpasswd -a stonecao //注意stonecao必须是已经存在的linux账号
--2.删除一个samba账号:
 smbpasswd -x stonecao
 --3.使一个smaba账号不可用:
 smbpasswd -d stonecao
 --4.使一个账号可用:
 smbpasswd -e stonecao//暂时没有搞清楚smbpasswd怎样添加一个windows用户名与linux用户名不一样的一个samba账号,里面有一个选项-U,不过我没有试成功过
//当你使用smbpasswd -a添加一个samba用户时需要你设置密码,密码就是你在window环境访问samba共享目录时的密码
7.前面我安装的时候安装了一个图形化配置工具,我建议简单起见使用图形化配置工具就好的,毕竟我们不是来研究samba的:
--1.使用图形化界面添加一个samba用户:
系统/系统管理/samba打开后:首选项/samba用户你可以添加一个samba用户:
unix用户:指一个linux可用的用户,如root
 windows用户名:指你访问samba共享目录时登陆的用户名
 samba密码;设置window访问samba共享目录时的密码

--2.在上面界面你还可以编辑和删除用户

--3.首选项/服务器配置修改对应的配置项为smb.conf中[global]配置项,不过比较简单

8.可能你修改了用户或者密码后,发现在windows环境老提示错误不能访问,这个时候需要先断开网络映射再重新访问,它才会提示你重新输入用户名密码

9.windows环境访问samba共享目录:举例:\\192.168.112.129