简易 Linux Server部署教程系列之06 使用 Samba实现文件共享服务 (作者信息:阮晓龙投稿时间:2018年5月4日 需求描述 1、需求说明 支持 Windows、 Linux、Uni、Mac等操作系统 支持 Android、iOS等移动平台 支持计算机、平板电脑、智能手机、智能电视全终端体系 支持多账号、多共享目录,以及交叉授权 2、部署要求 基于 Centos7实现 Samba服务 实现Shel脚本自动化部署 方案设计 1、目录设计 PublicShare:所有人可以读写 each Share:学生可以读取,但不能够写入。教师可以读写。 Work Share:开发人员可以读写,其他人不能够访问。 所有目录存放在/srv/smb下。 2、账号权限设计 学生账号:stu1、stu2、stu3 教师账号:tec1、tec2、tec3 开发账号:dev2、dev2、dev3 交叉账号:tec1、tec2具有开发人员同等权限 管理员账号: smbadmin 密码说明:密码=账号+pwd字符,例如stu1的密码为 stupid
简易 Linux Server 部署教程系列之 06 使用 Samba 实现文件共享服务 (作者信息:阮晓龙 投稿时间:2018 年 5 月 4 日) 一、需求描述 1、需求说明 支持 Windows、Linux、Unix、Mac 等操作系统 支持 Android、iOS 等移动平台 支持计算机、平板电脑、智能手机、智能电视全终端体系 支持多账号、多共享目录,以及交叉授权 2、部署要求 基于 CentOS 7 实现 Samba 服务 实现 Shell 脚本自动化部署 二、方案设计 1、目录设计 PublicShare:所有人可以读写 TeachShare:学生可以读取,但不能够写入。教师可以读写。 WorkShare:开发人员可以读写,其他人不能够访问。 所有目录存放在/srv/smb 下。 2、账号权限设计 学生账号:stu1、stu2、stu3 教师账号:tec1、tec2、tec3 开发账号:dev2、dev2、dev3 交叉账号:tec1、tec2 具有开发人员同等权限 管理员账号:smbadmin 密码说明:密码=账号+pwd 字符,例如 stu1 的密码为 stu1pwd
配置脚本 清除前期安装的内容(首次安装请跳过) yum -y remove samba sambaclient yum y autoremove rm -rf/srv/smb rm -rf/var/mail/stu* rm -rf /var/mail/tec* rm -rf/var/mail/devak rm -rf /var/mail/smbadmin userdel stul userdel stu2 I stu I tecl userdel tec2 userdel tec userdel devl userdel dev 2 userdel smbadmin groupdel tecgroup groupdel smb group echo old config is clean 2、安装 Samba yum -y install samba sambaclient ho Samba install ok #创建smb服务的资源目录 mkdir -p/srv/smb/PublicShare mkdir -p/ srv/smb/TeachShare kdir -p/srv/smb/WorkShare chmod -R 777/srv/sml L echo'Resource Folder and Privileges is config
三、配置脚本 1、清除前期安装的内容(首次安装请跳过) yum -y remove samba sambaclient yum -y autoremove rm -rf /srv/smb rm -rf /var/mail/stu* rm -rf /var/mail/tec* rm -rf /var/mail/dev* rm -rf /var/mail/smbadmin userdel stu1 userdel stu2 userdel stu3 userdel tec1 userdel tec2 userdel tec3 userdel dev1 userdel dev2 userdel dev3 userdel smbadmin groupdel stugroup groupdel tecgroup groupdel devgroup groupdel smbgroup echo 'old config is clean.' 2、安装 Samba yum -y install samba sambaclient echo 'Samba install ok.' #创建 smb 服务的资源目录 mkdir -p /srv/smb/PublicShare mkdir -p /srv/smb/TeachShare mkdir -p /srv/smb/WorkShare chmod -R 777 /srv/smb echo 'Resource Folder and Privileges is config
3、创建用户信息 roupadd stugroup groupadd dev group groupadd smb group useradd -MN -g stugroup -s/sbin/nologin stul & echo -estulpwd\nstulpwd smbpasswd useradd -MN -g stugroup -s /sbin/nologin stu2 & echo -estu2pwd\nstu2pwd smbpasswd -a -s stu2 useradd -MN -g stugroup -s/sbin/nologin stu3 & echo -e stu3pwd\nstu3pwd smbpasswd -a -s stu useradd-MN-g tecgroup -s /sbin/nologin tecl & echo -e"teclpwd\nteclpwd smbpasswd -a -s tecl useradd-Mn -g tecgroup -s / sbin/nologin tec2 & echo -e"tec2pwd\ntec2pwd d -a -s tec2 useradd -MN -g tecgroup -s /sbin/nologin tec3 & echo -etec3pwd\ntec3pwd mbpasswd -a -s tec useradd-MN -g devgroup -s /sbin/nologin devl & echo -e "devlpwd\ndevlpwd useradd -Mn -g devgroup -s /sbin/nologin dev2 & echo -edev2pwd \ndev2pwd useradd -Mn -g devgroup -s /sbin/nologin dev 3 & echo -e" pwd\ndev3pwd smbpasswd -a -s dev3 useradd -MN smbgroup -s /sbin/nologin smbadmin & echo -e smbadminpwd\nsmbadminpwd"I smbpasswd -a -s smbadmin usermod levgroup tecl usermod -g devgroup tec2 nobody: nobody /srv/smb/PublicShare smbadmin: smbgroup /srv/smb/TeachShare chown smbadmin: devgroup /srv/smb/WorkShare echo user and group is config
3、创建用户信息 groupadd stugroup groupadd tecgroup groupadd devgroup groupadd smbgroup useradd -MN -g stugroup -s /sbin/nologin stu1 && echo -e "stu1pwd\nstu1pwd" | smbpasswd -a -s stu1 useradd -MN -g stugroup -s /sbin/nologin stu2 && echo -e "stu2pwd\nstu2pwd" | smbpasswd -a -s stu2 useradd -MN -g stugroup -s /sbin/nologin stu3 && echo -e "stu3pwd\nstu3pwd" | smbpasswd -a -s stu3 useradd -MN -g tecgroup -s /sbin/nologin tec1 && echo -e "tec1pwd\ntec1pwd" | smbpasswd -a -s tec1 useradd -MN -g tecgroup -s /sbin/nologin tec2 && echo -e "tec2pwd\ntec2pwd" | smbpasswd -a -s tec2 useradd -MN -g tecgroup -s /sbin/nologin tec3 && echo -e "tec3pwd\ntec3pwd" | smbpasswd -a -s tec3 useradd -MN -g devgroup -s /sbin/nologin dev1 && echo -e "dev1pwd\ndev1pwd" | smbpasswd -a -s dev1 useradd -MN -g devgroup -s /sbin/nologin dev2 && echo -e "dev2pwd\ndev2pwd" | smbpasswd -a -s dev2 useradd -MN -g devgroup -s /sbin/nologin dev3 && echo -e "dev3pwd\ndev3pwd" | smbpasswd -a -s dev3 useradd -MN -g smbgroup -s /sbin/nologin smbadmin && echo -e "smbadminpwd\nsmbadminpwd" | smbpasswd -a -s smbadmin usermod -G devgroup tec1 usermod -G devgroup tec2 chown nobody:nobody /srv/smb/PublicShare chown smbadmin:smbgroup /srv/smb/TeachShare chown smbadmin:devgroup /srv/smb/WorkShare echo 'user and group is config
4、修改 smb. conf配置文件 mv /etc/samba/smb. conf /etc/samba/smb. conf. bak cat>/etc/samba/smb. conf < EOF #工作组名 workgroup WORKGROUF #服务器描述信息 server string Welcome to Teach Demo Samba Service %1 #显示的服务器名称 netbios name TeachSambaDemo #日志文件存放位置 log file =/var/log/samba/log. %m #日志文件大小上限,单位为KB max log size 10240 #安全级别 security =user passdb backend tdbsam #共享名和共享配置信息 [PublicSharel #共享描述 comment Public Share is Open Share #共享存放的位置 path =/srv/smb/PublicShare #禁止匿名访问 #管理员账号 admin users smbadmi #允许所有账号写操作 able ye #允许所有账号浏览 #新建文件的权限默认值 #新建目录的权限默认值 comment Teach Share For Linux lessons
4、修改 smb.conf 配置文件 mv /etc/samba/smb.conf /etc/samba/smb.conf.bak cat > /etc/samba/smb.conf << EOF [global] #工作组名 workgroup = WORKGROUP #服务器描述信息 server string = Welcome to Teach Demo Samba Service %v #显示的服务器名称 netbios name = TeachSambaDemo #日志文件存放位置 log file = /var/log/samba/log.%m #日志文件大小上限,单位为 KB max log size = 10240 #安全级别 security = user passdb backend = tdbsam #共享名和共享配置信息 [PublicShare] #共享描述 comment = Public Share is Open Share #共享存放的位置 path = /srv/smb/PublicShare #禁止匿名访问 public = No #管理员账号 admin users = smbadmin #允许所有账号写操作 writeable = Yes #允许所有账号浏览 browseable = Yes #新建文件的权限默认值 create mask = 0644 #新建目录的权限默认值 directory mask = 0755 [TeachShare] comment = Teach Share For Linux Lessons
path =/srv/smb/TeachShare public No dmin users smbadmin #授权访问资源的用户列表,可以为用户名或者用户组名,用户组名加@或+。 valid users estugroup, @tecgroup, edevgroup #授权写操作的用户列表 write list gtecgroup creat 0644 directory =0755 [WorkShare] comment path =/srv/smb/WorkShare admin users smbadmin valid users +devgroup write list +devgroup create mask =0644 directory mask =0755 EOF echo smb. conf is ok 6、配置 Samba服务 ystemctl enable smb systemctI start smt echo smb service is auto start, and now is running 7、关闭防火墙和 SELinux #推荐配置防火墙策略,而非关闭。 systemc disable firewall systemctI stop firewall setenforce o echo Firewall and selinux is shutdown 点此下载配置的she‖脚本:使用 Samba实现文件共享服务的配置脚本zip 查看原文:简易 Linux Server部署教程系列之06-使用 Samba实现文件共享服 务pdf
path = /srv/smb/TeachShare public = No admin users = smbadmin #授权访问资源的用户列表,可以为用户名或者用户组名,用户组名加@或+。 valid users = @stugroup,@tecgroup,@devgroup #授权写操作的用户列表 write list = @tecgroup create mask = 0644 directory mask = 0755 [WorkShare] comment = Work Share For Developer path = /srv/smb/WorkShare public = No admin users = smbadmin valid users = +devgroup write list = +devgroup create mask = 0644 directory mask = 0755 EOF echo 'smb.conf is ok.' 6、配置 Samba 服务 systemctl enable smb systemctl start smb echo 'smb service is auto start,and now is running.' 7、关闭防火墙和 SELinux #推荐配置防火墙策略,而非关闭。 systemctl disable firewalld systemctl stop firewalld setenforce 0 echo 'Firewall and SELinux is shutdown.' 点此下载配置的 shell 脚本:使用 Samba 实现文件共享服务的配置脚本.zip 查看原文:简易 Linux Server 部署教程系列之 06-使用 Samba 实现文件共享服 务.pdf