zcambridge的个人空间 https://blog.eetop.cn/soc [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

linux和windows文件共享--with Samba

已有 3177 次阅读| 2006-12-28 09:56 |个人分类:ubuntu

天气: 晴朗
心情: 高兴
linux和windows文件共享
--with Samba


这个开场白不错 。用上!!
Linux的开放性与免费理念吸引了无数的计算机爱好者,越来越多的人加入了Linux的阵营。但Linux使用的文件系统为Ext3,和传统的Windows系列的FAT不同,如何沟通两者间的资源成为应用中的一大问题。下面就介绍几种解决该问题的方法。

(一)同一机器上文件系统的共享

1.Windows系统下访问Linux分区信息

网络上提供一些程序用于在Windows系统下访问Linux分区信息,可以在http: //uranus.it.swin.edu.au/~jn/linux/下找到相应软件;也可以在www.globalxs.nl站点下载程序 fsdext.zip,解压后依照说明将vext2d.vxd、tsdext2.vxd拷贝到c:\windows\system目录下,使用命令 mount /dev/hda2 g将Linux分区虚拟为新的盘符g,卸载也只需使用命令mount /u g即可轻松完成。

2.Linux系统下访问Windows分区信息

直接使用Linux 的mount 命令加配参数即可实现。

(二)不同机器间文件系统的共享(本文主要关注这个)

需要在Linux系统上配置NFS、Samba等服务进程以支持资源互访。只是 linux系统互访一般用NFS 比较好一点。Samba则还支持win和linux的互访。
    下面介绍如何配置Samba服务进程。
Samba由两个守护进程smbd和 nmbd组成,可由命令 /etc/init.d/samba start 启动。启动时读取配置文件 /etc/smb.conf。查询是否启动可使用ps -ef |grep smbd命令;停止Samba可使用命令/etc/init.d/samba stop。

这里我举个例子好了, 我自己就是这么设置的。
此例子根据linuxsir上一篇
一步一学Linux与Windows 共享文件Samba (v0.2b)改编。原文值得推荐,可以更全面认识samba!

稍微复杂一点的用户共享模型(适合10人左右的小型企业)
比如一个公司有五个部门,分别是ubuntusoc,soc01,soc02,soc03,soc04。我们想为这家公司设计一个比较安全的共享文件模型。每个用户都有自己的网络磁盘,soc01到soc04还有共用的网络硬盘;所有用户(包括匿名用户)有一个共享资料库,此库为了安全是只读的;所有的用户(包括匿名用户)要有一个临时文件终转的文件夹... ....


5.1 共享权限设计实现的功能;

1)ubuntusoc部门具有管理所有SMB空间的权限;
2)soc01到soc04拥有自己的空间,并且除了自身及ubuntusoc有权限以外,对其它用户具有绝对隐私性;
3)ubuntusoc01到ubuntusoc04拥有一个共同的读写权限的空间;
4) 所有用户(包括匿名用户)有一个有读权限的空间,用于资料库,所以不要求写入数据。
5)soc01到soc04还有一个共同的空间,对soc01到soc04的用户来说是隐私的,不能让其它用户来访问。
6) 还要有一个空间,让所有用户可以写入,能删除等功能,在权限上无限制 ,用于公司所有用户的临时文档终转等;


5.2 在服务器上创建相应的目录;

[root@localhost ~]# mkdir -p /opt/ubuntusoc
[root@localhost ~]# cd /opt/ubuntusoc
[root@localhost ubuntusoc]# mkdir soc01 soc02 soc03 soc04 socshare soc0104rw socallrw
[root@localhost ubuntusoc]# ls
soc01 soc0104rw soc02 soc03 soc04 socallrw socshare

注:功用如下:

