• Linux_27 ftp、nfs、samba


    ftp

    I/O:网络、存储
    	存储:
    		DAS:Direct Attached Storage
    			接口类型:"block"
    			设备:SATA,SAS;IDE,SCSI;USB;
    		NAS:Network  Attached Storage
    			接口类型:"file"
    			协议:CIFS(samba),NFS(Network File System)
    			RPC:Remote Procedure Call
    		SAN:Storage Area Network
    			接口类型:"block"
    			协议:ISCSI(IP-SAN),FCSAN,FCoE,...
    		应用层:
    			ftp,...
    	文件服务:ftp,cifs/nfs
    	
    ftp:
    	ftp:file transfer protocol,文件传输协议;
    		两类连接:
    			命令连接:传输命令
    			数据连接:传输数据
    				两种模式:
    					主动模式:PORT
    						Server:20/tcp连接客户端的命令连接使用的端口向后的第一个可用端口;
    					被动模式:PASV
    						Server:打开一个随机端口,并等待客户端连接
    
    	rpm -qf /usr/bin/login  # 查看某个命令属于哪个安装包
    		util-linux-2.23.2-65.el7_9.1.x86_64
    	rpm -ql util-linux # 查看安装包内的文件
    
    	PAM:Pluggable Authenticate Module
    		认证框架:库,高度模块化;
    		rpm -ql pam 
    			/etc/pad.d # 下图1
    		
    	协议:C/S
    		Server:
    			Windows:Serv-U,IIS,Filezilla
    			开源:wuftpd,proftpd,pureftpd,vsftpd(Very Secure FTP daemon),...
    		Client:
    			Windows:ftp,Filezilla,CuteFTP,FlashFXP,...
    			开源:lftp,ftp,Filezilla,gftp,...
    		
    		vsftpd:
    			vsftpd is a Very Secure FTP daemon. It was written completely from scratch.
    			UTL:
    				SCHEME://username:password@HOST:PORT/PATH/TO/FILE
    				
    				路径映射:
    					用户家目录:每个用户的URL的/映射到当前用户的家目录;
    			
    			vsftpd以ftp用户的身份运行进程,默认用户即为ftp用户,匿名用户的默认路径即ftp用户的家目录/var/ftp
    				ftp,anonymous
    				注意:一个用户通过文件共享服务访问文件系统上的文件的生效权限为此二者的交集;
    			
    			程序环境:
    				主程序:/usr/sbin/vsftpd
    				主配置文件:/etc/vsftpd/bsftpd.conf
    				数据根目录:/var/ftp
    				Systemd Unit File:/usr/lib/systemd/system/vsftpd.service
    				
    				配置vsftpd:
    					用户类别:
    						匿名用户:anonymous-->ftp,/var/ftp
    						系统用户:至少禁止系统用户访问ftp服务,/etc/vsftpd/ftpusers,PAM(/etc/pad.d/vsftpd);
    						虚拟用户:非系统用户,用户账号非为可登录操作系统的用户账号(非/etc/passwd);
    						
    						用户通过vsftpd服务访问到的默认路径,是用户自己的家目录;默认可以自己有权限访问的所有路径间切换;
    						用户通过vsftpd服务访问到的默认路径,是用户自己的家目录;默认可以自己有权限访问的所有路径间切换;
    						禁锢用户与其家目录中;
    						
    					配置文件:
    						/etc/vsftpd/vsftpd.conf
    						directive value
    						注意:directive之前不能有多余字符;
    						man vsftpd.service
    						
    					
    					匿名用户:  # ftp用户,就是ftp服务的匿名账号,不需要密码也能登录
    						# 4个服务的共享权限,还要有文件系统权限,两者是交集的,才能实现文件即目录的操作。
    						anonymous_enable=YES
    						anon_upload_enable=YES  # 允许用户上传文件到vsftld服务上
    							cd /var/ftp
    							mkdir upload
    							chown ftp:ftp /var/ftp/upload
    							
    							在192.168.1.9机器上,连接到192.168.1.8这台机器的vsftpd服务上:
    								cd /etc/
    								lftp 192.168.1.8
    								ls 
    									drwxr-xr-x    2 0        0              19 Jun 19 08:58 pub
    									drwxr-xr-x    2 14       50              6 Jun 19 11:39 upload
    								cd upload
    								put issue # 把192.168.1.9机器上/etc/issue文件上传到192.168.1.8机器上的共享文件系统上。	
    								在192.168.1.8机器上:
    									cd /var/ftp/upload
    									ll
    										-rw------- 1 ftp ftp 23 Jun 19 19:43 issue
    						anon_mkdir_write_enable=YES # 允许用户在登录ftp服务时在指定目录中创建目录,如图3
    						anon_other_write_enable=YES
    						
    						anon_umask=077
    						
    					系统用户:
    						local_enable=YES # 是否允许本地用户访问ftp服务
    						write_enable=YES # 是否允许本地用户拥有写权限
    						local_umask=022
    						
    						辅助配置文件 /etc/vsftpd/ftpusers;
    							列在此文件中的用户,均禁止使用ftp服务;
    						
    						chtoot_local_user=YES
    							禁锢所有本地用户于其家目录;需要事先去除用户对家目录的写权限;
    						
    						chroot_list_enable=YES
    						chroot_list_file=/etc/vsftpd/chroot_list
    							禁锢列表中文件存在的用户于其家目录中(将用户锁在自己的家目录下 ,禁止其访问家目录之外的其它目录);需要事先去除用户对家目录的写权限;
    							eg:
    								for i in {1..5};do useradd user$i;echo user$i | passwd --stdin user$i;done
    								ls /home/user2 -ld  # 属主默认有写权限
    									drwx------ 2 user2 user2 62 Jun 21 18:00 /home/user2
    								# 去除用户的写权限
    								chmod a-w /home/user1
    								chmod a-w /home/user2
    								vim /etc/vsftpd/chroot_list
    									添加:user1,user2
    								vim /etc/vsftpd/vsftpd.conf
    									取消注释的两行 # 如下图4
    								systemctl restart vsftpd
    								ftp 192.168.1.8
    									输入我们限制的用户:user1和user2 及其密码登录,再次切换目录,已被限制,如图5;
    								
    

    图1:

    安装使用vsftpd服务端,浏览器请求,没有任何响应:

    解决办法:

    谷歌、火狐、Edge默认不支持 FTP,谷歌浏览器地址栏输入:chrome://flags/#enable-ftp,修改为enabled。就行了

    如下图:

    图3:

    lftp客服端相关的命令:

    mkdir tesetdir # 创建目录
    put fstab #上传文件,上传的文件,ls 可能自己看不到
    rm fstab # 删除文件
    rmdir testdir # 删除目录
    

    图4:

    图5:

    传输日志:# 一般不启用,上传下载生成的日志速度过快。
    	xferlog_enable=YES
    	xferlog_file=/var/log/xferlog
    	xferlog_std_format=YES
    	
    守护进程的类型:
    	standalone:独立守护进程;由服务进程自行监听套接字,并接受用户访问请求;
    	translent:瞬时守护进程;由受托管方代为监听套接字,服务进程没有访问请求时不启动;当托管方收到访问请求时,才启动服务进程;
    		CentOS6:xinetd独立守护进程,/etc/xinetd.d/
    		CentOS7:由systemd代为监听;
    
    控制可登录vsftpd服务的用户列表: # 如图6
    	userlist_enable=YES  
    	userlist_deny=  # vim /etc/vsftpd.conf文件中添加此行
    		YES:意味着此为黑名单;
    		NO:白名单;
    	启用/etc/vsftpd/user_list文件来控制可登录用户:
    		比如:只允许user1和user2用户登录:# 如图7
    			vim /etc/vs/ftpd/user_list
    

    图6:

    图7:

    上传下载速率:
        anon_max_rate=  # 上传下载的最大速率,默认为0,表示无限制
        local_max_rate=0
    并发连接数限制:
        max_clients: #最大并发连接数
            Default:2000
        max_per_ip: # 单个ip最多可以起多少个ftp连接
            Default:50
    
    虚拟用户:
    	用户账号存储于何处?
    		文件、MySQL、Redis、...
    
    	vsftpd:认证功能托管给pam;
    		基于何种存储服务来存储用户信息,以及对存储服务的驱动要靠pam实现;
    	
    	pam_mysql:
    		# yum install mariadb-devel pam-devel
    		下载pam_mysql的源码包:https://sourceforge.net/projects/pam-mysql/
    		tar xf 	pam_mysql-0.7RC1.tar.gz
    		cd pam_mysql-0.7RC1
    		./configure --with-mysql --with-pam=/usr --with-pam-mods-dir=/usr/lib64/security
    		make && make install
    		ls /usr/lib64/security
    			发现 pam-mysql.so模块已经被安装 # 如图8
    		
    	创建数据库、授权用户、创建账号和密码:
    		提供配置文件:/etc/pam.d/vsftpd.vusers
    			# 检查密码是否正确
    			auth required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
    				/usr/lib64/security/pam_mysql.so: # 表示使用哪一个模块认证
    				
    			# 检查账号是否在有效期内
    			account required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=127.0.0.1 db=vsftpd table=users userclolumn=name passwdcolumn=password crypt=2
    	
    	配置vsftpd,添加或修改以下选项:
    		pam_service_name=vsftpd.vusers
    		guest_enable=YES # 将ftp的虚拟账号映射为mysql中的来宾账号
    		guest_username=vuser # 被映射为mysql来宾账号名为 vuser
    	
    	虚拟用户的写权限,通过匿名一样的指令进行定义;
    		还能实现不同的用户有不同的权限;
    		user_config_dir=/etc/vsftpd/vusers_config
    
    	eg:
    		vim /etc/my.cnf.d/server.cnf
    			# 在[mysqld]下添加如下参数:
                    skip_name_resolve=ON
                    innodb_file_per_table=ON
                    log_bin=mysql-bin
    		systemctl start mariadb.service
    		
    		mysql
    		# 授权一个账号拥有远程连接的权限
    		GRANT ALL ON vsftpd.* TO vsftpd@'127.0.0.1' IDENTIFIED BY 'vsftpd';
    		FLUSH PRIVILEGES;
    		exit
    		# 用新添加的账号连接:
    			mysql -uvsftpd -h'127.0.0.1' -pvsftpd
    			create databases vsftpd;
    			use vsftpd;
    			create table users(id int not null auto_increment primary key,name varchar(100) not null,password char(48) not null,unique key(name));
    			desc users;
    			insert into users(name,password) values ('tom',password('tom123')),('jerry',password('jerry123'));
    		
    		mkdir /ftproot
    		useradd -d /ftproot/vuser vuser
    		mkdir /ftproot/vuser/pub
    		vim  /etc/pam.d/vsftpd.vusers
    			# 检查密码是否正确
    			auth required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
    
                # 检查账号是否在有效期内
                account required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=127.0.0.1 db=vsftpd table=users userclolumn=name passwdcolumn=password crypt=2
    		
    		cd /etc/vsftpd
    		mv vsftpd.conf{,.v1}
    		cp vsftpd.conf.bak vsftpd.conf
    		vim vsftpd.conf
    			修改:
    				pam_service_name=vsftpd 为 vsftpd.vusers
    			添加:
                    guest_enable=YES # 允许来宾账号访问
                    guest_username=vuser # 并指名来宾账号为vuser
    		systemctl restart vsftpd
    		# 在192.168.1.9机器上,使用ftp连接192.168.1.8上的vsftpd服务
    		ftp 192.168.1.8
    		# 通过pam_mysql模块连接数据库进行登录认证,正是我们上面插入数据库的用户tom 和jerry
    			报错:# 如图10
    				500 OOPS: vsftpd: refusing to run with writable root inside chroot()
                     Login failed.
                     421 Service not available, remote server has closed connection
    			需要去除/ftproot/vuser目录的写权限:# 在192.168.1.8机器上
    				chmod a-w /ftproot/vuser
    		重新连接vsftpd(在192.168.1.9机器上):
    			ftp 192.168.1.8
    			输入tom和jerry用户能正常登录了
    		
    		# 在192.168.1.8机器上:
    		mkdir /ftproot/vuser/upload
    		chown vuser.vuser /ftproot/vuser/upload
    		
    		# 修改虚拟用户有写权限;
    		vim /etc/vsftpd/vsftpd.conf
    			添加参数:
    				user_config_dir=/etc/vsftpd/vusers_config
    		mkdir /etc/vsftpd/vusers_config
    		vim /etc/vsftpd/vusers_config/tom # 在/etc/vsftpd/vusers_config目录下编辑一个与用户同名的文件
    			添加参数:
    				anon_upload_enable=YES # 表示tom用户拥有上传功能
    
    		cp /etc/vsftpd/vusers_config/tom /etc/vsftpd/vusers_config/jerry
    			anon_upload_enable=YES # 表示jerry用户拥有上传功能
    			anon_mkdir_write_enable=YES
    		
    		systemctl restart vsftpd
    		
    		# 在192.168.1.9机器上:
    			ftp 192.168.1.8 
    				输入tom或jerry用户
    			cd upload 
    			put issue
    

    图8:

    图9:

    图10:


    nfs

    
    
    NFSv2,NFSv3,NFSv4;
    nfsd:2049/tcp
    
    辅助类的服务:rpc,portmapper
    	rpc.mountd:认证;
    	rpc.lockd:加锁;
    	rpc.statd:状态;
    	
    	rpc:remote procedure call
    	
    NFS Server:
    	nfs-utils:
    		The nfs-utils package provides a daemon for the kernel NFS server and related tools, which 			provides a much higher level of performance than the traditional Linux NFS server used by 		   most users.
    	
    	/etc/exports或者/etc/exports.d/*
    		/PATH/TO/SOME_DIR clients1(export_options,...)clients2(export_options,...)
    			clients:
    				single host:ipv4,ipv6,FQDN;
    				network:address/netmask,同时长短格式的掩码;
    				wildcards:主机名通配,例如:*.sanzhang.com;
    				netgroups:NIS域内的主机组;@group_name;
    				anonymous:使用*通配所有主机;
    				
    			General Options:
    				ro:只读
    				rw:读写;
    				sync:同步;
    				async:异步;
    				secure:客户端端口小于1024,否则就要使用insecure选项;
    			User ID Mapping:
    				root_squash:压缩root用户,一般指将其映射为nfsnobody;
    				no_root_squash:不压缩root用户;
    				all_squash:压缩所有用户;
    				anonuid and anongid:将压缩的用户映射为此处指定的用户;
    	
    NFS Client:
    	mount -t nfs servername:/path/to/share /path/to/mount_point [-rvVwfnsh][-o options]
    	
    		# exportfs -ar
    		# exportfs -au
    showmount -show mount information for an NFS server
    	showmount -e NFS_SERVER_IP:查看指定的nfs server 上导出的所有文件系统;
    
    其它参考文档:
    

    nfs安装及使用

    yum -y install nfs-utils rpcbind
    
    rpm -ql nfs-utils
    	/usr/lib/systemd/system/nfs.service  # nfs的服务端  systemctl start nfs.service
    	usr/lib/systemd/system/nfs-lock.service
    	/usr/lib/systemd/system/rpc-statd.service
    	/usr/lib/systemd/system/nfs-mountd.service
    
    配置文件:/etc/exports 默认此文件为空,需手动添加
    主配置文件书写格式: Export HOST(Options)  Export:共享的目录  HOST:主机地址 Options:选项
    
    	Options:
        rw:                  #读写权限
        ro:                  #只读权限
        secure:              #要求客户端请求端口小于1024默认开启
        insecure:            #NFS通过1024以上的端口发送
        async:               #异步写入,性能好,数据可靠性差
        sync:                #同步写入,性能差,数据可靠性高         
        wdelay:              #写入延迟
        no_wdelay:           #不做写入延迟
        hide:                #在NFS共享目录中不共享其子目录
        nohide:              #共享NFS目录的子目录
        crossmnt:            #交叉挂载
        no_acl:              #关闭nfs支持acl功能
        root_squash:         #压缩root用户权限为nfsnobody
        no_root_squash:      #不压缩root用户的权限
        all_squash:          #所有的用户都压缩权限
        anonuid=nfsuser,anongid=nfsgroup: #指定用户帐号做匿名用户帐号
    
    服务端使用的命令:
    	showmount
            -a: 显示当前主机所共享的NFS文件系统中,有哪些已经被客户端挂载
            -d: 显示当前主机所共享的NFS文件系统中,每个挂载连接
            -e NFS_SERVER_IP:查看指定的nfs server上导出的所有文件系统;
        exportfs:maintain table of exported NFS file systems
            -r: 重新导出
            -a: 操作所有文件系统
            -u: 取消导出
            -v: 显示详细信息
            -ra:重新共享所有目录
            -au:卸载所有共享目录
        rpcinfo
            -p: 查看NFS注册使用的端口
            
    ss -lnt 
    	rpc.mountd的端口有可能会改变,半随机的,如果要改成固定的,修改/etc/sysconfig/nfs文件:
    		修改参数:
    			RPCMOUNTDOPTS="" 为一个固定的端口
    

    配置一个nfs文件系统

    准备两台主机:192.168.1.8 192.168.1.9
    分别安装以下安装包:
    	yum install nfs-utils rpcbind -y
    systemctl start nfs.service # 启动nfs服务
    在192.168.1.8机器上:
    	创建一个目录:
    		mkdir -pv /data/mysql
    	编辑/etc/exports文件
            添加:
                /data/mysql 192.168.1.9(rw) 192.168.1.0/24(ro)
    	重启nfs服务:
    		systemctl restart nfs.service
    
    在192.168.1.9机器上:
    	showmout -e 192.168.1.8 #  Show the NFS server's export list. 如下图1
    	# 挂载192.168.1.8机器上的/data/mysql目录到本地(192.168.1.9)的/mnt下
    	mount -t nfs 192.168.1.8:/data/mysql /mnt
    	或者:
    		mount.nfs 192.168.1.8:/data/mysql /mnt  # man mount.nfs
    	
    	mount # 查看/data/mysql的挂载信
    		192.168.1.8:/data/mysql on /mnt type nfs(rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.9,local_lock=none,addr=192.168.1.8)
    
    

    图1:

    samba

    smb:Service message block
    cifs:common internet filesystem
    
    samba:Andrew Tridgell;
    	功能:
    		文件系统共享;
    		打印机共享;
    		NetBIOS协议;
    	peer/peer(workgroup model)
    	domain model
    
    程序环境:
    	服务端程序包:samba,samba-common,samba-libs
    		Server and Client software to interoperate with Windows machines.
    	主配置文件:/etcsamba/smb.conf,有samba-common包提供;
    	主程序:
    		nmbd:NetBIOS name server
    		smbd:SMB/CIFS services
    	Unit File:
    		smb.service
    		nmb.service
    	监听的端口:
    		137/udp,138/udp
    		139/tcp,445/tcp
    		
    主配置文件的配置段:
    	grep -E -i "#(===| ---)" /etc/samba/smb.conf
    		#=====================Global Settings=========================
    		# -----------------Network-Related Options----------------
    		# -----------------Logging Options-----------------
    		# -----------------Standalone Server Options ---------------
    		# ------------------Domain Members Options------------------
    		# ------------------Domain Controller Options-------------------
    		# ------------------Browser Control Options ---------------------
    		# ---------------------Printing Options ------------------------
    		# -----------------------File system Options --------------------
    		#============================Share Definitions========================
    
    d:data	ools:共享,共享名(software)
    	servicename:
    		//192.168.1.8/software
    
    客户端程序:
    	smbclient:交互式命令行客户端,类似于lftp;
    	mount.cifs:挂载cifs文件系统的专用命令;
    
    samba的配置:
    	smb.conf
    		两类配置段:
    			全局配置:
    				[global]
    					Network-Related Options
    						workgroup =
    						server string =
    						interfaces = lo eth0 192.168.1.8/24
    						hosts allow = 127. 192.168.1. 
    					Logging Options
    						log file = /var/log/samba/log.%m
    						max log size = 50
    					Standalone Server Options
    						security = user
    							设定安全级别:取值有四个:
    								share:匿名共享;
    								user:使用samba服务自我管理的账号和密码进行用户认证;用户必须是系统用户,但密码非为/etc/shadow中的密码,而由samba自行管理的文件,其密码文件的格式由passdb backend进行定义;
    								server:由第三方服务进行统一认证;
    								domain:使用DC进行认证;基于kerberos协议进行;
    						passdb backend = tdbsam
    					Printing Options
    						load printers = yes
    						cups options = raw
    			
    			共享文件系统配置
    				[SHARED_NAME]
                    有三类:
                    	[homes]:为每个samba用户定义其是否能够通过samba服务访问自己的家目录;
                    	[printers]:定义打印服务;
                    	[share_fs]:定义共享的文件系统;
                    常用指令:
                    	comment:注释信息;
                    	path:当前共享所映射的文件系统路径;
                    	browseable:是否可浏览,指是否可被用户查看;
                    	guest ok:是否允许来宾账号访问;
                    	public:是否公开所有用户;
                    	writable:是否可写;
                    	write list:拥有写权限的用户列表;
                    		用户名
                    		@组名
                    		+组名
    
    samba 用户管理:
    	smbpasswd
    		smbpasswd [options] USERNAME
    			-a:添加
    			-x:删除
    			-d:禁用
    			-e:启用
    	pdbedit
    		-L:列出samba服务中的所有用户;
    		-a,--create:添加用户为samba用户;
    			-u,--user=USER:要管理的用户;
    		-x,--delete:删除用户;
    		-t,--password-from-stdin:从标准输出接收字符串作为用户密码;
    			使用空提示符,而后将密码输入两次;
    		
    	查看服务器端的共享:
    		smbclient -L SMB_SERVER [-U USERNAME]
    	
    	交互式文件访问:
    		smbclient //SMB_SERVER/SHARE_NAME [-U USERNAME]
    		
    	挂载访问:
    		mount -t cifs //SMB_SERVER/SHARE_NAME -o username=USERNAME,password=PASSWORD
    		注意:挂载操作的用户,与-o选项中指定用户直接产生映射关系;
    			此时,访问挂载点,是以-o选项中的username指定的身份进行;本地用户对指定的路径访问,首先得拥有对应得本地文件系统权限;
    
    smbstatus命令:
    	显示samba服务得相关共享得访问状态信息:
    		-b:显示简要格式信息;
    		-v:显示详细格式信息;
    
    samba服务的使用,类似于ftp服务,使用smbclient客户端连接:
    	yum whatprovides smbclient
    	yum install -y samba-client
    	smbclient -h # 查看smbclient命令的帮助
    

    samba服务配置文件参数及使用

    配置文件:/etc/samba/smb.conf
    
    testparm # samba服务自带的测试配置文件的格式的命令,可以通过 man samba查看
    
    systemctl start nmb.service smb.service
    
    可以在另外一台机器(192.168.1.9)安装subclient命令连接samba服务:
    	yum install -y samba-client
    	subclient -L 192.168.1.8 # 匿名用户访问
    
    在192.168.1.8机器上创建一个可以访问samba服务的账号:
    	useradd smbuser1
    	smbpasswd -a smbuser1 # -a 表示将用户添加为samba用户,然后就能访问自己家目录中的文件
    		smbpasswd -h # 查看帮助
    	
    	smbclient -L 192.168.1.8 -U smbuser1  # samba用户登录 如下图1
    	smbclient //192.168.1.8/smbuser1 -U smbuser1 # samba用户登录到自己的家目录
    
    登录到sambauser1用户家目录后,可以进行上传下载操作了:# 如下图2
    
    	
    

    图1:

    图2:

    创建一个共享

    在192.168.1.8机器上:
    	mkdir /data/samba/files
    	vim /etc/samba/smb.conf
    		添加:
    			[myfiles]
                        comment = A test shared dir.
                        path = /data/samba/files
                        public = yes
                        writable = yes
                        browseable = yes
    
  • 相关阅读:
    (CodeForces 548B 暴力) Mike and Fun
    (BestCoder Round #64 (div.2))Array
    (2015 杭电校赛 )玩骰子
    js基础
    frame框架标签
    html
    div嵌套div标签 里层的div透明属性
    div嵌套div标签
    盒子标签div嵌套
    divspan盒子模型
  • 原文地址:https://www.cnblogs.com/zhangchaocoming/p/14923044.html
Copyright © 2020-2023  润新知