samba源码分析及配置详解
来源:互联网 发布:30岁学java晚不晚 编辑:程序博客网 时间:2024/05/16 16:09
p { margin-bottom: 0.21cm; }td p { margin-bottom: 0cm; }
在smb.conf最后加上如下
[read2]
comment = read2
path = /home/read2
public = yes
read only = yes
mkdir /home/read2 ; cd !$ ; cat>; linux ; chmod -R 777 /home/read2 ; 创建共享目录及修改权限
然后
service iptables stop
service network restart
/usr/local/samba/sbin/smbd -D
/usr/local/samba/sbin/nmbd -D
在win-xp下是看不到我们共享的read2。
可能是smb.conf有问题,我们用testparm工具检查一下。
[root--~]testparm
bash: testparm: command not found没有输入完整路径。
[root--~]/usr/local/samba/bin/testparm
Load smb config files from/usr/local/samba//lib/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Processing section "[read]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of yourservice definitions
就 是没有read2,我们仔细看看第一行,Loadsmb config files from/usr/local/samba//lib/smb.conf,好像testpart工具是根据lib/smb.conf得到的,lib下的smb.conf和etc下的smb.conf完全不一样嘛,因为我们增加了read2,我们可以复制覆盖了它
cp -f/usr/local/samba/etc/smb.conf /usr/local/samba/lib/
然后
service iptables stop
service network restart
/usr/local/samba/sbin/smbd -D
/usr/local/samba/sbin/nmbd -D
回到win-xp下可以找到,哈哈,好了,虽然它的权限为777,但是由readonly控制,不可以删除,添加。
目标1成功
由于每次修改完/usr/loca/samba/etc/smb.conf,我们都要
cp -f/usr/local/samba/etc/smb.conf /usr/local/samba/lib/
然后
service iptables stop
service network restart
/usr/local/samba/sbin/smbd -D
/usr/local/samba/sbin/nmbd -D
我们可以写个shell
emacs samba.sh
cp -f/usr/local/samba/etc/smb.conf /usr/local/samba/lib/
service iptables stop
service network restart
/usr/local/samba/sbin/smbd -D
/usr/local/samba/sbin/nmbd -D
修改完,启动时可以
1, sh samba.sh
2, sh < samba.sh
3, chmod 777 samba.sh
mv samba.sh ~/bin
samba.sh
这三种方法都可以。
目标2,
以上保持不变,在smb.conf最后加上
[write]
comment = write
path = /home/write
public = yes
guest ok = yes
writable = yes
mkdir /home/write ; cd/home/write ; cat >;linux ; chmod -R 777 /home/write/ ;sh< samba.sh创建共享目录文件,开放权限,重启服务
到win-xp下read目录下可以读,在write中可以删除,添加,改变原文件,目标2完全正确。我们再试一下中文问题,在win-xp下打开linux的write目录,找编辑linux,增加中文,并在write目录下建立中文目录,我们再回到linux下看结果是否可以正常显示中文。结果编辑linux的中文可以正常显示,中文目录是乱码,想想如何解决。
在smb.confr的[global]中添加
dos charset=cp936
unix charset=cp936 我是加到security = share的下面了
在win-xp打开write添加中文目录,回到linux下,一看可以正确识别中文
目标3,
多建立几个samba用户。
adduser sambau001 ; passwd !$ ;/usr/local/samba/bin/smbpasswd -a sambau001
用以上方法增加sambau002,sambau003用户
分别su到这些用户,增加文件linux,然后修改smb.conf,把security= 改为user,这次请重新启动一下win,因为添加用户了,这时输入用户和口令就可以进去了,并可以看到自己的目录
我的home如下
[homes]
comment = home
browseable = no
writable = yes
valid users = %S
create mode = 0664
directory mode = 0775
用一个用户进入,win-xp下建立一个文件,一个目录,在目录中另外建立一个文件,在linux用该用户进入自己的目标,可以看到刚才建立的文件目录,文件权限符合664,目录权限符合775。
目标3成功。
目标4,
建立3个组
groupadd sambag001 ; groupaddsambag002 ; groupadd sambag003
usermod -g sambag001 sambau001 ;usermod -g sambag002 sambau002 ; usermod -g sambag003 sambau003把刚才3个用户分别添加到3个组中。
mkdir share;cd share/ ;cat>; linux ; chmod -R 777 /home/share/ 开放权限,在smb.conf中控制它
要求sambag001组中的用户r,sambag002组中的用户rw,sambag003组中的用户no
在smb.conf中添加以下
[share]
comment = share
path = /home/share
public = no
valid users =@sambag001,@sambag002
invalid users = @sambag003
write list = @sambag002
再加到win-xp下试,成功
没列出的也不可以进入。
其中用validuserd列出的只有r权限,如果在writelist前加个;号,那么sambag001中的用户和sambag002中的用户只可以看。
其中[]里面的是指定的共享名,一般就是网络邻居里面可以看见的文件夹的名字。
comment指的是对改共享的备注。
path指定共享的路径
allow hosts和denyhosts和前面的全局设置的方法一样这里不再提及。
writeable指定了这个目录缺省是否可写。
user设置所有可能使用该共享资源的用户,也可以用@group代表group这个组的所有成员,不同的项目之间用空格或者逗号隔开。
valid users指定能够看到该共享资源的用户和组。
invalid users指定不能够看到该共享资源的用户和组。
read list 指定只能读取该共享资源的用户和组。
write list指定能读取和写该共享资源的用户和组。
adminlist指定能管理该共享资源(包括读写和权限赋予等)的用户和组。
public指明该共享资源是否能给游客帐号访问,这个开关有时候也叫guestok,所以有的配置文件中出现guestok = yes其实和public =yes是一样的。
create mode指明新建立的文件的属性,一般是0755。
directorymode指明新建立的目录的属性,一般是0755。
forceuser强制把建立文件的属主是谁。如果我有一个目录,让guest可以写,那么guest就可以删除,如果我用forceuser= grind强制建立文件的属主是grind,同时限制createmask = 0755,这样guest就不能删除了。
browseable指定其它用户能否浏览该用户主目录,当然不允许,所以置为no。
writable使用户访问该目录时具有读取和写入主目录中的文件时,取值为yes,只有读取权限时应置为no。
xp访问linux成功,再试一下linux访问xp
用 #smbclinet "////nxgz/共享目录名"
可以像telnet或ftp一样登录windows主机nxgz,要求你输入密码时,输入密码。
然后出现 smb:/>;
由于是源码安装以下工具命令不成功。{{
smbmount //test/share /publinux挂接windows目录
mount -t smbfs -ousername=WINDOWS主机登录名,password=对应密码//PC-NAME/SHARE-DIR /mnt/tmp
smbmount //testsamba/pub publinux与linux共享
添加相应目录和用户
1,一个一个添加用户
以root用户身份登录,添加Linux用户,并设定密码:
adduser smbuser
passwd smbuser
把用户smbuser加入到Samba服务器用户中并设定密码:
smbpasswd -a smbuser
2,加入系统中的所有用户
#vi /etc/passwd(把一些你不用或者你不知道的用户全删了)
# cat /etc/passwd │mksmbpasswd.sh >; /etc/samba/smbpasswd (把linux本机用户加到smb用户里去)
#smbpasswd test(设置test用户的smb访问口令)
#/etc/rc.d/init.d/smb restart(重启samba)
3,加入一部分
#smbadduser linuxname:2000name#增加用户
用smbpasswd为每个用户指定password,格式如下:(必须是Root)
smbpasswd userid:passwduserid2:passwd2 ...... }}
- samba源码分析及配置详解
- samba服务器源码安装及配置
- samba-4.2.4源码安装及配置
- Epoll详解及源码分析
- Epoll详解及源码分析
- Epoll详解及源码分析
- Epoll详解及源码分析
- Epoll详解及源码分析
- Epoll详解及源码分析
- AsyncTask详解及源码分析
- Epoll详解及源码分析
- LocalBroadcast详解及源码分析
- Epoll详解及源码分析
- IntentService详解及源码分析
- SAMBA配置详解
- SAMBA配置详解
- SAMBA配置详解
- SAMBA配置详解
- DirectX常用宏
- lunix下的常用系统函数---篇一
- [ php or jsp ] + jquery.imgareaselect 处理图片截图等比缩放!
- samba使用技巧
- Qt SDK安装时Post mortem debugger的含义是什么
- samba源码分析及配置详解
- 线段组成三角形的概率问题
- 每位开发人员都应铭记的10句编程谚语
- 55555
- 使用C#登录QQ空间的过程分析与实现
- javascript 时间日期处理相加、减操作方法
- C++经验(第一节)(个人见解)
- python模块学习之---- urllib2模块详解
- 新手入门