第 四 十 二 天:samba 的 相 关 问 题

小Q:世界上一成不变的东西,只有“任何事物都是在不断变化的”这条真理。--斯里兰卡

samba端口--------------------------------------------------------------

1)Port 137 (UDP) - NetBIOS 名字服务 ; nmbd

2)Port 138 (UDP) - NetBIOS 数据报服务

3)Port 139 (TCP) - 文件和打印共享 ; smbd (基于SMB(Server Message Block)协议,主要在局

域网中使用,文件共享协议)

4)Port 389 (TCP) - 用于 LDAP (Active Directory Mode)

5)Port 445 (TCP) - NetBIOS服务在windos 2000及以后版本使用此端口, (Common Internet File

System,CIFS,它是SMB协议扩展到Internet后,实现Internet文件共享)

6)Port 901 (TCP) - 用于 SWAT,用于网页管理Samba

windows系统之间的文件共享协议:NetBEUI(NetBIOS Extend User Interface)协议和IPX/SPX协议 NetBEUI协议是一种短小精悍、通信效率高的广播型协议,安装后不需要进行设置,特别适合于在“网络邻居”传送数据。NETBEUI缺乏路由和网络层寻址功能,既是其最大的优点,也是其最大的缺点。因为它不需要附加的网络地址和网络层头尾,所以很快并很有效且适用于只有单个网络或整个环境都桥接起来的小工作组环境。

因为不支持路由,所以NETBEUI永远不会成为企业网络的主要协议。NETBEUI帧中唯一的地址是数据链路层媒体访问控制(MAC)地址,该地址标识了网卡但没有标识网络。路由器靠网络地址将帧转发到最终目的地,而NETBEUI帧完全缺乏该信息。NetBEUI协议主要用于本地局域网中,一般不能用于与其他网络的计算机进行沟通。 IPX/SPX (Internetwork Packet Exchange/Sequences Packet Exchange,Internet分组交换/顺序分组交换IPX/SPX)是Novell公司的通信协议集。与NetBEUI形成鲜明区别的是IPX/SPX比较庞大,在复杂环境下具有很强的适应性。这是因为IPX/SPX在设计一开始就考虑了网段的问题,因此它具有强大的路由功能,适合于大型网络使用。IPX主要实现网络设备之间连接的建立维持和终止;SPX协议是IPX的辅助协议,主要实现发出信息的分组、跟踪分组传输,保证信息完整无缺的传输。 其中,IPX协议负责数据包的传送;SPX负责数据包传输的完整性。

LINUX系统之间文件共享 和 LIUNX与WINDOWS系统之间的文件共享:IBM SMB,服务器信息块协议服务器信息块(SMB)协议是一种IBM协议,用于在计算机间共享文件、打印机、串口等。SMB协议可以用在因特网的TCP/IP协议之上,也可以用在其它网络协议如IPX和NetBEUI之上

匿名用户和用户验证共存---------------------------------------------------------

需求:搭建samba服务器,共享两个目录,public与project,其中public目录可匿名访问,任何人可以读写;project目录需要验证用户名密码方可访问。

1. 安装samba服务。。。。。。。。。

2.配置samba,主要配置参数如下:

[global]
workgroup = WORKGROUP
server string = Samba Server Version %v
netbios name = FileServer
;       interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
allow hosts = 10.0.8. 172.169.128.
;       deny hosts = 192.168.100.0/24
# --------------------------- Logging Options -----------------------------
log file = /var/log/samba/%m.log
# max 50KB per log file, then rotate
max log size = 50
security = user                    //认证模式为User
map to guest = bad user            //这个很关键,实现匿名无须交互输入用户名和密码
guest account = nobody             //匿名用户映射为nobody用户,系统中要有nobody用户
encrypt passwords = yes            //用户的密码加密
smb passwd file = /etc/samba/smbpasswd
[public]
comment = public
path= /data/pub/public
browseable = yes                   //可以被浏览,就是在网络邻居中能看到共享名
guest ok = yes                     //允许匿名访问,这个也需要设置,否则匿名无法访问
writable = yes
printable = no
create mask = 0644
directory mask = 0755
[project]
comment = project
path= /data/pub/project
browseable = yes
public = no
guest ok = no
write list = @train
force user = root                   //强制制定建立的文件的属主
printable = no
create mask = 0644
directory mask = 0755

samba常用参数---------------------------------------------------------------------

comment: 对共享目录的备注

path:共享的路径。

allow hosts和deny hosts:允许或者拒绝的主机

writeable:目录缺省是否可写,也可以用readonly = no来设置可写

valid users:能够使用该共享资源的用户和组

invalid users:不能够使用该共享资源的用户和组

