1 前言
企业也环境中常常使用到Linux作为客户端挂载samba的共享(有时候共享由Windows服务器提供),本章对Linux作为客户端挂载进行一次总结。
2 最佳实践
2.1 环境信息
samba服务器端(windows)
ipaddress=10.168.0.49
hostname=sambaSer.cmdschool.org
samba客户端(linux)
ipaddress=10.168.0.8
hostname=sambaCli.cmdschool.org
2.2 配置samba服务器端
In sambaSer,
2.2.1 增加用户
由于Windows的配置所见即所得,这里不详述,请按如下要求配置,
– 增加名称为smbfs的用户
– 重点在于隶属于要全部清除(安全考量,拿到密码也登录不了系统)。
– 为smbfs增加密码(本文设置密码为“smbpwd”)
2.2.2 文件夹授权
如上图所示,
– 配置共享目录-名称为“web”存放应用程序
– 授予smbfs完全控制的权限(安全起见建议去掉完全控制的权限)
2.2.3 共享授权
如上图所示,
授予smbfs读写权限
2.3 配置samba客户端
In sambaCli,
2.3.1 安装客户端所需的软件包
yum -y install cifs-utils
2.3.2 手动测试挂载
mount -t cifs -o domain=sambaSer,username=smbfs,password=smbpwd //10.168.0.49/web /mnt/
如果是CentOS 6.x系统,请使用如下命令执行,
mount -t cifs -o username=smbfs%smbpwd //10.168.0.49/web /mnt/
测试普通用户的访问权限
useradd user1 su - user1 cd /mnt
如果是CentOS 6.x可能会被拒绝进入挂载的目录,我们来测试普通用户的写入权限,
cd /mnt touch test1.txt
可见如下提示,
touch: cannot touch ‘test1.txt’: Permission denied
2.3.3 手动测试指定挂载权限
mount -t cifs -o domain=sambaSer,username=smbfs,password=smbpwd,dir_mode=0777,file_mode=0777 //10.168.0.49/web /mnt/
如果是CentOS 6.x系统,请使用如下命令执行,
mount -t cifs -o username=smbfs%smbpwd,dir_mode=0777,file_mode=0777 //10.168.0.49/web /mnt/
我们再来测试普通用户的写入权限,
su - user1 cd /mnt touch test1.txt ls -l test1.txt
可见如下显示,
total 0 -rwxrwxrwx 1 root root 0 Nov 27 11:02 test1.txt
以上方式从授权角度考虑觉得权限过大,不符合安全规范,记得清理测试文件,
rm test1.txt
2.3.4 手动测试指定UID和GID挂载
id user1
可见如下显示,
uid=1000(user1) gid=1000(user1) groups=1000(user1)
根据以上的UID和GID号码,我们制定UID和GID挂载,
mount -t cifs -o domain=sambaSer,username=smbfs,password=smbpwd,uid=1000,gid=1000 //10.168.0.49/web /mnt/
如果是CentOS 6.x系统,请使用如下命令执行,
mount -t cifs -o username=smbfs%smbpwd,uid=1000,gid=1000 //10.168.0.49/web /mnt/
我们测试授权用户的权限,
su - user1 cd /mnt touch test1.txt
我们测试非授权用户的权限,
useradd user2 su - user2 cd /mnt touch test2.txt
可见如下提示,
touch: cannot touch ‘test2.txt’: Permission denied
2.4 配置samba客户端的自动挂载
2.4.1 安装所需的软件包
yum -y install autofs
2.4.2 启动服务和配置服务开机启动
systemctl start autofs.service systemctl enable autofs.service
如果是CentOS 6.x请使用如下命令,
/etc/init.d/autofs start chkconfig autofs on
2.4.3 配置父挂载点
vim /etc/auto.master
加入如下配置,
/serWebRoot /etc/auto.web
注:/serWebRoot目录autofs会自动创建,请不要手动创建(注意后面不带”/”)
2.4.4 配置子挂载点
vim /etc/auto.web
加入如下配置,
www.cmdschool.org -fstype=cifs,rw,noperm,domain=sambaSer,username=smbfs,password=smbpwd,uid=1000,gid=1000 ://10.168.0.49/web/www.cmdschool.org
以上假设samba服务器端有个文件夹叫“www.cmdschool.org”,另外也可以选择把密码写到文件,
www.cmdschool.org -fstype=cifs,rw,noperm,credentials=/root/.cifsauth,uid=1000,gid=1000 ://10.168.0.49/web/www.cmdschool.org
可通过以下命令生成配置文件,
echo 'domain=sambaSer' > ~/.cifsauth echo 'username=smbfs' >> ~/.cifsauth echo 'password=smbpwd' >> ~/.cifsauth
前面的配置我们指定用户只能在samba客户端访问“www.cmdschool.org”文件夹,如果不想限制,可使用通配符的写法,
* -fstype=cifs,domain=sambaSer,username=smbfs,password=smbpwd,uid=1000,gid=1000 ://10.168.0.49/web/&
2.4.5 重启服务使配置生效
systemctl restart autofs.service
CentOS 6.x请使用如下命令重启,
/etc/init.d/autofs restart
2.4.6 手动测试自动挂载
su - user1 cd /serWebRoot/www.cmdschool.org
2.4.7 配置用户登录自动挂载
vim /home/user1/.bashrc
加入如下配置,
# auto mount if [ -d /serWebRoot ]; then cd /serWebRoot/www.cmdschool.org fi
测试用户登录自动挂载,
su - user1 ls /serWebRoot/
可见如下显示,
www.cmdschool.org
参阅文档
========================
https://blog.51cto.com/cmdschool/1717865
http://www.jinbuguo.com/man/mount.cifs.html
没有评论