文章转载:http://ityunwei2017.blog.51cto.com/7662323/1341610ios
案例1、公司现有一个工做组workgroup,须要添加samba服务器做为文件服务器,并发布共享目录/home/share,共享名为public,此共享目录容许全部员工访问。shell
一、主配置文件/etc/samba/smb.conf修改windows
#======================= Global Settings ===================================== [global] workgroup = WORKGROUP //定义工做组,也就是windows中的工做组概念 server string = Justin peng Samba Server Version %v //定义Samba服务器的简要说明 netbios name = Justin_peng_Samba //定义windows中显示出来的计算机名称 # --------------------------- Logging Options ----------------------------- log file = /var/log/samba/log.%m //定义Samba用户的日志文件,%m表明客户端主机名,Samba服务器会在指定的目录中为每一个登录主机创建不一样的日志文件 # ----------------------- Standalone Server Options ------------------------ security = share //共享级别,用户不须要帐号和密码便可访问 # passdb backend = tdbsam # ----------------------- 文末添加如下 ------------------------ [public] comment = Public Stuff path = /home/share public = yes
二、创建共享目录
bash
设置了共享目录/home/share,须要创建该目录,因为要设置匿名用户能够下载或上传共享文件,因此要给/share目录受权为nobody权限。服务器
[root@justin bin]# mkdir /home/share [root@justin bin]# touch /home/share/{aaa.txt,bbb.txt} [root@justin bin]# ls /home/share aaa.txt bbb.txt [root@justin bin]# chown nobody:nobody /home/share/ -R [root@justin bin]# ll /home/share/ 总用量 0 -rw-r--r-- 1 nobody nobody 0 12月 17 13:44 aaa.txt -rw-r--r-- 1 nobody nobody 0 12月 17 13:44 bbb.txt [root@justin bin]# /etc/init.d/smb restart 关闭 SMB 服务: [肯定] 启动 SMB 服务: [肯定] [root@justin bin]# /etc/init.d/nmb restart 关闭 NMB 服务: [肯定] 启动 NMB 服务: [肯定] [root@justin bin]#
三、测试samba配置文件正确性并发
[root@justin bin]# testparm Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Processing section "[homes]" Processing section "[printers]" Processing section "[public]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions [global] netbios name = JUSTIN_PENG_SAMBA server string = Justin peng Samba Server Version %v log file = /var/log/samba/log.%m max log size = 50 cups options = raw [homes] comment = Home Directories read only = No browseable = No [printers] comment = All Printers path = /var/spool/samba printable = Yes browseable = No [public] comment = Public Stuff path = /home/share guest ok = Yes
[root@justin bin]#
ide
四、访问samba共享文件工具
Server:RHEL6.3 10.15.72.38测试
Client: RHEL6.3 10.15.72.83ui
Windows 10.15.72.73
在Linux下访问Samba服务器的共享文件
[root@justin ~]# smbclient //10.15.72.38/public -bash: smbclient: command not found [root@justin ~]# rpm -qa|grep samba samba-common-3.6.9-164.el6.i686 samba-winbind-3.6.9-164.el6.i686 samba-winbind-clients-3.6.9-164.el6.i686 [root@justin ~]# mount /dev/cdrom /mnt/cdrom/ mount: block device /dev/sr0 is write-protected, mounting read-only [root@justin ~]# find /mnt/cdrom/Packages/ -name '*samba*' /mnt/cdrom/Packages/samba-3.5.10-125.el6.i686.rpm /mnt/cdrom/Packages/samba-client-3.5.10-125.el6.i686.rpm /mnt/cdrom/Packages/samba-common-3.5.10-125.el6.i686.rpm /mnt/cdrom/Packages/samba-winbind-3.5.10-125.el6.i686.rpm /mnt/cdrom/Packages/samba-winbind-clients-3.5.10-125.el6.i686.rpm /mnt/cdrom/Packages/sblim-cmpi-samba-1.0-1.el6.i686.rpm [root@justin ~]# rpm -ivh /mnt/cdrom/Packages/samba-client-3.5.10-125.el6.i686.rpm warning: /mnt/cdrom/Packages/samba-client-3.5.10-125.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY error: Failed dependencies: samba-common = 0:3.5.10-125.el6 is needed by samba-client-0:3.5.10-125.el6.i686 samba-winbind-clients = 0:3.5.10-125.el6 is needed by samba-client-0:3.5.10-125.el6.i686 [root@justin ~]# yum install -y samba-client Complete! [root@justin ~]# rpm -qa|grep samba samba-winbind-3.6.9-167.el6_5.i686 samba-winbind-clients-3.6.9-167.el6_5.i686 samba-client-3.6.9-167.el6_5.i686 samba-common-3.6.9-167.el6_5.i686 [root@justin ~]# smbclient //10.15.72.38/public Enter root's password: Anonymous login successful Domain=[WORKGROUP] OS=[Unix] Serv er=[Samba 3.5.10-125.el6] smb: \> ls . D 0 Tue Dec 17 13:44:53 2013 .. D 0 Tue Dec 17 13:43:40 2013 aaa.txt 0 Tue Dec 17 13:44:53 2013 bbb.txt 0 Tue Dec 17 13:44:53 2013 62915 blocks of size 131072. 58554 blocks available smb: \> q [root@justin ~]#
客户端须要安装好samba-client,上面直接挂载用安装盘里软件包安装失败是依赖关系失败,系统安装的依赖包版本高于软件包里的samba-client版本,最后经过yum安装
在windows下访问Samba服务器的共享文件
直接在运行里输入:\\10.15.72.38\public145915755.png
案例2、公司现有多个部门,因工做须要,将IT部的资料存放在samba服务器的/home/it 目录中集中管理,以便IT人员浏览,而且该目录只容许IT部员工访问
一、建立组和用户 [root@justin bin]# groupadd IT [root@justin bin]# useradd -g IT -s /sbin/nologin justin1 [root@justin bin]# useradd -g IT -s /sbin/nologin justin2 [root@justin bin]# passwd justin1 更改用户 justin1 的密码 。 新的 密码: 从新输入新的 密码: passwd: 全部的身份验证令牌已经成功更新。 [root@justin bin]# echo "justin123"|passwd --stdin justin2 更改用户 justin2 的密码 。 passwd: 全部的身份验证令牌已经成功更新。 [root@justin bin]#
因为设置了用户的shell为nologin,即便设置了密码也是没法登录系统
二、将justin一、justin2假如samba帐户中
[
root@justin ~]# smbpasswd -a justin1 New SMB password: Retype new SMB password: Added user justin1. [root@justin ~]# smbpasswd -a justin2 New SMB password: Retype new SMB password: Added user justin2. [root@justin ~]#
smbpasswd命令的主要选项:
-h:显示smbpasswd命令的帮助信息
-a:添加指定的Samba用户账号
-d:禁用指定的用户账号
-e:启用指定的用户账号
-x:删除指定的用户账号
不使用任何命令选项时能够用于修改Samba用户的密码
三、建立共享封建
[
root@justin bin]# mkdir /home/IT [root@justin bin]# touch /home/IT/{ccc.txt,ddd.txt} [root@justin bin]# echo "Samba test file1" > /home/IT/ccc.txt [root@justin bin]# echo "Samba test file2" > /home/IT/ddd.txt [root@justin bin]#
四、修改主配置文件/etc/samba/smb.conf
#======================= Global Settings ===================================== [global] workgroup = WORKGROUP //定义工做组,也就是windows中的工做组概念 server string = Justin peng Samba Server Version %v //定义Samba服务器的简要说明 netbios name = Justin_peng_Samba //定义windows中显示出来的计算机名称 # --------------------------- Logging Options ----------------------------- log file = /var/log/samba/log.%m //定义Samba用户的日志文件,%m表明客户端主机名,Samba服务器会在指定的目录中为每一个登录主机创建不一样的日志文件 # ----------------------- Standalone Server Options ------------------------ security = user //用户级别,由提供服务的Samba服务器负责检查帐户和密码 passdb backend = tdbsam [homes] //设置用户宿主目录 comment = Home Directories browseable = no writable = yes ; valid users = %S ; valid users = MYDOMAIN\%S # ----------------------- 文末添加如下 ------------------------ [public] comment = Public Stuff path = /home/share public = yes [IT] //IT 组目录,只容许ts组成员访问 comment = IT path = /home/it valid users = @IT [root@justin bin]# /etc/init.d/smb reload 从新载入 smb.conf 文件: 肯定] [root@justin bin]# testparm Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Processing section "[homes]" Processing section "[printers]" Processing section "[public]" Processing section "[IT]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions [global] netbios name = JUSTIN_PENG_SAMBA server string = Justin peng Samba Server Version %v log file = /var/log/samba/log.%m max log size = 50 cups options = raw [homes] comment = Home Directories read only = No browseable = No [printers] comment = All Printers path = /var/spool/samba printable = Yes browseable = No [public] comment = Public Stuff path = /home/share guest ok = Yes [IT] comment = IT path = /home/IT valid users = @IT [root@justin bin]# [
在windows下访问Samba服务器的共享文件
直接在运行里输入:\\10.15.72.38输入登录信息
153017298.png
进入后有三个目录,public以前共享的目录,it本实例的共享,justin1登录用户的主目录,这是主配置文件中[home]选项定
Tips:windows下查看和清除访问共享信息:
net use
net use \\10.15.72.38\it /del
在Linux下访问Samba服务器的共享文件
[
root@justin ~]# smbclient //10.15.72.38/IT -U justin1%justin Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.5.10-125.el6] smb: \> ls . D 0 Tue Dec 17 16:31:08 2013 .. D 0 Tue Dec 17 16:30:47 2013 aaa.txt 16 Tue Dec 17 16:31:26 2013 bbb.txt 16 Tue Dec 17 16:31:30 2013 62915 blocks of size 131072. 58553 blocks available smb: \> q [root@justin ~]#
案例3、实现不一样的用户访问同一个共享目录具备不一样的权限
需求:
1. 公司有5个部门,分别为:人事行政部(HR & Admin Dept)、财务部(Financial Management Dept)、技术支持部(Technical Support Dept)、项目部(Project Dept)、客服部(Customer Service Dept)。
2. 各部门的文件夹只容许本部门员工有权访问;各部门之间交流性质的文件放到公用文件夹中。
3. 每一个部门都有一个管理本部门文件夹的管理员帐号和一个只能新建和查看文件的普通用户权限的帐号。
4. 公用文件夹中分为存放工具的文件夹和存放各部门共享文件的文件夹。
5. 对于各部门本身的文件夹,各部门管理员具备彻底控制权限,而各部门普通用户能够在该部门文件夹下新建文件及文件夹,而且对于本身新建的文件及文件夹有彻底控制权限,对于管理员新建及上传的文件和文件夹只能访问,不能更改和删除。不是本部门用户不能访问本部门文件夹。
6. 对于公用文件夹中的各部门共享文件夹,各部门管理员具备彻底控制权限,而各部门普通用户能够在该部门文件夹下新建文件及文件夹,而且对于本身新建的文件及文件夹有彻底控制权限,对于管理员新建及上传的文件和文件夹只能访问,不能更改和删除。本部门用户(包括管理员和普通用户)在访问其余部门共享文件夹时,只能查看不能修改删除新建。对于存放工具的文件夹,只有管理员有权限,其余用户只能访问。
规划:
1. 在/home下建立如下几个文件夹:HR、 FM、TS、PRO、CS和Share。在Share下又有如下几个文件夹:HR、FM、TS、PRO、CS和Tools。
2. 各部门对应的文件夹由各部门本身管理,Tools文件夹由管理员维护。
3. HR管理员帐号:hradmin;普通用户帐号:hruser。
FM管理员帐号:fmadmin;普通用户帐号:fmuser。
TS管理员帐号:tsadmin;普通用户帐号:tsuser。
PRO管理员帐号:proadmin;普通用户帐号:prouser。
CS管理员帐号:csadmin;普通用户帐号:csuser。
Tools管理员帐号:admin。
建立用户并加入到samba帐户中:
[root@justin ~]# useradd -s /sbin/nologin hradmin [root@justin ~]# useradd -g hradmin -s /sbin/nologin hruser [root@justin ~]# useradd -s /sbin/nologin fmadmin [root@justin ~]# useradd -g fmadmin -s /sbin/nologin fmuser [root@justin ~]# useradd -s /sbin/nologin tsadmin [root@justin ~]# useradd -g tsadmin -s /sbin/nologin tsuser [root@justin ~]# useradd -s /sbin/nologin proadmin [root@justin ~]# useradd -g proadmin -s /sbin/nologin prouser [root@justin ~]# useradd -s /sbin/nologin csadmin [root@justin ~]# useradd -g csadmin -s /sbin/nologin csuser [root@justin ~]# useradd -s /sbin/nologin admin [root@justin ~]# smbpasswd -a hradmin New SMB password: Retype new SMB password: Added user hradmin. [root@justin ~]# smbpasswd -a hruser [root@justin ~]# smbpasswd -a fmadmin [root@justin ~]# smbpasswd -a fmuser [root@justin ~]# smbpasswd -a tsadmin [root@justin ~]# smbpasswd -a tsuser [root@justin ~]# smbpasswd -a proadmin [root@justin ~]# smbpasswd -a prouser [root@justin ~]# smbpasswd -a csadmin [root@justin ~]# smbpasswd -a csuser [root@justin ~]# smbpasswd -a admin [root@justin ~]#
建立目录并修改目录归属:
[root@justin ~]# mkdir /home/{HR,FM,TS,PRO,CS,Share/{HR,FM,TS,PRO,CS,Tools}} -p [root@justin home]# chown hradmin:hradmin HR && chown fmadmin:fmadmin FM && chown tsadmin:tsadmin TS && chown proadmin:proadmin PRO && chown csadmin:csadmin CS && chown admin:admin Share [root@justin home]# ll -d /home/{HR,FM,TS,PRO,CS,Share} drwxr-xr-x 2 csadmin csadmin 4096 12月 17 17:19 /home/CS drwxr-xr-x 2 fmadmin fmadmin 4096 12月 17 17:19 /home/FM drwxr-xr-x 2 hradmin hradmin 4096 12月 17 17:19 /home/HR drwxr-xr-x 2 proadmin proadmin 4096 12月 17 17:19 /home/PRO drwxr-xr-x 8 admin admin 4096 12月 17 17:21 /home/Share drwxr-xr-x 2 tsadmin tsadmin 4096 12月 17 17:19 /home/TS [root@justin home]# cd Share/ [root@justin Share]# chown hradmin:hradmin HR && chown fmadmin:fmadmin FM && chown tsadmin:tsadmin TS && chown proadmin:proadmin PRO && chown csadmin:csadmin CS && chown admin:admin Tools [root@justin Share]# ll -d {HR,FM,TS,PRO,CS,Tools} drwxr-xr-x 2 csadmin csadmin 4096 12月 17 17:21 CS drwxr-xr-x 2 fmadmin fmadmin 4096 12月 17 17:21 FM drwxr-xr-x 2 hradmin hradmin 4096 12月 17 17:21 HR drwxr-xr-x 2 proadmin proadmin 4096 12月 17 17:21 PRO drwxr-xr-x 2 admin admin 4096 12月 17 17:21 Tools drwxr-xr-x 2 tsadmin tsadmin 4096 12月 17 17:21 TS [root@justin Share]# chmod 1775 CS FM HR PRO TS [root@justin Share]# ll 总用量 24 drwxrwxr-t 2 csadmin csadmin 4096 12月 17 17:21 CS drwxrwxr-t 2 fmadmin fmadmin 4096 12月 17 17:21 FM drwxrwxr-t 2 hradmin hradmin 4096 12月 18 10:02 HR drwxrwxr-t 2 proadmin proadmin 4096 12月 17 17:21 PRO drwxr-xr-x 2 admin admin 4096 12月 17 17:21 Tools drwxrwxr-t 2 tsadmin tsadmin 4096 12月 17 17:21 TS [root@justin Share]# cd .. [root@justin home]# chmod 1770 HR FM TS PRO CS [root@justin home]# chmod -R 0775 Share/ [root@justin home]# ll -d FM HR TS PRO CS drwxrwx--T 2 csadmin csadmin 4096 12月 18 13:51 CS drwxrwx--T 2 fmadmin fmadmin 4096 12月 17 17:19 FM drwxrwx--T 2 hradmin hradmin 4096 12月 18 13:47 HR drwxrwx--T 2 proadmin proadmin 4096 12月 17 17:19 PRO drwxrwx--T 2 tsadmin tsadmin 4096 12月 17 17:19 TS [root@justin home]# ll Share/ 总用量 24 drwxrwxr-x 2 csadmin csadmin 4096 12月 17 17:21 CS drwxrwxr-x 2 fmadmin fmadmin 4096 12月 17 17:21 FM drwxrwxr-x 2 hradmin hradmin 4096 12月 18 10:02 HR drwxrwxr-x 2 proadmin proadmin 4096 12月 17 17:21 PRO drwxrwxr-x 2 admin admin 4096 12月 17 17:21 Tools drwxrwxr-x 2 tsadmin tsadmin 4096 12月 17 17:21 TS [root@justin home]#
修改Samba主配置文件/etc/samba/smb.conf:
#======================= Global Settings ===================================== [global] workgroup = WORKGROUP //定义工做组,也就是windows中的工做组概念 server string = Justin peng Samba Server Version %v //定义Samba服务器的简要说明 netbios name = Justin_peng_Samba //定义windows中显示出来的计算机名称 # --------------------------- Logging Options ----------------------------- log file = /var/log/samba/log.%m //定义Samba用户的日志文件,%m表明客户端主机名,Samba服务器会在指定的目录中为每一个登录主机创建不一样的日志文件 # ----------------------- Standalone Server Options ------------------------ security = user //用户级别,由提供服务的Samba服务器负责检查帐户和密码 passdb backend = tdbsam [homes] //设置用户宿主目录 comment = Home Directories browseable = no writable = yes ; valid users = %S ; valid users = MYDOMAIN\%S # ----------------------- 文末添加如下 ------------------------ [public] comment = Public Stuff path = /home/share public = yes [IT] //IT 组目录,只容许ts组成员访问 comment = IT path = /home/it valid users = @IT [root@justin bin]# /etc/init.d/smb reload 从新载入 smb.conf 文件: [肯定] [root@justin bin]# testparm Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Processing section "[homes]" Processing section "[printers]" Processing section "[public]" Processing section "[IT]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions [global] netbios name = JUSTIN_PENG_SAMBA server string = Justin peng Samba Server Version %v log file = /var/log/samba/log.%m max log size = 50 cups options = raw [homes] comment = Home Directories read only = No browseable = No [printers] comment = All Printers path = /var/spool/samba printable = Yes browseable = No [public] comment = Public Stuff path = /home/share guest ok = Yes [IT] comment = IT path = /home/IT valid users = @IT [HR] comment = This is a directory of HR. path = /home/HR/ public = no admin users = hradmin valid users = @hradmin writable = yes ;是容许这个目录可写,是mask首要条件。 create mask = 0750 ;表示新建文件的权限,最前面的0是:sticky、suid 和 sgid 位. directory mask = 0750 ;表示新建目录即文件夹的权限 [FM] comment = This is a directory of FM. path = /home/FM/ public = no admin users = fmadmin valid users = @fmadmin writable = yes create mask = 0750 directory mask = 0750 [TS] comment = This is a directory of TS. path = /home/TS/ public = no admin users = tsadmin valid users = @tsadmin writable = yes create mask = 0750 directory mask = 0750 [PRO] comment = This is a PRO directory. path = /home/PRO/ public = no admin users = proadmin valid users = @proadmin writable = yes create mask = 0750 directory mask = 0750 [CS] comment = This is a directory of CS. path = /home/CS/ public = no admin users = csadmin valid users = @csadmin writable = yes create mask = 0750 directory mask = 0750 [Share] comment = This is a share directory. path = /home/Share/ public = no valid users = admin,@hradmin,@fmadmin,@tsadmin,@proadmin,@csadmin writable = yes create mask = 0755 directory mask = 0755 [root@justin Share]# /etc/init.d/smb restart
关闭 SMB 服务: [肯定] 启动 SMB 服务: [肯定] [root@justin Share]# /etc/init.d/nmb restart 关闭 NMB 服务: [肯定] 启动 NMB 服务: [肯定] [root@justin Share]# 验证: 以用户hradmin登录
进入hr、/share/hr目录后能够进行添加、删除、修改操做,进入非hr目录回弹出登录筐,只有输入对应帐户才能够进入,能够进入share下全部目录,可是除了hr目录外均没法建立新文件,提示无权限,