/opt/ubuntusoc 这是管理员目录,负责管理其下所有目录;
/opt/ubuntusoc/soc01 是soc01的家目录,用于私用,除了用户本身和ubuntusoc以外其它用户都是不可读不可写;
/opt/ubuntusoc/soc02 是soc02的家目录,用于私用,除了用户本身和ubuntusoc以外其它用户都是不可读不可写;
/opt/ubuntusoc/soc03 是soc03的家目录,用于私用,除了用户本身和ubuntusoc以外其它用户都是不可读不可写;
/opt/ubuntusoc/soc04 是soc04的家目录,用于私用,除了用户本身和ubuntusoc以外其它用户都是不可读不可写;
/opt/ubuntusoc/socshare 所用用户(除了ubuntusoc有权限写入外)只读目录
/opt/ubuntusoc/soc0104rw 是用于soc01到soc04用户可读可写共用目录,但匿名用户不能读写;
/opt/ubuntusoc/socallrw 用于所有用户(包括匿名用户)的可读可写;


5.3 添加用户用户组,设置相应目录家目录的权限;


5.3.1 添加用户组;

[root@localhost ~]# /usr/sbin/groupadd ubuntusoc
[root@localhost ~]# /usr/sbin/groupadd soc01
[root@localhost ~]# /usr/sbin/groupadd soc02
[root@localhost ~]# /usr/sbin/groupadd soc03
[root@localhost ~]# /usr/sbin/groupadd soc04
[root@localhost ~]# /usr/sbin/groupadd soc0104


5.3.2 添加用户;

[root@cuc03 ~]# useradd -g soc01 -G soc0104 -d /opt/ubuntusoc/soc01 -s /sbin/nologin soc01
[root@cuc03 ~]# useradd -g soc02 -G soc0104 -d /opt/ubuntusoc/soc02 -s /sbin/nologin soc02
[root@cuc03 ~]# useradd -g soc03 -G soc0104 -d /opt/ubuntusoc/soc03 -s /sbin/nologin soc03
[root@cuc03 ~]# useradd -g soc04 -G soc0104 -d /opt/ubuntusoc/soc04 -s /sbin/nologin soc04
[root@cuc03 ~]# useradd -g ubuntusoc -d /opt/ubuntusoc -G ubuntusoc,soc01,soc02,soc03,soc04,soc0104 -d /opt/ubuntusoc -s /sbin/nologin ubuntusoc

为什么这样添加用户?请参考:

《Linux 文件和目录的属性》
《Linux 用户管理工具介绍》
其实,直接看看adduser或者useradd的帮助比较好,原文用的就是adduser实际参数是和命令不匹配的,我看了看useradd倒是符合,改过来就好了。

当然我们还得学会查看用户信息的工具用法,比如 用finger和id来查看用户信息,主要是看用户是否添加正确;比如;请参考《Linux 用户(User)查询篇》

[root@localhost ~]# id ubuntusoc
[root@localhost ~]# finger ubuntusoc


5.3.3 添加samba用户,并设置密码;

我们用的方法是先添加用户,但添加的这些用户都是虚拟用户,因为这些用户是不能通过SHELL登录系统的;另外值得注意的是系统用户密码和 Samba用户的密码是不同的。如果您设置了系统用户能登入SHELL,可以设置用户的Samba密码和系统用户通过SHELL登录的密码不同。

我们通过smbpasswd 来添加Samba用户,并设置密码。原理是通过读取/etc/passwd文件中存在的用户名。

[root@localhost soc01]# smbpasswd -a ubuntusoc
New SMB password: 注:在这里添加Samba用户ubuntusoc的密码;
Retype new SMB password: 注:再输入一次;

用同样的方法来添加 soc01、soc02、soc03、soc04的密码;


5.3.4 配置相关目录的权限和归属;

