为什么有13个filezilla 匿名访问问?

java为什么匿名内部类的参数引用时final? - 知乎284被浏览31903分享邀请回答function Add(y) {
return function(x) {
return x + y
对内部函数function(x)来讲,y就是自由变量,而且function(x)的返回值,依赖于这个外部自由变量y。而往上推一层,外围Add(y)函数正好就是那个包含自由变量y的环境。而且Javascript的语法允许内部函数function(x)访问外部函数Add(y)的局部变量。满足这三个条件,所以这个时候,外部函数Add(y)对内部函数function(x)构成了闭包。闭包的结构,如果用λ演算表达式来写,就是多参数的Currying技术。& λx.λy.x+y但在Java中我们看不到这样的结构。因为Java主流语法不允许这样的直接的函数套嵌和跨域访问变量。2. 类和对象但Java中真的不存在闭包吗?正好相反,Java到处都是闭包,所以反而我们感觉不出来在使用闭包。因为Java的“对象”其实就是一个闭包。其实无论是闭包也好,对象也好,都是一种数据封装的手段。看下面这个类,class Add{
private int x=2;
public int add(){
return x+y;
看上去x在函数add()的作用域外面,但是通过Add类实例化的过程,变量”x“和数值”2“之间已经绑定了,而且和函数add()也已经打包在一起。add()函数其实是透过this关键字来访问对象的成员字段的。如果对闭包有疑问,可以看这个更详细的回答:3. Java内部类是闭包:包含指向外部类的指针那Java里有没有除了实例对象之外的闭包结构?Java中的内部类就是一个典型的闭包结构。例子如下,public class Outer {
private class Inner{
private y=100;
public int innerAdd(){
return x+y;
private int x=100;
下图画的就是上面代码的结构。内部类(Inner Class)通过包含一个指向外部类的引用,做到自由访问外部环境类的所有字段,变相把环境中的自由变量封装到函数里,形成一个闭包。4. 别扭的匿名内部类但Java匿名内部类就做得比较尴尬。下面这个例子中,getAnnoInner负责返回一个匿名内部类的引用。interface AnnoInner(){addXYZ();}
public class Outer {
public AnnoInner getAnnoInner(final int x){
final int y=100;
return new AnnoInner(){
int z=100;
public int addXYZ(){return x+y+z;}
//public void changeY(){y+=1;} //这个函数无法修改外部环境中的自由变量y。
private int num=100;
匿名内部类因为是匿名,所以不能显式地声明构造函数,也不能往构造函数里传参数。不但返回的只是个叫AnnoInner的接口,而且还没有和它外围环境getAnnoInner()方法的局部变量x和y构成任何类的结构。但它的addXYZ()函数却直接使用了x和y这两个自由变量来计算结果。这就说明,外部方法getAnnoInner()事实上已经对内部类AnnoInner构成了一个闭包。但这里别扭的地方是这两个x和y都必须用final修饰,不可以修改。如果用一个changeY()函数试图修改外部getAnnoInner()函数的成员变量y,编译器通不过,error: cannot assign a value to final variable y这是为什么呢?因为这里Java编译器支持了闭包,但支持地不完整。说支持了闭包,是因为编译器编译的时候其实悄悄对函数做了手脚,偷偷把外部环境方法的x和y局部变量,拷贝了一份到匿名内部类里。如下面的代码所示。interface AnnoInner(){addXYZ();}
public class Outer {
public AnnoInner getAnnoInner(final int x){
final int y=100;
return new AnnoInner(){
int copyX=x; //编译器相当于拷贝了外部自由变量x的一个副本到匿名内部类里。
int copyY=y; //编译器相当于拷贝了外部自由变量y的一个副本到匿名内部类里。
int z=100;
public int addXYZ(){return x+y+z;}
//public void changeY(){y+=1;} //这个函数无法修改外部环境中的自由变量y。
private int num=100;
所以用R大回答里的原话说就是:Java编译器实现的只是capture-by-value,并没有实现capture-by-reference。而只有后者才能保持匿名内部类和外部环境局部变量保持同步。但Java又不肯明说,只能粗暴地一刀切,就说既然内外不能同步,那就不许大家改外围的局部变量。5. 其他和匿名内部类相似的结构《Think in Java》书里,只点出了匿名内部类来自外部闭包环境的自由变量必须是final的。但实际上,其他几种不太常用的内部类形式,也都有这个特性。比如在外部类成员方法内部的内部类。public class Outer {
public foo(final int x){
final int y=100;
public class MethodInner{
int z=100;
public int addXYZ(){return x+y+z;}
比如在一个代码块block里的内部类。public class Outer {
final int x=100;
final int y=100;
class BlockInner{
int z=100;
public int addXYZ(){return x+y+z;}
BlockInner bi=new BlockInner();
num=bi.addXYZ();
private int num;
9716 条评论分享收藏感谢收起144 条评论分享收藏感谢收起查看更多回答CentOS 6.3 下 vsftpd 匿名用户访问配置 - 简书
CentOS 6.3 下 vsftpd 匿名用户访问配置
CentOS 6.3
vsftpd.x86_64 0:2.2.2-13.el6_6.1
从墙角找了一台能用的旧机器,Pentium D & 1G RAM & 160G HDD,费了一番功夫终于装上了 CentOS 6.3,才发现物理机安装跟虚拟机安装的过程还是有点差别滴,之前在虚拟机上配置过 vsftpd,今天在这台机器上也装一个试试看.
安装 vsftpd
yum install vsftpd
/etc/vsftpd/vsftpd.conf 默认设置
[root@DX3906c ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
//匿名访问 开启
local_enable=YES
//本地实体用户访问 开启
write_enable=YES
//允许用户上传数据
local_umask=022
//建立新目录和文件的权限
dirmessage_enable=YES
//目录下有 .message 文件则显示该文件的内容 ???
xferlog_enable=YES
//日志文件记录 记录于 /var/log/vferlog
connect_from_port_20=YES
//支持主动式连接功能
xferlog_std_format=YES
//支持 WuFTP 的日志文件格式
listen=YES
//使用 stand along 方式启动 vsftpd
pam_service_name=vsftpd
//支持 PAM 模块的管理
userlist_enable=YES
//支持 /etc/vsftpd/user_list 文件内的登陆账号控制
tcp_wrappers=YES
//支持 TCP Wrappers 的防火墙机制
seriously,有一些选项的意义和作用我也不是很懂,注释是对着鸟哥服务器篇敲下来的,OK,下面添加一个选项:
use_localtime=YES
//使用本地时间,vsftpd默认使用GMT格林尼治时间
匿名登录与下载
匿名登录的配置比较简单,so先搞下这个吧miao~vsftpd默认的匿名用户的主目录是 ftp 用户的主目录,试试用 finger ftp 看一下在哪里咧
[root@DX3906c ~]# finger ftp
-bash: finger: command not found
啊咧,没装...好吧,yum install finger之后再看一下
[root@DX3906c ~]# finger ftp
Login: ftp
Name: FTP User
Directory: /var/ftp
//ftp用户的主目录
Shell: /sbin/nologin //账户不能用于登录系统
Never logged in.
可以看到ftp用户的主目录在 /var/ftp,那也就是说匿名用户登陆之后的看到的就是这个啦,想让人家去你的ftp下载东西的话,文件要放到这里.那么我有一个问题,这个目录可以随便改吗?待会配置好了匿名用户登录再改改试试看
现在开始配置匿名用户的登录
[root@DX3906c ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
//匿名访问 开启
local_enable=YES
//本地实体用户访问 开启
write_enable=YES
//允许用户上传数据
local_umask=022
//建立新目录和文件的权限
dirmessage_enable=YES
//目录下有 .message 文件则显示该文件的内容 ???
xferlog_enable=YES
//日志文件记录 记录于 /var/log/vferlog
connect_from_port_20=YES
//支持主动式连接功能
xferlog_std_format=YES
//支持 WuFTP 的日志文件格式
在后面添加:
no_anon_password=YES
//匿名登录时,不检验密码
idle_session_timeout=600
//匿名用户10分钟无操作则掉线
banner_file=/etc/vsftpd/anon_welcome.txt
//匿名用户登录后看到的欢迎信息
然后需要编辑一下 anon_welcome.txt 文件,不然 ftp 会无法正常连接配置完之后重启一下 vsftpd 服务 service vsftpd restart在本机先测试一下能不能连接成功吧 使用 ftp localhost
[root@DX3906c ftp]# ftp localhost
Trying ::1...
ftp: connect to address ::1Connection refused
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
220-Welcome to Zion's FTP
220-My E-mail:
Name (localhost:root): anonymous
500 OOPS: cannot change directory:/home/ftp
Login failed.
可以看到欢迎信息已经显示出来了,但是匿名用户登录失败了,这是为什么呢?百度了一下,发现是 selinux 引起的,查看一下当前系统的 selinux 状态: /usr/sbin/sestatus -v
[root@DX3906c ftp]# /usr/sbin/sestatus -v
SELinux status:
SELinuxfs mount:
Current mode:
Mode from config file:
Policy version:
Policy from config file:
临时关闭 selinux setenforce 0再看一下 selinux 状态 getenforce,已经是 Permissive 了,再登录下 ftp 试试
[root@DX3906c ftp]# ftp localhost
Trying ::1...
ftp: connect to address ::1Connection refused
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
220-Welcome to Zion's FTP
220-My E-mail:
Name (localhost:root): anonymous
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
OK,登陆成功了,听说不关闭 selinux 的话,也可以修改 selinux 的一些配置来处理这个问题,这个就容后再议吧,现在selinux只是临时关闭,永久关闭需要修改 /etc/selinux/config 文件,将SELINUX=enforcing改为SELINUX=disabled,然后重启即可.
然后来试试在远程计算机上能不能登录,之前在虚拟机上安装的时候发现本机能登,但是远程登不上,后来发现是防火墙的问题,iptables的配置我还不太清楚,所以就抄近路直接在GUI下打开了FTP的21端口,现在也如法炮制好了.我使用Chrome登录然后Chrome直接崩溃了miao~,但是Windows资源管理器可以成功匿名登录,并且可以下载文件,那说明还是比较成功滴.
下面研究一下刚才的问题,ftp 的默认目录可以改吗?来试试看.
[root@DX3906c ~]# vim /etc/passwd
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
ftp:x:14:50:FTP User:/home/ftp:/sbin/nologin
再 finger一下看看已经改了,
[root@DX3906c ~]# finger ftp
Login: ftp
Name: FTP User
Directory: /home/ftp
Shell: /sbin/nologin
再重启一下 vsftd 服务 service vsftpd restart现在在 /home/ftp 下建一个文件看看
[root@DX3906c ~]# touch /home/ftp/ Hello_FTP.txt
[root@DX3906c ftp]# ftp localhost
Trying ::1...
ftp: connect to address ::1Connection refused
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
220-Welcome to Zion's FTP
220-My E-mail:
Name (localhost:root): anonymous
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
//列出当前目录下的文件,ls也可以
227 Entering Passive Mode (127,0,0,1,145,180).
150 Here comes the directory listing.
-rw-r--r--
0 Dec 09 19:09 Hello_FTP.txt
226 Directory send OK.
列出了 Hello_FTP.txt,说明目录修改成功啦.
匿名用户上传权限的配置
在 /etc/vsftpd/vsftpd.conf 中添加以下内容:
anon_mkdir_write_enable=YES
//匿名用户建立目录的权限
anon_upload_enable=YES
//匿名用户上传文件的权限
#anon_other_write_enable=YES
//匿名用户删除和重命名文件的权限,还是关掉比较好miao~
老规矩,重启一下 vsftpd 服务 /etc/init.d/vsftpd restart登陆看看能不能上传文件咧
touch upload_test.txt
登录到 ftp 之后使用 put命令上传文件
ftp& put upload_test.txt
local: upload_test.txt remote: upload_test.txt
227 Entering Passive Mode (127,0,0,1,93,233).
553 Could not create file.
提示 553 Could not create file.似乎是权限问题 查查 vsftpd.conf 的 manual
anon_upload_enable
permitted to upload files under certain conditions. For this to work, the option
write_enable must be activated, and the anonymous ftp user must have write permission on desired upload locations.
anon_mkdir_write_enable
users will be permitted to create new directories under certain conditions. For this to work, the
option write_enable must be activated, and the anonymous ftp user must have write permission on the parent directory.
看一下ftp目录的权限:
[root@DX3906c ~]# ll /home/
drwxr-xr-x.
3 root root
9 20:26 ftp
属主是root,ftp没有写权限,怪不得不能上传,改一下属主再上传下试试:
[root@DX3906c ~]# chown ftp /home/ftp
Name (localhost:root): anonymous
500 OOPS: vsftpd: refusing to run with writable anonymous root
Login failed.
这下登都不上去了...错误提示似乎是说匿名用户的根目录不能是可写的,那再改下权限试试:
[root@DX3906c home]# mkdir ./ftp/uploads/
[root@DX3906c home]# chown ftp ./ftp/uploads
[root@DX3906c home]# chown root ./ftp
[root@DX3906c home]# /etc/init.d/vsftpd restart
ftp& cd uploads
250 Directory successfully changed.
ftp& put upload_test.txt
local: upload_test.txt remote: upload_test.txt
227 Entering Passive Mode (127,0,0,1,193,252).
150 Ok to send data.
226 Transfer complete.
可以上传了,试试远程也同样可以上传文件,不错不错.
匿名用户不可下载匿名用户上传的文件
这个功能的描述比较绕口啊,其实就是用在比如:[学生交作业(只可以上交不可以看别人的作业)/上传资源需要审核]等场景,具体的实现原理就是匿名用户上传文件之后将文件的属主改为其他用户,那么以匿名用户继承的ftp用户的权限就不能下载这些文件了.这个地方我还不是很理解,先放一下吧,等到搞定了实体账号的配置之后再回过头来搞这个吧乜乜达...
知耻而后勇当前位置: &
如何匿名访问qq空间
很多小伙伴是不是都已经开始使用Windows 10创意者了呢,Windows 10创意者是现在最新
小伙伴们你们有没有发现最近,腾讯手机QQ推出了QQ空间宠物养成活动啊,用户通
Windows 10创意者更新已经开始大规模推送,不少小伙伴们都已经用上了新版本的系
最近玩QQ空间宠物的小伙伴越来越多了,QQ空间宠物猫是现在QQ空间最新的玩法,用
小伙伴们你们最近有没有玩QQ空间宠物系统啊,小编觉得这个QQ空间宠物相当萌
爱Q超人工具箱包含30多个优秀QQ功能,如iPhone在线,暴刷QQ空间人气访问量,爱Q装逼
TuxeraNTFSforMac可以完整的读写兼容NTFS格式驱动器。对磁盘进行访问、编辑、存储和传
爱Q超人工具箱包含30多个优秀QQ功能,如iPhone在线,暴刷QQ空间人气访问量,爱Q装逼
今天格子啦小编为大家带来的是iPhone7引导式访问是什么意思,在iPhone手机里面
今天格子啦小编为大家带来的是iphone访问限制密码怎么破解教程,很多人手机刚
有没有小伙伴和小编一样在用小马激活工具的,小马激活工具是一款不错的系统
虽然Win10系统快速访问功能很方便,但是计算机遭到盗用的话,就会有暴露隐私的
很多小伙伴是不是都已经开始使用Windows 10创意者了呢,Windows 10创意者是现在最新
哈喽~小伙伴们知道元气偶像季手游中要怎么约会任傲天吗?任傲天好感度如何增
小伙伴们有没有发现现在我们的日常出行吃饭都避不可免地会使用到支付宝了
小伙伴们你们知道吗我们在使用QQ影音的时候,其实是可以看3d效果的影片的。那
哈喽~小伙伴们知道QQ浏览器如何开启智能预读吗?不知道的小伙伴们看这里!小编
择天记手游一款游戏都需要不断的升级,等级越高,战斗力越高,同时能开启更多新
功能定向为实用小型论坛1.发贴方便:支持用户注册或匿名发贴,发布帖子速度快
在手机网易新闻APP中,当我们在跟帖时候,发现有些用户的昵称是自己的用户名,有
小编推荐-如何匿名访问qq空间

我要回帖

更多关于 匿名访问 的文章

 

随机推荐