一、上集续
1、共享文件系统配置
a、[SHARED_NAME]
b、有三类
(1)、[homes]:为每个samba用户定义其是否能够通过samba服务访问自己的家目录
(2)、[printers]:定义打印服务
(3)、[shared_fs]:定义共享的文件系统
c、常用指令
comment:注释信息
path:当前共享所映射的文件系统路径
browseable:是否可浏览,指是否可被用户查看
guest ok:是否允许来宾账号访问
public:是否公开所有用户
writable:是否可写
read only:是否为只读
white list:拥有写权限的用户列表
用户名
@组名
+组名
2、samba用户管理
a、smbpasswd
smbpasswd [options] USERNAME
-a:添加
-x:删除
-d:禁用
-e:启用
b、pdbedit
-L:列出samba服务中的所有用户。(在服务端执行)
-a,--create:添加用户为samba用户
-u,--User=USER:要管理的用户
-x,--delete:删除用户;
-t,--password-from-stdin:从标准输出接收字符串作为用户密码
使用空提示符,而后将密码输入两次。(功能太菜鸡)
c、查看服务器端的共享
smbclient -L SMB_SERVER [-U USERNAME]
d、交互式文件访问
smbclient //SMB_SERVER/SHARE_NAME [-U USERNAME]
e、挂载访问:
mount -t cifs //SMB_SERVER/SAHRE_NAME -o username=USERNAME,password=PASSWORD
注意:挂载操作的用户,与-o选项中指定用户直接产生映射关系;
此时,访问挂载点,是以-o选项中的username指定的用户身份运行;本地用户对指定的路径访问,首先得拥有对应的本地系统权限。
3、smbstatus命令
a、显示samba服务的相关共享的访问状态信息
-b:显示简要格式信息
-v:显示详细格式信息
[root@www /]# smbstatus Samba version 4.6.2 PID Username Group Machine Protocol Version Encryption Signing ---------------------------------------------------------------------------------------------------------------------------------------- 13582 smbuser3 smbuser3 192.168.10.14 (ipv4:192.168.10.14:36960) NT1 - - Service pid Machine Connected at Encryption Signing --------------------------------------------------------------------------------------------- myfiles 13582 192.168.10.14 四 5月 28 17时20分28秒 2020 CST - - IPC$ 13582 192.168.10.14 四 5月 28 17时20分28秒 2020 CST - - No locked files [root@www /]# smbstatus -b Samba version 4.6.2 PID Username Group Machine Protocol Version Encryption Signing ---------------------------------------------------------------------------------------------------------------------------------------- 13582 smbuser3 smbuser3 192.168.10.14 (ipv4:192.168.10.14:36960) NT1 - - [root@www /]# smbstatus -v using configfile = /etc/samba/smb.conf Samba version 4.6.2 PID Username Group Machine Protocol Version Encryption Signing ---------------------------------------------------------------------------------------------------------------------------------------- 13582 smbuser3 smbuser3 192.168.10.14 (ipv4:192.168.10.14:36960) NT1 - - Service pid Machine Connected at Encryption Signing --------------------------------------------------------------------------------------------- myfiles 13582 192.168.10.14 四 5月 28 17时20分28秒 2020 CST - - IPC$ 13582 192.168.10.14 四 5月 28 17时20分28秒 2020 CST - - No locked files
4、实验
a、我们在我们192.168.10.13上创建目录/data/samba/files
[root@www /]# mkdir -pv /data/samba/files mkdir: 已创建目录 "/data/samba" mkdir: 已创建目录 "/data/samba/files"
b、然后我们编辑配置文件/etc/samba/smb.conf,添加相应的配置信息,并测试语法是否有问题,然后我们重启服务
[root@www /]# cat /etc/samba/smb.conf |grep -EA5 "[myfiles]" [myfiles] comment = A test shared dir path = /data/samba/files public = yes writable = yes browseable = yes [root@www /]#
[root@www /]# 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 "[myfiles]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions # Global parameters [global] interfaces = lo ens33 server string = Samba Server Version %v workgroup = MYGROUP log file = /var/log/samba/log.%m max log size = 50 security = USER idmap config * : backend = tdb cups options = raw hosts allow = 127. 192.168.10. [homes] comment = Home Directories browseable = No read only = No [printers] comment = All Printers path = /var/spool/samba browseable = No printable = Yes [myfiles] comment = A test shared dir path = /data/samba/files guest ok = Yes read only = No [root@www /]#
[root@www /]# systemctl restart nmb.service smb.service
c、现在我们在客户端192.168.10.14上
(1)、查看
[root@node2 ~]# smbclient -L 192.168.10.13 -U smbuser1 Enter SAMBAsmbuser1's password: Domain=[WWW] OS=[Windows 6.1] Server=[Samba 4.6.2] Sharename Type Comment --------- ---- ------- myfiles Disk A test shared dir IPC$ IPC IPC Service (Samba Server Version 4.6.2) smbuser1 Disk Home Directories Domain=[WWW] OS=[Windows 6.1] Server=[Samba 4.6.2] Server Comment --------- ------- Workgroup Master --------- ------- MYGROUP WWW
(2)、访问时我们发现我们可以查看,但是没法上传,这是因为虽然共享权限没问题,但是我们文件权限有问题
[root@node2 ~]# smbclient //192.168.10.13/myfiles -U smbuser1 Enter SAMBAsmbuser1's password: Domain=[WWW] OS=[Windows 6.1] Server=[Samba 4.6.2] smb: > ls . D 0 Thu May 28 15:59:27 2020 .. D 0 Thu May 28 15:59:27 2020 17811456 blocks of size 1024. 11438732 blocks available smb: > lcd /etc/ smb: > put fstab NT_STATUS_ACCESS_DENIED opening remote file fstab smb: >
(3)、我们查看我们/data/samba/files目录,可以看到其他用户没有写权限,并且属主和属组都是root,因此我们需要将属主改为samba这个用户。当然我们也可以使用facl权限,设定我们smbuser1拥有读写执行权限。然后重启服务
[root@www /]# ls -ld /data/samba/files/ drwxr-xr-x 2 root root 6 5月 28 15:59 /data/samba/files/ [root@www /]# setfacl -m u:smbuser1:rwx /data/samba/files/ [root@www /]# getfacl /data/samba/files/ getfacl: Removing leading '/' from absolute path names # file: data/samba/files/ # owner: root # group: root user::rwx user:smbuser1:rwx group::r-x mask::rwx other::r-x
[root@www /]# !syst
systemctl restart nmb.service smb.service
(4)、然后我们重启后再次在192.168.10.14上执行上传操作,发现就可以了
[root@node2 ~]# smbclient //192.168.10.13/myfiles -U smbuser1 Enter SAMBAsmbuser1's password: Domain=[WWW] OS=[Windows 6.1] Server=[Samba 4.6.2] smb: > lcd /etc/ smb: > put fstab putting file fstab as fstab (37.8 kb/s) (average 37.8 kb/s) smb: >
3、我们设置有限用户才有写权限
a、在/etc/samba/smb.conf中配置相应的参数,并且重启服务
[root@www /]# cat /etc/samba/smb.conf |grep -EA5 "[myfiles]" [myfiles] comment = A test shared dir path = /data/samba/files public = yes browseable = yes write list = smbuser1 #如果有多个的话在后面写即可 [root@www /]#
[root@www /]# systemctl restart nmb.service smb.service
b、此时就算我们smbuser2对目录有写权限也是没法写的,因为我们在配置文件中配置了权限的
c、如果我们期望smbuser1和smbuser2都有访问权限还有另外一种方法,我们创建一个组后让组对目录有写权限,我们组内所有用户也就都有相应的权限了。
(1)、我们首先创建一个组并且定义组对这个目录有写权限
[root@www /]# groupadd smbgrp [root@www /]# setfacl -m g:smbgrp:rwx /data/samba/files/ [root@www /]# getfacl /data/samba/files/ getfacl: Removing leading '/' from absolute path names # file: data/samba/files/ # owner: root # group: root user::rwx user:smbuser1:rwx group::r-x group:smbgrp:rwx mask::rwx other::r-x
(2)、我们创建smbuser3和smbuser4并加入到smbgrp组中
[root@www /]# useradd -G smbgrp smbuser3
[root@www /]# useradd -G smbgrp smbuser4
(3)、接下来我们定义其在samba级拥有写权限
[root@www /]# cat /etc/samba/smb.conf |grep -EA5 "[myfiles]" [myfiles] comment = A test shared dir path = /data/samba/files public = yes browseable = yes write list = +smbgrp
(4)、我们现在将smbuser3和smbuser4加入samba用户并且重启服务
[root@www /]# smbpasswd -a smbuser3 New SMB password: Retype new SMB password: Added user smbuser3. [root@www /]# smbpasswd -a smbuser4 New SMB password: Retype new SMB password: Added user smbuser4.
[root@www /]# systemctl restart nmb.service smb.service
(5)、我们现在尝试在192.168.10.14上通过smbuser3用户访问,可以看到能够上传了
[root@node2 ~]# smbclient -L 192.168.10.13 -U smbuser3 Enter SAMBAsmbuser3's password: Domain=[WWW] OS=[Windows 6.1] Server=[Samba 4.6.2] Sharename Type Comment --------- ---- ------- myfiles Disk A test shared dir IPC$ IPC IPC Service (Samba Server Version 4.6.2) smbuser3 Disk Home Directories Domain=[WWW] OS=[Windows 6.1] Server=[Samba 4.6.2] Server Comment --------- ------- Workgroup Master --------- ------- MYGROUP WWW [root@node2 ~]# smbclient //192.168.10.13/myfiles -U smbuser3 Enter SAMBAsmbuser3's password: Domain=[WWW] OS=[Windows 6.1] Server=[Samba 4.6.2] smb: > lcd /etc/ smb: > put group putting file group as group (110.9 kb/s) (average 110.9 kb/s) smb: >
3、我们通过mount.cifs进行挂载
a、我们将其挂载至/mnt目录下
[root@node2 ~]# mount -t cifs //192.168.10.13/myfiles /mnt -o username=smbuser3,password=123456 [root@node2 ~]# mount |grep 192.168.10.13 //192.168.10.13/myfiles on /mnt type cifs (rw,relatime,vers=1.0,cache=strict,username=smbuser3,domain=WWW,uid=0,noforceuid,gid=0,noforcegid,addr=192.168.10.13,unix,posixpaths,serverino,mapp osix,acl,rsize=1048576,wsize=65536,echo_interval=60,actimeo=1)
[root@node2 ~]# cd /mnt/ [root@node2 mnt]# ls fstab group [root@node2 mnt]# cp /etc/issue ./ [root@node2 mnt]# ll total 12 -rwxr--r-- 1 5022 5023 465 May 28 16:49 fstab -rwxr--r-- 1 5024 5026 795 May 28 17:14 group -rw-r--r-- 1 5024 5026 23 May 28 17:22 issue [root@node2 mnt]#
b、我们可以看到,我们在本地通过root复制过去的文件的属主属组id为192.168.10.13上的smbuser3的相应的属主属组id。这是因为我们挂载时是通过smbuser3用户登陆的,我们创建文件时默认是将相应的用户映射至smbuser3上的。
(1)、我们查看192.168.10.13上smbuser3相应的id对比上面就可以看出来
[root@www /]# id smbuser3 uid=5024(smbuser3) gid=5026(smbuser3) 组=5026(smbuser3),5025(smbgrp)
(2)、如果我们使用非root用户,如果这个用户对当前目录没有写权限也是不能创建相应的文件的。
二、博客作业