read list:只能读取该共享资源的用户和组

write list:能读取和写该共享资源的用户和组

admin list:能管理该共享资源(包括读写和权限赋予等)的用户和组

public:该共享资源是否能给游客帐号访问,这个开关有时候也叫guest ok

hide dot files:是否隐藏以“.”号开头的文件

create mode:新建立的文件的属性,一般是0644

directory mode:新建立的目录的属性,一般是0755

sync always:对该共享资源进行写操作后是否进行同步操作

short preserve case:不管文件名大小写

preserve case:保持大小写

case sensitive:是否对大小写敏感,一般选no,不然可能引起错误

mangle case:指明混合大小写

default case:缺省的文件名是全部大写还是小写(lower/upper)

force user:强制制定新建立文件的属主

wide links:是否允许共享链接文件

max connections = n:设定同时连接数

delete readonly:能否删除共享资源里面已经被定义为只读的文件。

samba中文乱码---------------------------------------------------------------------

SSH登录远程Linux服务器,用win浏览器查看samba的服务器中中文名的文件夹时,看到里面的中文文件名都是乱码,shell也设置不了?

1)打开/etc/sysconfig/i 18n    设置:

LANG="zh_CN.GB2312"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN.GB2312:zh_CN.UTF-8:zh:en_US.UTF-8:en_US:en:ja_JP.UTF 8:ja_JP:ja"
SYSFONT="lat0-sun16"
SYSFONTACM="8859-15"

(LANG="zh_CN.GB2312"必须设置,其他的任选)

2)打开 smb.cnf

添加:

dispaly charset=cp936

unix charset=cp936

dos charset=cp936

重启系统就好

用户对应自己的文件夹----------------------------------------------------------

需求:1、用户user1属于组group1; 用户user2属于组group1和组group2;用户user3属于组group3

2、用户user1 user2 user3可以各自进入自己的文件夹

3、用户user1 user2可以进入文件夹group1;用户user2 user3可以进入文件夹group2

在根目录下新建文件夹smb文件夹及其下属子文件夹

mkdir /smb
cd /smb
mkdir user1 user2 user3 group1 group2

添加用户组

groupadd group1  group2

添加用户

useradd -s /sbin/nologin -G group1 user1

useradd -s /sbin/nologin -G group1,group2 user2

useradd -s /sbin/nologin -G group2 user3

变更文件夹的用户和用户组

chown -R user1:user1 user1
chown -R user2:user2 user2 
chown -R user3:user3 user3
chown -R :group1 group1
chown -R :group2 group2

变更文件夹访问权限

chmod 770 -R group1 group2

chmod 700 -R user1 user2 user3

在samba中添加用户

pdbedit -a user1

pdbedit -a user2

pdbedit -a user3

打开samba的配置文件/etc/samba/smb.conf

[global]
        workgroup = WORKGROUP
        server string = Samba Server Version %v
        security = user
        passdb backend = tdbsam
        load printers = yes
        cups options = raw
#还需要加入以下内容:
[user1]
        comment = User1
        path = /smb/user1
        valid users = user1
        read only = No
[user2]
        comment = User2
        path = /smb/user2
        valid users = user2
        read only = No
[user3]
        comment = User3
        path = /smb/user3
        valid users = user3
        read only = No
[group1]
        comment = group1
        path = /smb/group1
        valid users = @group1
        read only = No
[group2]
        comment = group2
        path = /smb/group2
        valid users = @group2
        read only = No

最终效果:

用user1登录后,可以访问 user1和group1;

用user2登录后,可以访问user2,group1和group2;

用user3登录后,可以访问user3和group2。

附加:还有一种应用情形,在实际工作中经常遇到:公司里每一个部门都有以自己部门名称来命名的文件夹,但部门内的每个人都需要有自己的私人文件夹,在不增加共享文件夹数量的情况下,在部门文件夹内部实际只有自己可以访问的文件夹。这样做的好处就是使共享文件夹数量不致于太多而难于管理,同时也不方便查找文件。

user1和user2都属于group1这个组,他们都可以访问共享文件夹group1,但是在文件夹group1中用户user2有些文件夹(比如文件夹user2)不想让本组的其他人访问。

这种情况属于共享的问题,而属于文件夹权限的问题。

因些只需要在linux命令行下修改文件夹group1中文件夹user2的用户和用户组以组权限就可以。

chown -R user2:user2 /smb/group1/user2

chmod -R 700 /smb/group1/user2

大多数情况下,这些在一个共享文件夹里的私有文件夹都是由管理员来设置的,用户是无法设置的。

这样设置后,非用户user1访问这个文件时,系统提示权限不够;

