学习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