- 1.samba服务
- 1.1 安装samba
- 1.2 编辑配置文件
- smb.conf
- 1.3 添加访问用户
- 1.4 关闭防火墙
- 1.5 启动samba 服务
- 1.6 windows 访问
- 2.FTP服务
- 2.1 概述
- 2.2 vsftp
- 2.3 FTP工作流程(原理)(面试)
- 2.4 部署FTP
- 1)配置匿名开放模式
- 2)配置本地用户模式
- 3. systemctl常用操作以samba为例
- 4. sshd服务
- 4.1 几个隐藏文件
- 4.2 用于登录其他设备
- 4.3 samba用户的查看与删除
- 常见错误
- samba添加用户和密码时报错 Failed to add entry for user 解决记录
- Linux于Windows使用Samba共享文件时文件属性nobody nogroup的解决办法
- linux中root用户属于哪个用户组
- 操作权限ls -al查看
Smb主要作为网络通信协议;
Smb是基于cs(client/server)架构(架构还有bs,broswer/server);
完成linux与windows之间的共享;
linux与linux之间共享用NFS。
1.1 安装samba[root@localhost yum.repos.d]# yum install samba -y
[root@localhost ~]#mkdir /zxj #新建一个分享目录
[root@localhost ~]# vim /etc/samba/smb.conf #进入主配置文件
#插入共享
[zxj] #共享名
path =/zxj #共享路径
read only = no #关闭只读
public = yes #公众
comment = zxj #注释
:wq
[root@localhost ~]# systemctl restart smb #重启smb
smb.conf
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.
[global]
workgroup = WORKGROUP
netbios name = wgchen
security = user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
[printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @printadmin root
force group = @printadmin
create mask = 0664
directory mask = 0775
[Public]
path = /www/wwwroot/
writable = yes
browsable = yes
guest ok = yes
guest only = yes
create mode = 0777
directory mode = 0777
[root@localhost ~]# useradd zxj #新加一个用户用以访问
[root@localhost ~]# pdbedit
-u, --user=USER use username
-a, --create create user
[root@localhost ~]# pdbedit -a -u zxj #添加访问smb用户,用户必须存在
new password:
retype new password:
1.4 关闭防火墙
[root@localhost ~]# setenforce 0 #关闭selinux
[root@localhost ~]# systemctl stop firewalld #关闭防火墙
1.5 启动samba 服务
[root@localhost ~]# systemctl restart smb #重启smb
1.6 windows 访问
此时windows没有权限创建上传文件,需要给予写权限
[root@localhost ~]# ls -ld /zxj
drwxr-xr-x. 2 root root 6 apr 16 21:25 /zxj #other没有读权限
[root@localhost ~]# chmod -R a+w /zxj #加写权限
[root@localhost ~]# ls -ld /zxj
drwxrwxrwx. 2 root root 6 apr 16 21:25 /zx
可以创建、上传了
[root@localhost ~]# ls /zxj
新建文件夹
2.FTP服务
2.1 概述
FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。
FTP(File Transfer Protocol: 文件传输协议)作用: internet 上用来传送文件的协议
2.2 vsftpVSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP ,从此名称可以看出来,编制者的初衷是代码的安全。
vsftpd:实现了window与linux之间文件共享(默认被动模式)
特点:它是一个安全、高速、稳定的FTP服务器;
模式: C/S 模式;
端口:20(传数据)、21(传指令)
2.3 FTP工作流程(原理)(面试)主动被动模式。
FTP会话包含了两个通道:控制通道和数据通道。FTP有两种工作方式:主动模式和被动模式,以FTPserver为参照物,主动模式:服务器主动连接客户端传输;被动模式:等待客户端的连接。
主动模式:FTP客户端连接到FTP服务端的21端口,发送用户和密码。客户端随机开放一个端口(1024以上),发送port命令到FTP服务端,告诉服务端客户采用主动模式开放端口;ftp服务端收到port主动模式命令和端口信号后通过服务器的20端口和客户端开放的端口连接,发送数据。
(客户端通过21端口,发送密码,用户port指令,服务器端相应客户端
服务器端使用20端口主动连接客户端的随机高位端口,客户端要返回确认,
开始传输数据)
被动模式:pasv,passive,被动模式。FTP客户端连接到FTP服务端的21端口,发送用户名和密码,发送pasv命令到FTP服务器,服务器在本地随机开放一个端口(1024以上),然后把卡四方的端口告诉客户端,客户端再连接到服务器开放的端口进行端口数据传输。高位随机端口,更安全。
(客户端通过21端口,发送密码,用户pasv指令,服务器端相应客户端
服务器端使用随机高位端口主动连接客户端的随机高位端口,客户端要返回确认,
开始传输数据)
两种模式的比较:
(1)PORT(主动)模式模式只要开启服务器的21和20端口,而PASV(被动)模式需要开启服务器大于1024所有tcp端口和21端口。
(2)ftp PaSV更安全, RFC制定ftp PASV模式的主要目的是为了数据传输安全角度出发的,因为ftp port使用固定20端口进行传输数据,那么作为黑客很容使用sniffer等探嗅器抓取ftp数据,这样一来通过ftp PORT模式传输数据很容易被黑客窃取,因此使用PASV方式来架设ftp server是最安全绝佳方案。(默认是被动工作模式)
2.4 部署FTP下载安装
[root@localhost ~]# yum install vsftpd -y
参数
作用
anonymous_enable=YES
允许匿名访问模式
anon_umask=022
匿名用户上传文件的umask值
anon_upload_enable=YES
允许匿名用户上传文件
anon_mkdir_write_enable=YES
允许匿名用户创建目录
anon_other_write_enable=YES
允许匿名用户修改目录名称或删除目录
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf #配置文件
anon_upload_enable=YES #删除注释,允许上载
anon_mkdir_write_enable=YES #删除注释,允许创建目录
:wq
[root@localhost ~]# systemctl restart vsftpd #重启
Windows端访问
ftp:\\192.168.16.3 #虚拟机iP
可以执行,无法写
[root@localhost ~]# find / -name "pub"
/var/ftp/pub
[root@localhost ~]# ls -dl /var/ftp/pub
drwxr-xr-x. 2 root root 6 Nov 6 2016 /var/ftp/pub #other无w权限
给权限
1. ftp能够访问pub,改属主为ftp
[root@localhost ~]# chown -R ftp /var/ftp/pub
[root@localhost ~]# ls -dl /var/ftp/pub
drwxr-xr-x. 2 ftp root 6 Nov 6 2016 /var/ftp/pub
2. 增加写权限
[root@localhost ~]#chmod -R a+w /var/ftp/pub
现在可以写了
2)配置本地用户模式
参数
作用
anonymous_enable=NO
禁止匿名访问模式
local_enable=YES
允许本地用户模式
write_enable=YES
设置可写权限
local_umask=022
本地用户模式创建文件的umask值
userlist_deny=YES(黑)
启用“禁止用户名单”,名单文件为ftpusers和user_list
userlist_enable=YES(白)
开启用户作用名单文件功能
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf #配置文件
anonymous_enable=NO #禁用匿名用户
[root@localhost ~]# systemctl restart vsftpd #重启
root@localhost ~]# useradd zxj1 #添加一个本地用户
[root@localhost ~]# passwd zxj1 #设置密码
Changing password for user zxj1. #必须设置用户和密码
New password:
BaD PaSSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
用户被上传至用户家目录下
[root@localhost ~]# ls /home
zxj zxj1
3. systemctl常用操作以samba为例
systemctl start smb
启动smb服务
systemctl restart smb
重启smb服务
systemctl stop smb
停止smb服务
systemctl status smb
查看smb服务状态
systemctl reload smb
平滑重启smb
systemctl enable smb
开机自启smb服务
systemctl disable smb
开机不启动smb服务
4. sshd服务SSH 协议:安全外壳协议,为 Secure Shell 的缩写。SSH 为建立在应用层和传输层基础上的安全协议,默认端口22。
作用:sshd服务使用SSH协议可以用来进行远程控制, 或在计算机之间传送文件 ;
SSH 配置文件:
SSH 常用配置文件有两个/etc/ssh/ssh_config 和 /etc/sshd_config;
ssh_config 为客户端配置文件;
sshd_config 为服务器端配置文件;
4.1 几个隐藏文件生成秘钥
[root@localhost ~]# ssh-keygen #生成秘钥对
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): #回车回车回车
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
22:3f:61:70:a7:39:18:ab:e2:ef:3e:8d:bf:e2:c8:c8 root@localhost.localdomain
The key's randomart image is:
+--[ RSa 2048]----+
| |
| |
| o . . |
| * + |
| + B S |
| . + + |
|. . o o |
|=..+ . . |
|.E==+o. |
+-----------------+
隐藏文件
[root@localhost ~]# ls .ssh/
id_rsa id_rsa.pub
id_rsa # 私钥
id_rsa.pub # 公钥 秘钥对,公钥解私钥
4.2 用于登录其他设备
比如用192.168.16.3登录192.168.16.5,可将公钥发送给.5
ssh-copy-id 192.168.64.5
[root@localhost ~]# ssh-copy-id 192.168.16.5 #发送秘钥
The authenticity of host '192.168.16.5 (192.168.16.5)' can't be established.
ECDSa key fingerprint is 3a:a6:03:6b:c2:f5:ae:64:a6:21:b7:f7:21:5a:0d:9c.
are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: iNFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: iNFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.16.5's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '192.168.16.5'"
and check to make sure that only the key(s) you wanted were added.
[root@localhost ~]# ssh 192.168.16.5 #远程免密登录
last login: Mon apr 15 19:18:09 2019
[root@localhost ~]# exit
logout
Connection to 192.168.16.5 closed.
登录节点:在发送完密钥之后即可不需要输入密码即可访问节点。
4.3 samba用户的查看与删除查看samba服务器中已拥有哪些用户: pdbedit -L
删除samba服务中的某个用户 smbpasswd -x 用户名
查看Linux中所有用户: cat /etc/passwd
查看Linux中所有组: cat /etc/group
删除linux某个用户 userdel 用户名
删除linux中某个用户所有信息 userdel -r 用户名
出错:
sudo smbpasswd -a xxx
New SMB password:
Retype new SMB password:
Failed to add entry for user bearpi.
原因: 这是因为没有加相应的系统账号,所以会提示Failed to add entry for user的错误,
解决: samba使用当前系统账户
smbpasswd 用户名 更具提示输入两次新密码
Linux于Windows使用Samba共享文件时文件属性nobody nogroup的解决办法vim /etc/samba/smb.conf
修改配置文件如下: 在 [global] 放入以下内容 force user = 帐号 root force group = 群组 root create mask = 0777 directory mask = 0777
存档,重启smb:systemctl restart smb
linux系统里: #create mask是用户创建文件时的权限掩码;对用户来可读可写,对用户组可读可写,对其它用户可读;
linux中root用户属于哪个用户组root属于多个组,其中主组为root组 你可以执行命令查看:groups root
操作权限ls -al查看第一个 - :代表这是一个普通文件(regular), 其中其他文件类型还包括了 d--------->目录文件(directory) l --------->链接文件(link) b--------->块设备文件(block) c--------->字符设备文件(character) s--------->套接字文件(socket) p--------->管道文件(pipe) 一共有三组rwx(下图中的每一个框起来的rwx对应一组用户权限)
,分别是以下几种用户的rwx权限: 第一组:该文件拥有者
的权限 第二组:该文件拥有者所在组
的其他成员对该文件的操作权限 第三组:其他用户组
的成员对该文件的操作权限