转自:http://www.apelearn.com/bbs/forum.php?mod=viewthread&tid=7374&highlight=samba

web界面更改密码---------------------------------------------------------------

WEB页面修改密码,要安装changepasswd

安装前要修改SMB配置文件,加入如下内容 :

pam password change = no
        passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*
        smb passwd file = /etc/samba/smbpasswd
        passwd program = /usr/bin/passwd %u
        unix password sync = yes

下载changepasswd

wget http://prdownloads.sourceforge.net/changepassword/changepassword-0.9.tar.gz
tar zxvf changepassword-0.9.tar.gz
cd changepassword-0.9
./configure --enable-cgidir=/var/www/cgi-bin --enable-language=Chinese --enable-smbpasswd=/etc/samba/smbpasswd --disable-squidpasswd 
make 
make install

安装报错:

/usr/bin/ld: cannot find -ldes

collect2: ld returned 1 exit status

make: *** [changepassword.cgi] Error 1

解决办法:

cd changepassword-0.9/smbencrypt/
tar -xzvf libdes-4.04b.tar.gz
cd des/
make
cp libdes.a ..

重新编译changepasswd后,安装完成 ;

完成后启动APACHE。 登录http://IP/cgi-bin/changepassword.cgi

安装完成后WEB登录,显示中文乱码

把 httpd 的配置文件 /etc/httpd/conf/httpd.conf 中  :

AddDefaultCharset UTF-8 改为:

AddDefaultCharset zh_CN.UTF-8

etc/samba/smb.cnf部分配置如下

[global]
       workgroup =
        server string = Chinanews shared
        # max 50KB per log file, then rotate
        log file = /var/log/samba/%m.log
        max log size=200KB
        display charset = UTF-8
        unix charset = UTF-8
        dos charset = UTF-8
        #dos charset = CP850
        security = user
        passdb backend = smbpasswd
        pam password change = no
        passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*
        smb passwd file = /etc/samba/smbpasswd
        passwd program = /usr/bin/passwd %u
        unix password sync = yes
        load printers = no
        cups options = raw
        #obtain list of printers automatically on SystemV
[homes]
        comment = Home Directories
        browseable = no
        writable = yes
;       valid users = %S
;       valid users = MYDOMAIN\%S
[Mulu1]
        comment = share for users
        path = /data/mulu1
        read only = no
        browseable = yes
        writable = no
        public = no
        create mode = 0777
        directory mode = 2777
#       hosts allow = 
        vaild users = @rogroup @rwgroup
        write list = @rwgroup
[Mulu2]
        comment = share for users
        path = /data/mulu2
        read only = no
        public = no
       browseable = yes
        writable = no
        public = no
        create mode = 0777
        directory mode = 2777
        #vaild users =  @rwgroup
        write list= user1 user2 user3

转自:http://www.apelearn.com/bbs/thread-5250-1-1.html

===================================练习题======================================

1. samba服务用在什么地方?

samba服务用于把Linux服务器上的文件或者打印接共享给windows或者Linux.

2. 在samba服务的配置文件中,[global]配置部分的security 有几个安全等级?分别表示什么意义?security=有四个安全等级:

share:用户不需要账户及密码即可登录samba服务器

user:由提供服务的samba服务器负责检查账户及密码(默认)

server:检查账户及密码的工作由另一台windows或samba服务器负责

domain:指定windows域控制服务器来验证用户的账户及密码。

3. passdb backend 三种类型 smbpasswd, tdbsam和ldapsam 有什么区别?

smbpasswd:该方式是老版本samba使用的机制,它使用工具smbpasswd给系统用户置一个

Samba密码,客户端就用此密码访问Samba资源。

tdbsam:新版本默认的账号存储机制,也是把smb账号存在一个文件中,使用pdbedit工具来创建和修改smb账号。账号必须是系统用户。

ldapsam:基于LDAP账户管理方式验证用户。

4. 启动samba服务的命令是什么?

service smb start  或  /etcinit.d/samba  start

5. 使用tdbsam用户后台时,如何创建新用户,如何锁定、恢复用户,又如何删除一个用户?

pdbedit -a username  创建

pdbedit -c "[D]" -u username  锁定

pdbedit -c "[]" -u username  恢复

pdbedit -x username  删除

6. 如何在IE浏览器里访问远程的samba服务器?

file://ip/

7. 在linux上,我们如何访问samba服务器?(两种情况)

smbclient //ip/share -U username

mount -t cifs //ip/share /mnt -o username=user,password=pass  //需安装 cifs_vtils

8.Smbpasswd命令参数详解?

-h:显示smbapasswd的命令格式帮助

-a:添加指定的用户账户

-d:禁用指定的用户账户

