samba3.0 详细配置实例

来源:互联网 发布:codevs题 知乎 编辑:程序博客网 时间:2024/05/19 17:06
现在做了部分改动,并添加了mysql虚拟用户,还有补充了samba中批量增加用户的脚本.
Samba3.0服务器实战调试
Centos5预装的samba已经是Samba版本3.0.23c,功能已经非常强大了,今天我们调试的重点不是samba3.0的新功能,我们还是先来实现他的基本功能,文件共享服务,至于域控制器功能我会在以后的调试手记中阐述。
我们今天要实现的环境是,公司有:采购,营运,人资,企化,工程,财务,电脑,总经理室,8个部门,我们分别为8个部门建立8个用户组为 Purchase, Transport business, Manpower, Business, Project, Computer, General manager room
8个部门里各有3个用户,我们建用户分别为:部门领导(Leadership),文件夹管理者(Superintendent),使用者(User)
然后我们分别就公司的具体情况建立相应的目录及访问权限,通过以下的例子,希望大家能在平时的工作中灵活的应用samba的安全权限来设置你们的samba文件服务器。
1。首先服务器采用用户验证的方式,每个用户可以访问自己的宿主目录,并且只有该用户能访问宿主目录,并具有完全的权限,而其他人不能看到你的宿主目录。
2。建立一个电脑部的共享文件夹,希望Computer组和部门领导能看到,使用者也可以访问,但只有文件夹管理者有写的权限,还有一个部门文档交换目录public,所有部门员工都可读可写,但是每个用户只能删除自己创建的文件和目录,其他部门不可读写。
3。其他部门类似.全公司有一个全部门共享的资料库公共文档,所有部门只读,只有管理者可读可写.建议一个文件交换目录共享可写,所有人都能读写,包括guest用户,但每个人不能删除别人的文件。
前期的工作:
#groupadd ?g 1100  purchase;groupadd ?g 1200 transport;groupadd ?g 1300 manpower; groupadd ?g 1400 business; groupadd  -g 1500 project; groupadd  -g 1600 computer; groupadd ?g 1700 manager;
#cd /var/samba;  mkdir ‘采购部’ ‘营运部’ ‘人资部’ ‘企化部’ ‘工程部’ ‘财务部’ ‘电脑部’ ‘总经理室’ ‘公共文档’ ‘共享可写’ ‘共享软件’
添加用户,使得普通用户不能登陆系统.
useradd -u 1602 -d  /var/samba/电脑部/nick nick -c “nick” -g computer
useradd -u 1100 -d /var/samba/采购部/purchase purchase -c “采购管理者” -g purchase -s /sbin/nologin;
useradd -u 1101 -d /var/samba/采购部/purone purone -c “采购员一” -g purchase -s /sbin/nologin;
useradd -u 1102 -d  /var/samba/采购部/purtwo purtwo -c “采购员二” -g purchase -s /sbin/nologin;
useradd -u 1103 -d /var/samba/采购部/purthree purthree -c “采购员三” -g purchase -s /sbin/nologin;
useradd -u 1104 -d /var/samba/采购部/purfour purfour -c “采购员四” -g purchase -s /sbin/nologin;
用户的管理:
#smbpasswd -a  purchase; smbpasswd -a  purone; smbpasswd -a  purtwo; smbpasswd -a  purthree; smbpasswd -a  purfour;
权限的分配:
# chown  -R nick:computer 公共文档 共享可写 共享软件
# chmod 1777 共享可写
#chmod 775 共享软件;chmod 775 公共文档
#chown nick:computer 电脑部/
#chown -R nick:computer电脑部/public/
#chmod -R 1770电脑部/public/
# chown purchase: purchase 采购部
# chown -R nick:computer采购部/public/
#chmod -R 1770采购部/public/
我们为了避免麻烦可以在这里把上面所有的文件夹的权限都设置成777,我们通过samba灵活的权限管理来设置上面的5点要求。
以下是我的smb.conf的配置文件
[global]
workgroup = domain
#我的网络工作组
server string = Frank’s Samba File Server
#我的服务器名描述
security = user
os level = 33
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
#使用加密密码机制,在winArray5和winnt使用的是明文其他的基本上可以按照默认的来。
#支持中文环境
netbios name = fileserver
   display charset = cpArray36
   unix charset = cpArray36
   dos charset = cpArray36
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S
create mode = 0664
directory mode = 0775
Veto files = /*.exe/*.com/*.dll/*.bat/
[cdrom]
comment = %L’s DVDROM
path = /mnt/cdrom
public = yes
browseable = yes
root preexec = /bin/mount -t isoArray660 -0 iocharset=cpArray36 /dev/cdrom /mnt/cdrom
root postexec = /bin/umount /mnt/cdrom
[电脑部]
        comment = 电脑部内部共享
        path = /var/samba/电脑部/public
        public = no
        valid users = nick,@computer
        write list = @computer
        printable = no
        #browseable = no
        create mode = 0660
        directory mode = 0770
        Veto files = /*.exe/*.com/*.dll/*.bat/
[共享软件]
        comment = 公司共享软件
        path = /var/samba/共享软件
        public = yes
        writable =no
        write list = nick
        printable = no
        Veto files = /*.exe/*.com/*.dll/*.bat/
[公共文档]
        comment = 公司公共文档
        path = /var/samba/公共文档
        public = yes
        writable = no
        read only = yes
        Veto files = /*.exe/*.com/*.dll/*.bat/
[共享可写]
       comment = 公司内部文档交换目录
       path = /var/samba/共享可写
       public = yes
       writable = yes
       Veto files = /*.exe/*.com/*.dll/*.bat/
[采购部]
        comment = 采购部内部共享      
        browseable = yes
        printable = no
        write list = @purchase
        path = /var/samba/采购部/public
        valid users = nick,@purchase
        create mode = 0660
        directory mode = 0770
        Veto files = /*.exe/*.com/*.dll/*.bat/
#共享可写段基本能满足我们的第4要求,但不能满足每个人不能删除别人的文件这个条件,即使里设置了mask也是没用,其实这个条件只要unix设置一个粘着位就行
chmod -R 1777 /var/samba/共享可写
注意这里权限是1777,类似的系统目录/tmp也具有相同的权限,这个权限能实现每个人能自由写文件,但不能删除别人的文件这个要求
到此为止我们的设置已经能实现我们的共享文件要求,记得重启服务哦
#service smb restart
如果大家没有winodws,不妨先用samba的cilent端命令来测试一下命令的用法我在这里只举几个例子,具体的大家去试验 :smbclient -L 1Array2.168.8.250 -N
guest帐户查询你的服务器的samba共享情况,你可以检验一下是否carl目录时候能被guest帐户看到,应该是看不到的,当然你也可以以某个用户的名义查看
smbclient -L 1Array2.168.8.250  -U nick
系统会提示密码,只要输入smb密码就行。
smbclient //1Array2.168.8.250/nick-U nick
#以nick用户的名义登录nick目录
smbmount //1Array2.168.8.250/nick/mnt/nick-o username=nick
#把服务器的财务目录映射到本地的/mnt/nick目录
简单的病毒防护: 如果想拒绝EXE文件,COM文件,或DLL文件,你可以象这样设置Veto files的属性:Veto files = /*.exe/*.com/*.dll/