[root@cuc03 ~]# chmod 755 /opt/linux
[root@cuc03 ~]# chown ubuntusoc:ubuntusoc /opt/ubuntusoc
[root@cuc03 ~]# cd /opt/ubuntusoc
[root@cuc03 ~]# chmod 2770 soc0*
[root@cuc03 ~]# chown soc01.ubuntusoc soc01
[root@cuc03 ~]# chown soc02.ubuntusoc soc02
[root@cuc03 ~]# chown soc03.ubuntusoc soc03
[root@cuc03 ~]# chown soc04.ubuntusoc soc04
[root@cuc03 ~]# chown ubuntusoc.soc0104 soc0104rw
[root@cuc03 ~]# chown ubuntusoc.ubuntusoc socshare
[root@cuc03 ~]# chmod 755 socshare
[root@cuc03 ~]# chown ubuntusoc:ubuntusoc socallrw
[root@cuc03 ~]# chmod 3777 socallrw


5.4 修改Samba配置文件 smb.conf;

配置文件如下,修改/etc/samba/smb.conf后,不要忘记重启smbd和nmbd服务器;


[global]
workgroup = ubuntusoc
netbios name = ubuntusoc
server string = Linux Samba Test Server
security = share
[ubuntusoc]
        comment = ubuntusocadmin
        path = /opt/ubuntusoc/
        create mask = 0664
#create mask是用户创建文件时的权限掩码;对用户来可读可写,对用户组可读可写,对其它用户可读;
        directory mask = 0775
#directory mask 是用来设置用户创建目录时的权限掩码,意思是对于用户和用户组可读可写,对其它用户可读可执行;
        writeable = yes
        valid users = ubuntusoc
        browseable = yes
[socshare]
        path = /opt/ubuntusoc/socshare
        writeable = yes
        browseable = yes
        guest ok = yes
[socallrw]
        path = /opt/ubuntusoc/socallrw
        writeable = yes
        browseable = yes
        guest ok = yes
[soc0104rw]
        comment = soc0104rw
        path = /opt/ubuntusoc/soc0104rw
        create mask = 0664
        directory mask = 0775
        writeable = yes
        valid users = ubuntusoc,@soc0104
#@soc0104是用户组;
        browseable = yes
[soc01]
        comment = soc01
        path = /opt/ubuntusoc/soc01
        create mask = 0664
        directory mask = 0775
        writeable = yes
        valid users = soc01,@ubuntusoc
        browseable = yes
[soc02]
        comment = soc02
        path = /opt/ubuntusoc/soc02
        create mask = 0664
        directory mask = 0775
        writeable = yes
        valid users = soc02,@ubuntusoc
        browseable = yes
[soc03]
        comment = soc03
        path = /opt/ubuntusoc/soc03
        create mask = 0664
        directory mask = 0775
        writeable = yes
        valid users = soc03,@ubuntusoc
        browseable = yes
[soc04]
        comment = soc04
        path = /opt/ubuntusoc/soc04
        create mask = 0664
        directory mask = 0775
        writeable = yes
        valid users = soc04,@ubuntusoc
        browseable = yes

保存关闭后,执行

[root@localhost ~]#
/etc/init.d/samba restart
重启samba后。应该就可以从windows访问了,还是
那篇文章。最后有好几张图。

点赞

发表评论 评论 (2 个评论)

回复 CoCo3646 2007-1-2 23:12
Thank u very much
Guest 2007-5-1 09:37
http://e5646552758171e5720b586da4e6eeee-t.k90u0h.info <a href="http://e5646552758171e5720b586da4e6eeee-h.k90u0h.info">e5646552758171e5720b586da4e6eeee</a> [url]http://e5646552758171e5720b586da4e6eeee-b1.k90u0h.info[/url] [url=http://e5646552758171e5720b586da4e6eeee-b2.k90u0h.info]e5646552758171e5720b586da4e6eeee[/url] [u]http://e5646552758171e5720b586da4e6eeee-b3.k90u0h.info[/u] 86b4eaaaf8201e29470f084ce1d2d695

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 3

    粉丝
  • 0

    好友
  • 8

    获赞
  • 34

    评论
  • 468

    访问数
关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-18 16:58 , Processed in 0.038501 second(s), 16 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部