-e:启用指定的用户账户

-x:删除指定的用户账户

9.samba配置文件中主要部分简介?

[global]  :定义全局的变量

[homes]   :共享自己的家目录,这部分可以注释掉,更换为自定义的目录

[printers]:设置打印及共享

时间: 2024-10-08 20:45:11

第 四 十 二 天:samba 的 相 关 问 题的相关文章

第 四 十 二 天:FTP 的 相 关 问 题

小Q:让人迷茫的原因只有一个,那就是在本该拼搏的年龄,想得太多,做得太少. vsftpd配置完匿名账号却让输入用户名密码------------------------- 一开始不可写,后来配置了可写,并修改了/var/ftp/ 目录属性所属主与组都是ftp,因为毕竟匿名用户也是用ftp账号登录的.其实这样是不对的,系统默认/var/ftp 目录所属主与组是root,如果修改成ftp就会出问题,就会弹出窗口让登录. 解决:chown root:root /var/ftp chmod 755 /v

第 四 十 二 天:Tomcat 的 相 关 问 题

配置tomcat容器的access.log日志------------------------------ 编译server.xml文件,在 <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false&q

第 四 十 三 天:nginx 的 相 关 问 题

nginx 设置自定义header ----------------------------------------- vim   nginx.conf   在http模块中加入: add_header  myheader  "the coments of myheader"; 这里的myheader 是自定义的名字,你自己随便写. 加完后,测试:curl  -I  http://IP Nginx中禁止访问.txt文件----------------------------------

第 四 十 三 天:Apache 的 相 关 问 题

小Q:人生的意志和劳动将创造奇迹般的奇迹.       -- 涅克拉索夫 apache设置自定义header----------------------------------------- 1. 在设置自定义header前,需要先检测一下你的httpd是否加载了mod_headers /usr/local/apache2/bin/apachectl  -l 否则需要重新编译一下了 2.  在httpd.conf 中加入 <IFModule mod_headers.c> Header add

第 四 十 三 天:mysql 的 相 关 问 题

小Q:梦想着诗一般的日子,时而简单,时而精致:处在歌一般的生活,时而 靠谱,时而不着调. ====================================================================== mysql在指定IP上启动端口----------------------------------------- 只需在my.cnf中的[mysqld]字段中加入一行 bind-addr  = 1.1.1.1 同一台MySQL服务器启动多个端口------------

ActionScript3游戏中的图像编程(连载四十二)

2.3.4 Photoshop高度==Flash距离? 剩下高度一项了,跟距离相对应吗? 但是,高度以角度为单位,但距离却是像素,似乎拉不上关系.不过我们照样做下试验:先试一下Photoshop的高度.在调整的过程里发现,浮雕的厚度并没随着高度的增加而变大.只感觉到光影往某个方向微妙地移动着. 图 2.69~图 2.75展示了不同高度下的效果. 图 2.69 高度=0° 图 2.70 高度=15° 图 2.71 高度=30° 图 2.72 高度=45° 图 2.73 高度=60° 图 2.74

第四十二章

第四十二章1 道生“肾” 道生一,一生二,二生三,三生万物. 道生出混沌之气,混沌之气分出阴阳,阴阳又交汇出新的物质,从而生出万物. 道在我们身体内体现为“肾精”,要保护好.各位朋友大家好,今天我们接着来聊<道德经>.我们来看看老子带给我们什么样新的人生启发了,每天启发一点,天天进步.今天我们开始学习第四十二章,非常开心.因为我们<道德经>已经学习到一半的位置了,因为整个八十一章,我们学习到第四十二章了,过了一半了,这时间也是飞快的.我之前预计3年,我估计现在2年差不多讲完了.因为

NeHe OpenGL教程 第四十二课:多重视口

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第四十二课:多重视口 多重视口 画中画效果,很酷吧.使用视口它变得很简单,但渲染四次可会大大降低你的显示速度哦:) 欢迎来到充满趣味的另一课.这次我将向你展示怎样在单个窗口内显示多个视口.这些视口在窗口模式下能正确的调整大小.其中有

【Unity 3D】学习笔记四十二:粒子特效

粒子特效 粒子特效的原理是将若干粒子无规则的组合在一起,来模拟火焰,爆炸,水滴,雾气等效果.要使用粒子特效首先要创建,在hierarchy视图中点击create--particle system即可 粒子发射器 粒子发射器是用于设定粒子的发射属性,比如说粒子的大小,数量和速度等.在创建完粒子对象后,在右侧inspector视图中便可以看到所有的粒子属性: emit:是否是使用粒子发射器. min size:粒子最小尺寸. max size:粒子最大尺寸. min energy:粒子的最小生命周期