//samba基础知识linux
1.工做端口 UDP协议端口:137,138 tcp协议端口:139,445 2.软件包 samba samba-client.x86_64 samba-common 3.启动服务 service smb restart 4.配置文件 [global]---全局设置 ------------------------- A. security:share/user/server/domain share:不须要用户名和密码,匿名登陆 user:需用户名和密码 server: 用户名和密码在指定的一台samba上验证,验证错误,客户端会用user级别访问 domain:服务器加入window域环境,验证工做由windows域控制器负责。 ads:使用ads安全级别加入到windows域环境中,包含有domain级别中的全部功能,能够具有域控制器的功能。 B. config file = /etc/samba/smb.conf.%U #%U是变量,指代登陆用户名 [说明] ##security设为user时,samba服务器必须建立一些用户名和密码供客户端登陆使用,这些账号必须是linux系统中存在的用户,当用户登陆时,其在共享文件夹里的权限是其所用账号在samba所在linux中的权限 -------------------------- [share_config]---共享目录设置 ------------------- [public] ---共享目录名称 //10.10.54.226/public comment = Public Stuff ---标识 path = /home/samba ---服务器端共享目录的存储路径(要有权限) writable = yes ---是否具备写入权限 read only = yes ---只读权限 browseable = no ---共享目录是否可见(no为隐藏,yes可见) guest ok = yes ---匿名用户是否能够访问 write list = +staff ---指定那些用户或者用户组能够写入 --------------------
//samba测试工具ios
1:pdbedit:管理samba 用户数据库的一个工具 pdbedit -a -u username 增长一个samba用户 pdbedit -x samba_user 删除用户 pdbedit 查看建立的samba用户 2.工具2:samba测试命令 smbstatus -pS -u username smbclient -L 10.10.54.150 #查看后面所接主机上提供的共享资源 smbclient -L 10.10.54.150 -Uboss#以账号boss访问主机上的资源 smbclient //10.10.54.150/centos -Uboss%boss1 #相似ftp的登陆,直接操做服务器共享文件夹 mount -t cifs //10.10.54.150/centos /mnt/smb -o username=boss,password=boss1 #挂载
//例一:创建共享目录为softs,安全级别为share,只容许10.10.54.0/24网段访问shell
1.一下题目中,环境都是: samba服务器:10.10.54.150---centos6.4 客户机:10.10.54.158----ubuntu13 2.配置文件 ---------------------- shell> vim /etc/samba/smb.conf [global] security = share hosts allow = 10.10.54.0/24 [softs] comment = public path = /home/softs writeable = no browseable = yes ---------------------
//例二:创建共享目录为share,对全部人只有只读权限
数据库
1.##配置[服务器:150] ----------------------------- shell> vim /etc/samba/smb.conf [global] security = share [share] comment = public path = /pub read only = yes writable = no ------------------------------ 2.##测试[客户机:158] shell> smbclient //10.10.54.150/softs WARNING: The security=share option is deprecated Enter root's password: Domain=[HELLO,1003-LJ] OS=[Unix] Server=[Samba 3.6.9-151.el6] Server not using user level security and no password supplied. smb: \> ls smb: \> mkdir 12 NT_STATUS_MEDIA_WRITE_PROTECTED making remote directory \12 #只读
//例三:使用smbclient命令登陆samba服务器,并下载共享资源到/temp目录ubuntu
1.配置[服务器:150] ------------------------------- shell> vim /etc/samba/smb.conf [global] security = share [share] comment = public path = /pub read only = yes writable = yes ------------------------------- 2.测试[客户机:158] shell> cd /tmp shell> smbclient //10.10.54.150/share smb: \> mkdir mkdir <dirname> smb: \> ls . D 0 Tue Mar 4 17:03:55 2014 .. D 0 Tue Mar 4 15:43:53 2014 openssl-1.0.1e.tar.gz A 4459777 Mon Mar 3 09:38:52 2014 smb: \> get openssl-1.0.1e.tar.gz getting file \openssl-1.0.1e.tar.gz of size 4459777 as openssl-1.0.1e.tar.gz (82174.4 KiloBytes/sec) (average 82174.5 KiloBytes/sec)
//例四:创建共享目录为centos,其绝对路径为/share/centos,只有boss账号能够读写该目录,其余人只能读取vim
1.配置[服务器:150] ------------------------------ shell> vim /etc/samba/smb.conf [global] security = user [centos] comment = public path = /pub guest ok = no read only = yes writable = boss --------------------------- 2.创建账号 shell> useradd boss shell> useradd test shell> pdbedit -a -u boss shell> pdbedit -a -u test shell> pdbedit -L boss:502: test:504: 3.测试[客户机:158] ----测试boss shell> smbclient //10.10.54.150/centos -Uboss Enter boss's password: Domain=[HELLO,1003-LJ] OS=[Unix] Server=[Samba 3.6.9-151.el6] smb: \> mkdir 12 smb: \> ls . D 0 Tue Mar 4 17:14:35 2014 .. D 0 Tue Mar 4 15:43:53 2014 12 D 0 Tue Mar 4 17:14:35 2014 39371 blocks of size 524288. 32159 blocks available ---测试test shell> smbclient //10.10.54.150/centos -Utest Enter test's password: Domain=[HELLO,1003-LJ] OS=[Unix] Server=[Samba 3.6.9-151.el6] smb: \> ls . D 0 Tue Mar 4 17:14:35 2014 .. D 0 Tue Mar 4 15:43:53 2014 12 D 0 Tue Mar 4 17:14:35 2014 39371 blocks of size 524288. 32159 blocks available smb: \> mkdir 13 NT_STATUS_MEDIA_WRITE_PROTECTED making remote directory \13
//结合window2008活动目录,配置samba,用户名和密码认证来自活动目录。
windows
//环境说明 1.linux上的samba做为一台文件服务器监听用户请求,用户使用用户名和密码认证方式登陆samba服务器,默认状况下,samba服务器自带一个保存登陆用户名和密码的数据库来实现对登陆用户的身份确认 2.samba加入windows2008活动目录后,samba服务器再也不保存用户名和密码这些信息,而是把这些信息存储在windows server域控制器上,当用户使用用户名和密码登陆samba服务器时,身份认证工做由windows server上的活动目录负责,认证经过的用户就可使用samba服务器提供的资源 3.由上面两点,咱们能够知道,要验证samba是否成功加入windows server的域,首先要在windows server的test.com(下面步骤中会建立)域中建立一个用户,而后在linux主机上使用这个建立的用户名和密码登陆samba服务器,若是能够登陆,那么说明samba加入成功 //windows域和工做组概念 1.局域网上的资源须要管理,“域”和“工做组”就是两种不一样的网络资源管理模式 2.工做组:局域网上可能有不少的计算机存在,为了管理和查找的方便,将不一样的电脑按不一样分类分红一个个的工做组,这样方便管理和查找 3.工做组的不足之处是: A.工做组中每一台计算机都独立维护本身的资源,不能集中管理全部的网络资源 B.每一台计算机都在本地存储用户的帐户 C.一个帐户只能登陆到一台计算机 D.工做组中的计算机都是平等的,对于其它计算机来讲便是服务器,也是客户机 4.域(Domain)是一个共用“目录服务数据库”的计算机和用户的集合,域是逻辑分组,与网络的物理拓扑无关,能够很小,好比只有一台DC,也能够很大,包括遍及世界各地的计算机,好比大型跨国公司网络上的域 正是因为全部域成员计算机和域用户都共用这个域的“目录服务数据库”,域管理员就能够基于域的“目录服务数据库”来进行集中管理、共享资源,如用户、组、计算机账号、权限设置、组策略设置等等。目录服务为管理员提供从网络上任何一个计算机上查看和管理用户和网络资源的能力。目录服务也为用户提供惟一的用户名和密码,用户只需一次登陆,便可访问本域或有信任关系的其它域上的全部资源(固然用户得有权限才行),而不须要屡次提供用户名和密码登陆。 //windows2008上建立域控制器 ##10.10.54.152机子做为域控制器和DNS服务器 1.域控制器上存储着Active Directory,首先在网络和共享中内心更改网卡的首选DNS为改本机IP 2.开始菜单-运行对话框中输入dcpromo开始安装,新的域名为test.com,安装过程大多默认便可,DNS提示那一步选是 3.完成后重启系统 //linux上配置samba加入windows域 #Win 2008 Server是域控制器,linux是samba服务器,客户端提交的认证请求和受权是经过Kerberos5协议来完成的,因此要让Linux的samba服务器支持windows server的域认证 1.软件安装 shell> yum install krb5* -y shell> rpm -qa | grep krb5 krb5-server-1.10.3-10.el6.x86_64 pam_krb5-2.3.11-9.el6.x86_64 krb5-workstation-1.10.3-10.el6.x86_64 krb5-devel-1.10.3-10.el6.x86_64 krb5-libs-1.10.3-10.el6.x86_64 2.配置/etc/krb5.conf ----------------------------------------- [logging]#日志文件位置 default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [kdc] profile = /var/kerberos/krb5kdc/kdc.conf [libdefaults] default_realm = TEST.COM #大写,windows2008活动目录域名,刚才在windows上建立的test.com dns_lookup_realm = true dns_lookup_kdc = true ticket_lifetime = 24h renew_lifetime = 7d forwardable = true [realms] TEST.COM = { kdc = 10.10.54.152:88 #域控制器的IP admin_server = 10.10.54.152:749 default_domain = TEST.COM } [domain_realm] .test.com = TEST.COM #指定域 test.com = TEST.COM [appdefaults] pam = { debug = false ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false } shell>vim /var/kerberos/krb5kdc/kdc.conf [realms] TEST.COM = { #修改成TEST.COM ... ------------------------------------------------- 3.配置/etc/nsswitch.conf passwd: files winbind #先读files,而后再经过winbind认证 shadow: files winbind group: files winbind 4.配置/etc/samba/smb.conf ------------------------------------------ workgroup = TEST #工做组 server string = Filesrv password server = 10.10.54.152 #密码服务器地址,用于存放身份信息 realm = TEST.COM #认证服务器域名,全部认证信息都将由该服务器来提供。 security = ads #ads:使用ads安全级别加入到windows域环境中 netbios name = MYSERVER #centos netbios名,加入后会显示在windows server域的computers中 idmap uid = 16777216-33554431 idmap gid = 16777216-33554431 template shell = /bin/bash template homedir = /home/%U winbind use default domain = true winbind offline logon = true winbind enum groups = yes winbind enum users = yes winbind separator = / [centos] #共享的目录 comment = centos path = /home/samba guest ok = no read only = yes write list = boss browseable = yes #passdb backend = tdbsam #这行注释掉,不使用samba自己的密码认证 ----------------------------------------- 5.修改linux DNS服务器指向windows域IP shell> vim /etc/resolv.conf nameserver 10.10.54.152 6.重启samba和winbind服务 shell> service winbind restart shell> service smb restart //samba加入windows域控制器中 1. shell> kinit administrator@TEST.COM #TEST.COM为在windows上建立的域,注意大小写 Password for administrator@TEST.COM: #输入的密码是windows 2008管理员密码,没有提示说明测试成功 2.net 命令加入windows域 shell> net ads/rpc join -U administrator@TEST.COM Enter administrator@TEST.COM's password: Using short domain name -- TEST Joined 'MYSERVER' to dns domain 'test.com' No DNS domain configured for myserver. Unable to perform DNS Update. DNS update failed! #此时在windos2008 Active Directory管理中心 test.com 域下能够看到myserver 3.一些验证 #验证加入是否成功 shell> net ads testjoin Join is OK #查看域用户 sehll> wbinfo -u MYSERVER/boss MYSERVER/me MYSERVER/test MYSERVER/shift1 MYSERVER/shift2 MYSERVER/shift3 administrator guest krbtgt #查看域用户组 shell> wbinfo -g domain computers domain controllers schema admins enterprise admins cert publishers domain admins domain users domain guests group policy creator owners ras and ias servers allowed rodc password replication group denied rodc password replication group read-only domain controllers enterprise read-only domain controllers dnsadmins dnsupdateproxy //测试windows活动目录认证是否生效 1.在windows 活动目录中建立用户test,而后在linux上查看用户信息 shell> wbinfo -u MYSERVER/boss #linux机子上用户 MYSERVER/me MYSERVER/test administrator #下面是windows server上用户 guest krbtgt test #刚才在windows server上建立的域用户 2.验证是否能够登陆samba服务器 [ubuntu:158机子] shell> smbclient //10.10.54.150/centos -Utest #用刚才在windows2008中建立的test用户登陆 WARNING: The security=share option is deprecated Enter test's password: session setup failed: NT_STATUS_LOGON_FAILURE ##登陆失败了! /etc/samba/smb.conf 中指定的realm是 TEST.COM shell> smbclient //10.10.54.150/centos -W=TEST.COM -Utest #使用TEST.COM这个域组 WARNING: The security=share option is deprecated Enter test's password: Domain=[TEST] OS=[Unix] Server=[Samba 3.6.9-151.el6] smb: \> ls . D 0 Wed Mar 5 21:20:25 2014 .. D 0 Wed Mar 5 21:20:20 2014 game.sh A 4846 Wed Mar 5 21:20:25 2014 39371 blocks of size 524288. 32159 blocks available ##测试成功