天天看点

Day10 samba&NFS(Enginner04)一、samba服务基础二、配置NFS共享

为客户机提供共享使用的文件夹

SMB(Server Message Block)服务器消息块

端口:139/tcp

CIFS(Common Internet File System)通用网际文件系统

端口tcp/445

帐号体系与linux系统账户有很大的关联

samba的共享帐号和linux系统帐号名字相同、但密码不同

useradd harry -s /sbin/nologin

安装samba软件包

创建samba共享帐号

useradd kenji -s /sbin/nologin

useradd chihiro -s /sbin/nologin

把系统账户添加到samba的账户数据库,并且修改密码

pdbedit -a harry

pdbedit -a kenji

pdbedit -a chihiro

列出所有有效的samba账户

samba的主配置文件

字段解释:

[global]

workgroup = 工作组名 #windows专用

[homes] #家目录共享

[printer] #打印机共享

[共享名]

path = 要共享的文件夹绝对路径

browseable = yes #no为隐藏共享

read only = yes #yes为只读

write list = user #允许写入的用户

valid users = username #有效的用户

89行,修改workgroup为STAFF

追加到配置文件的最后

[common]

path = /common

hosts allow = 172.25.0.0/24

systemctl restart smb

systemctl enable smb

安装smaba客户端软件

列出172.25.0.11上共享的目录

这个包可装可不装。连接\172.25.0.11,进入交互式界面,对\172.25.0.11\common目录的内容进行操作

查看受SELinux管理的服务布尔值的开关状态

设置SELinux管理的samba服务,它的samba_export_all_ro这个值为on的状态。即对该项功能的开关,需要加-P选项才能永久生效

临时挂载服务器的共享文件夹到/mnt/samba

安装cifs软件包

_netdev这个参数很重要,它表示是一个网络设备,必须等网络服务启动之后再挂载

永久挂载共享目录

测试挂载配置是否正确

测试挂载是否正常

客户端访问服务端不正常的排错思路:

1.防火墙是否限制

2.服务本身的访问控制

3.SELinux是否限制

4.服务端目录是否有权限

追加到文件最后

[devops]

path = /devops

write list = chihiro

mkdir /devops

echo dev >/devops/te.txt

重启samba服务

设置samba的读写功能为开启(on)

在共享目录中尝试创建文件,还是提示权限不足。原因是服务端本地目录对chihiro用户没有写的权限

单独为chihiro用户添加/devops目录的读写权限

管理员一次挂载,客户端可以临时切换身份对共享目录做写操作

客户端:

挂载mnt目录。

修改user为kenji

增加multiuser,sec=ntlmssp参数

切换到普通用户

切换到chihiro的身份,访问/mnt/dev,可以执行读写操作

故障现象:

mount -a

mount error(13): Permission denied

Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

可能原因:

server没有使用pdbedit添加samba用户

挂载成功后无法创建文件

server samba共享的目录没用setfacl分配写权限

server的setsebool没打开samba_export_all_rw=on

NFS(Network File System)网络文件系统

端口:2049/TCP、2049/UDP

RPC(Remote Process Call)远程进程调用

端口:111/TCP、111/UDP

nfs-utils

nfs-server

NFS的配置文件

echo "/public 172.25.0.0/24(ro)" >>/etc/exports

服务端设置共享目录

重启NFS服务

添加nfs挂载

服务端设置可读写的共享目录

服务端重启NFS服务

客户端添加NFS挂载配置文件

挂载测试

touch /mnt/protected/aaa.txt

不压榨root用户权限,即允许root在nfs共享里面创建的文件还是属于root用户,而不是属于nfsnobody用户

/abc 172.25.0.0/24(rw,no_root_squash)

当客户端的普通用户访问服务端时,服务端会映射成本地相同uid的用户,然后查找是否存在相同uid的用户。如果有,那么就以本地用户的身份去访问文件夹;如果没有,直接拒绝

初始化服务端和客户端的ldap环境

LDAP:网络用户,提供用户名

Kerberos:密码验证。一次密码认证,多次免密登陆

生产环境中会用LDAP验证用户名,再用kerberos验证密码。

用户首次访问时,找LDAP验证用户名,验证通过后再找kerberos验证密码。全部验证通过后,kerberos会给用户颁发令牌(token)

当用户再次访问时,找LDAP验证用户名,验证通过后。服务端发现有token,就不再去找kerberos,直接放行

服务端:

mkdir -p /protected/project

chown ldapuser0 /protected/project

ls -l /protected/project

echo "/protected 172.25.0.0/24(rw,sec=krb5p)" >>/etc/exports

服务端:重启安全nfs服务及nfs服务

mkdir /mnt/nfssecure

ls -l /mnt/nfssecure

tail -1 /etc/fstab

客户端:重启nfs-secure服务

客户端:挂载测试

客户端:查看挂载

远程登陆server0

touch /protected/project/ldfile.txt

mount.nfs: an incorrect mount option was specified

mount.nfs: access denied by server while mounting 172.25.0.11:/protected

本文转自 goldwinner 51CTO博客,原文链接:http://blog.51cto.com/355665/2068712,如需转载请自行联系原作者

继续阅读