ubuntu12.04+proftpd1.3.4a的系统用户+虚拟用户权限应用实践
|
1
|
root@ubuntu:~# apt-get install proftpd |
安装后,proftpd会自动启动,可以查看下进程是否存在"ps -aux|grep ftp"或用"netstat -tulpn | grep :21"查看下ftp的默认21端口是否有内容
|
1
2
3
4
5
6
7
|
root@ubuntu:~# ps -aux|grep ftpWarning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.htmlproftpd 18912 0.0 0.0 93376 2204 ? Ss 11:10 0:00 proftpd: (accepting connections) root 18942 0.0 0.0 8112 940 pts/1 S+ 12:06 0:00 grep --color=auto ftproot@ubuntu:~# netstat -tulpn | grep :21tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 18912/proftpd: (accroot@ubuntu:~# |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
关闭IPv6支持 UseIPv6 off # 禁用反向域名解析 UseReverseDNS off #支持的编码格式UseEncoding UTF-8 GBK# 不显示服务器相关信息, 如proftpd版本 ServerIdent off #查找客户的远程用户名,关掉节省连接时间IdentLookups off#配置服务器名 ServerName "idoall.org FTP server"#设置服务器运行模式,独立服务,或者被监管 ServerType standalone #关闭欢迎信息显示 DeferWelcome on #如果显示欢迎信息,则指定显示的文件 DisplayLogin /usr/share/proftpd/etc/ftplogin.msg#指定切换文件夹时,显示的欢迎信息DisplayChdir .message#FTP安全扩展MultilineRFC2228 on #设置为默认服务器 DefaultServer on #不显示链接文件的目标文件DefaultRoot ShowSymlinks off#允许root用户登录,默认是不允许的,安全起见不推荐此选项。 RootLogin off #登陆后允许IDLE的时间TimeoutNoTransfer 600 #连接超时的时间 TimeoutStalled 600 #客户端idle时间设置,默认就是600秒 TimeoutIdle 600 #显示时显示详细信息ListOptions "-l"#阻止带.的命令DenyFilter \*.*/ # 限制lionftp用户上传的速率限制在150Kbytes/s TransferRate STOR 150 user lionftp # 限制lionftp用户下载的速率限制在100Kbytes/s TransferRate RETR 100 user lionftp #端口号 Port 21 # 显示以MB为单位 QuotaDisplayUnits Mb #设置被动模式使用的端口范围 PassivePorts 60000 65535 #FTP SERVER最大连接数 MaxInstances 30 #设置服务器进程运行使用的用户 User proftpd #设置服务器进程运行使用的组 Group nogroup #设置用户上传文件的权限掩码 Umask 022 022 #设置用户被chroot锁定到的各自的Home目录 DefaultRoot /usr/local/nginx/html# 允许覆盖文件 AllowOverwrite on #屏蔽服务器版本信息 ServerIdent off #上传时,允许断点续传 AllowStoreRestart on #下载时,允许断点续传 AllowRetrieveRestart on #每个帐户最多允许来源ip为1个 MaxHostsPerUser 10 #每个帐户在每个客户端最多可以同时登陆1次,可以防止多线程软件下载对服务器的破坏 MaxClientsPerUser 10 #同一个客户端只能最多1个帐号可以登陆 MaxClientsPerHost 10 #是否要把ftp记录在日志中,如果不想可以设置成off屏蔽掉log日志。 WtmpLog on #设置日志 TransferLog /var/log/proftpd/xferlogSystemLog /var/log/proftpd/proftpd.log |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
CMD : Change Working Directory 改变目录MKD : MaKe Directory 建立目录的权限RNFR : ReName FRom 更改目录名的权限DELE : DELEte 删除文件的权限RMD : ReMove Directory 删除目录的权限RETR : RETRieve 从服务端下载到客户端的权限STOR : STORe 从客户端上传到服务端的权限READ :可读的权限,不包括列目录的权限,相当于 RETR , STAT 等WRITE :写文件或者目录的权限,包括 MKD 和 RMDDIRS :是否允许列目录,相当于 LIST , NLST 等权限,还是比较实用的ALL :所有权限LOGIN :是否允许登陆的权限#limit 中对用户和群组的控制AllowUser 针对某个用户允许的 LimitDenyUser 针对某个用户禁止的 LimitAllowGroup 针对某个用户组允许的 LimitDenyGroup 针对某个用户组禁止的 LimitAllowAll 针对所有用户组允许的 LimitDenyAll 针对所有用户禁止的 Limit |
|
1
2
3
4
5
6
7
8
9
10
11
12
|
%T 目前的时间%F 所在硬盘剩下的容量%C 目前所在的目录%R Client 端的主机名称%L Server 端的主机名称%U 使用者帐户名称%M 最大允许连接人数%N 目前的服务器连接人数%E FTP服务器管理员的 email%i 本次上传的文件数量%o 本次下载的文件数量%t 本次上传+下载的文件数量 |
|
1
2
3
4
5
6
7
|
root@ubuntu:~# vi /usr/share/proftpd/etc/ftplogin.msg欢迎您%U, 这是idoall的测试FTP服务器;目前时间是:%T;本服务器最多允许%M个用户连接数;目前服务器上已有%N个用户连接数;目前你所在的目录是%C;目录所在的硬盘还剩下%F字节。 |
|
1
2
3
4
5
6
7
8
9
|
root@ubuntu:~# vi /etc/shells# /etc/shells: valid login shells/bin/sh/bin/dash/bin/bash/bin/rbash/usr/bin/tmux/usr/bin/screen/usr/sbin/nologin |
|
1
2
|
/usr/share/nginx/html ----lionftp可以读写,chenshuaiftp只读/usr/share/nginx/html/a ----lionftp可以读写,chenshuaiftp可以读写 |
|
1
2
3
4
5
6
7
8
9
10
11
|
root@ubuntu:~# groupadd ftproot@ubuntu:~# useradd lionftp -g ftp -s /usr/sbin/nologinroot@ubuntu:~# useradd chenshuaiftp -g ftp -s /usr/sbin/nologinroot@ubuntu:~# passwd lionftpEnter new UNIX password: Retype new UNIX password: passwd: password updated successfullyroot@ubuntu:~# passwd chenshuaiftpEnter new UNIX password: Retype new UNIX password: passwd: password updated successfully |
|
1
|
root@ubuntu:~# chown lionftp /usr/share/nginx/html |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
|
root@ubuntu:~# vi /etc/proftpd/proftpd.conf# If set on you can experience a longer connection delay in many cases.# # /etc/proftpd/proftpd.conf -- This is a basic ProFTPD configuration file. # To really apply changes, reload proftpd after modifications, if # it runs in daemon mode. It is not required in inetd/xinetd mode. # # Includes DSO modules Include /etc/proftpd/modules.conf 关闭IPv6支持 UseIPv6 off # 禁用反向域名解析 UseReverseDNS off #支持的编码格式UseEncoding UTF-8 GBK# 不显示服务器相关信息, 如proftpd版本 ServerIdent off #查找客户的远程用户名,关掉节省连接时间IdentLookups off#配置服务器名 ServerName "idoall.org FTP server"#设置服务器运行模式,独立服务,或者被监管 ServerType standalone #关闭欢迎信息显示 DeferWelcome on #如果显示欢迎信息,则指定显示的文件 DisplayLogin /usr/share/proftpd/etc/ftplogin.msg#指定切换文件夹时,显示的欢迎信息DisplayChdir .message#FTP安全扩展MultilineRFC2228 on #设置为默认服务器 DefaultServer on #不显示链接文件的目标文件DefaultRoot ShowSymlinks off#允许root用户登录,默认是不允许的,安全起见不推荐此选项。 RootLogin off #登陆后允许IDLE的时间TimeoutNoTransfer 600 #连接超时的时间 TimeoutStalled 600 #客户端idle时间设置,默认就是600秒 TimeoutIdle 600 #显示时显示详细信息ListOptions "-l"#阻止带.的命令DenyFilter \*.*/ # 限制lionftp用户上传的速率限制在150Kbytes/s TransferRate STOR 150 user lionftp # 限制lionftp用户下载的速率限制在100Kbytes/s TransferRate RETR 100 user lionftp #端口号 Port 21 # 显示以MB为单位 QuotaDisplayUnits Mb #设置被动模式使用的端口范围 PassivePorts 60000 65535 #FTP SERVER最大连接数 MaxInstances 30 #设置服务器进程运行使用的用户 User proftpd #设置服务器进程运行使用的组 Group nogroup #设置用户上传文件的权限掩码 Umask 022 022 #设置用户被chroot锁定到的各自的Home目录 DefaultRoot /usr/local/nginx/html# 允许覆盖文件 AllowOverwrite on #屏蔽服务器版本信息 ServerIdent off #上传时,允许断点续传 AllowStoreRestart on #下载时,允许断点续传 AllowRetrieveRestart on #每个帐户最多允许来源ip为1个 MaxHostsPerUser 10 #每个帐户在每个客户端最多可以同时登陆1次,可以防止多线程软件下载对服务器的破坏 MaxClientsPerUser 10 #同一个客户端只能最多1个帐号可以登陆 MaxClientsPerHost 10 #是否要把ftp记录在日志中,如果不想可以设置成off屏蔽掉log日志。 WtmpLog on #设置日志 TransferLog /var/log/proftpd/xferlogSystemLog /var/log/proftpd/proftpd.log <Directory "/usr/local/nginx/html/*"> <Limit ALL> AllowUser lionftp DenyAll </Limit> <Limit CWD READ DIRS> AllowAll </Limit></Directory> <Directory "/usr/local/nginx/html/a/*" > <Limit ALL> AllowUser lionftp AllowUser chenshuaiftp DenyAll </Limit> <Limit CWD READ DIRS> AllowAll </Limit></Directory>#不允许任何人执行chmod命令(SITE_CHMOD)<Limit SITE_CHMOD> DenyAll </Limit> <IfModule mod_quotatab.c> QuotaEngine off </IfModule> <IfModule mod_ratio.c> Ratios off </IfModule> <IfModule mod_delay.c> DelayEngine on </IfModule> <IfModule mod_ctrls.c> ControlsEngine off ControlsMaxClients 2 ControlsLog /var/log/proftpd/controls.log ControlsInterval 5 ControlsSocket /var/run/proftpd/proftpd.sock </IfModule> <IfModule mod_ctrls_admin.c> AdminControlsEngine off </IfModule> # This is useful for masquerading address with dynamic IPs: # refresh any configured MasqueradeAddress directives every 8 hours <IfModule mod_dynmasq.c> # DynMasqRefresh 28800 </IfModule> Include /etc/proftpd/conf.d/ |
f)重启ftp服务器
|
1
|
root@ubuntu:~# service proftpd restart |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
C:\Users\Administrator>ftpftp> open 192.168.1.100连接到 192.168.1.100。220 192.168.1.100 FTP server ready用户(192.168.1.100:(none)): chenshuaiftp331 Password required for chenshuaiftp密码:230-欢迎您chenshuaiftp,这是idoall的测试FTP服务器;230- 目前时间是:Sat Aug 09 03:22:02 2014;230- 本服务器最多允许0个用户连接数;230- 目前服务器上已有2个用户连接数;230- 目前你所在的目录是/;230- 目录所在的硬盘还剩下0字节。230 User chenshuaiftp logged inftp> dir200 PORT command successful150 Opening ASCII mode data connection for file list-rw-r--r-- 1 root root 537 Aug 6 06:38 50x.htmldrwxrwxrwx 19 root root 4096 Jun 17 05:49 xxxdrwxrwxrwx 7 root root 4096 Aug 9 01:19 aaaa226 Transfer completeftp: 收到 201 字节,用时 0.01秒 13.40千字节/秒。 |
|
1
2
3
4
5
6
|
# 不要求有合法shell,直接效果是允许nologin用户和虚拟用户登录RequireValidShell off# AuthOrder指定了权限检查的顺序。这里只使用虚拟用户AuthOrder mod_auth_file.c mod_auth_unix.cAuthUserFile /usr/share/proftpd/etc/passwdAuthGroupFile /usr/share/proftpd/etc/group |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
|
root@ubuntu:~# vi /etc/proftpd/proftpd.conf# If set on you can experience a longer connection delay in many cases.# # /etc/proftpd/proftpd.conf -- This is a basic ProFTPD configuration file. # To really apply changes, reload proftpd after modifications, if # it runs in daemon mode. It is not required in inetd/xinetd mode. # # Includes DSO modules Include /etc/proftpd/modules.conf 关闭IPv6支持 UseIPv6 off # 禁用反向域名解析 UseReverseDNS off #支持的编码格式UseEncoding UTF-8 GBK# 不显示服务器相关信息, 如proftpd版本 ServerIdent off #查找客户的远程用户名,关掉节省连接时间IdentLookups off#配置服务器名 ServerName "idoall.org FTP server"#设置服务器运行模式,独立服务,或者被监管 ServerType standalone #关闭欢迎信息显示 DeferWelcome on #如果显示欢迎信息,则指定显示的文件 DisplayLogin /usr/share/proftpd/etc/ftplogin.msg#指定切换文件夹时,显示的欢迎信息DisplayChdir .message#FTP安全扩展MultilineRFC2228 on #设置为默认服务器 DefaultServer on #不显示链接文件的目标文件DefaultRoot ShowSymlinks off#允许root用户登录,默认是不允许的,安全起见不推荐此选项。 RootLogin off #登陆后允许IDLE的时间TimeoutNoTransfer 600 #连接超时的时间 TimeoutStalled 600 #客户端idle时间设置,默认就是600秒 TimeoutIdle 600 #显示时显示详细信息ListOptions "-l"#阻止带.的命令DenyFilter \*.*/ # 限制lionftp用户上传的速率限制在150Kbytes/s TransferRate STOR 150 user lionftp # 限制lionftp用户下载的速率限制在100Kbytes/s TransferRate RETR 100 user lionftp #端口号 Port 21 # 显示以MB为单位 QuotaDisplayUnits Mb #设置被动模式使用的端口范围 PassivePorts 60000 65535 #FTP SERVER最大连接数 MaxInstances 30 #设置服务器进程运行使用的用户 User proftpd #设置服务器进程运行使用的组 Group nogroup #设置用户上传文件的权限掩码 Umask 022 022 #设置用户被chroot锁定到的各自的Home目录 DefaultRoot /usr/local/nginx/html# 允许覆盖文件 AllowOverwrite on #屏蔽服务器版本信息 ServerIdent off #上传时,允许断点续传 AllowStoreRestart on #下载时,允许断点续传 AllowRetrieveRestart on #每个帐户最多允许来源ip为1个 MaxHostsPerUser 10 #每个帐户在每个客户端最多可以同时登陆1次,可以防止多线程软件下载对服务器的破坏 MaxClientsPerUser 10 #同一个客户端只能最多1个帐号可以登陆 MaxClientsPerHost 10 #是否要把ftp记录在日志中,如果不想可以设置成off屏蔽掉log日志。 WtmpLog on #设置日志 TransferLog /var/log/proftpd/xferlogSystemLog /var/log/proftpd/proftpd.log # 不要求有合法shell,直接效果是允许nologin用户和虚拟用户登录RequireValidShell off# AuthOrder指定了权限检查的顺序。这里只使用虚拟用户AuthOrder mod_auth_file.c mod_auth_unix.cAuthUserFile /usr/share/proftpd/etc/passwdAuthGroupFile /usr/share/proftpd/etc/group <Directory "/usr/local/nginx/html/*"> <Limit ALL> AllowUser lionftp DenyAll </Limit> <Limit CWD READ DIRS> AllowAll </Limit></Directory> <Directory "/usr/local/nginx/html/a/*" > <Limit ALL> AllowUser lionftp AllowUser chenshuaiftp AllowUser ftpchenshuai DenyAll </Limit> <Limit CWD READ DIRS> AllowAll </Limit></Directory>#不允许任何人执行chmod命令(SITE_CHMOD)<Limit SITE_CHMOD> DenyAll </Limit> <IfModule mod_quotatab.c> QuotaEngine off </IfModule> <IfModule mod_ratio.c> Ratios off </IfModule> <IfModule mod_delay.c> DelayEngine on </IfModule> <IfModule mod_ctrls.c> ControlsEngine off ControlsMaxClients 2 ControlsLog /var/log/proftpd/controls.log ControlsInterval 5 ControlsSocket /var/run/proftpd/proftpd.sock </IfModule> <IfModule mod_ctrls_admin.c> AdminControlsEngine off </IfModule> # This is useful for masquerading address with dynamic IPs: # refresh any configured MasqueradeAddress directives every 8 hours <IfModule mod_dynmasq.c> # DynMasqRefresh 28800 </IfModule> Include /etc/proftpd/conf.d/ |
|
1
2
3
|
root@ubuntu:~# mkdir -p /usr/share/proftpd/etc/root@ubuntu:~# touch /usr/share/proftpd/etc/passwdroot@ubuntu:~# touch /usr/share/proftpd/etc/group |
|
1
|
root@ubuntu:~# ftpasswd --passwd --file=/usr/share/proftpd/etc/passwd --name=ftpchenshuai --uid=3000 --home=/usr/local/nginx/html/a --shell=/bin/false |
|
1
|
root@ubuntu:~# ftpasswd --group --name=testgroup --gid=2014 |
|
1
|
root@ubuntu:~# ftpasswd --group --name=testgroup --gid=2014 --member=ftpchenshuai |
|
1
|
root@ubuntu:~# chmod 777 -R /usr/local/nginx/html/a |
|
1
|
root@ubuntu:~# service proftpd restart |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
C:\Users\Administrator>ftpftp> open 192.168.1.100连接到 192.168.1.100。220 192.168.1.100 FTP server ready用户(192.168.1.100:(none)): ftpchenshuai331 Password required for ftpchenshuai密码:230-欢迎您ftpchenshuai,这是idoall的测试FTP服务器;230- 目前时间是:Sat Aug 09 03:30:53 2014;230- 本服务器最多允许0个用户连接数;230- 目前服务器上已有2个用户连接数;230- 目前你所在的目录是/a;230- 目录所在的硬盘还剩下0字节。230 User ftpchenshuai logged inftp> pwd257 "/a" is the current directoryftp> dir200 PORT command successful150 Opening ASCII mode data connection for file list-rw-r--r-- 1 ftpchenshuai 3000 1870666 Aug 9 02:13 xxx.apk226 Transfer completeftp: 收到 88 字节,用时 0.01秒 5.87千字节/秒。ftp> put c:\a.txt200 PORT command successful150 Opening ASCII mode data connection for a.txt226 Transfer completeftp: 发送 1 字节,用时 0.06秒 0.02千字节/秒。ftp> dir200 PORT command successful150 Opening ASCII mode data connection for file list-rw-r--r-- 1 ftpchenshuai 3000 1 Aug 9 03:33 a.txt-rw-r--r-- 1 ftpchenshuai 3000 1870666 Aug 9 02:13 xxx.apk226 Transfer completeftp: 收到 154 字节,用时 0.01秒 22.00千字节/秒。ftp> bye221 Goodbye. |
ubuntu12.04+proftpd1.3.4a的系统用户+虚拟用户权限应用实践的更多相关文章
- 虚拟机系统ubuntu12.04(内网环境下的虚拟主机)开启远程连接访问
一.工具准备: 1.内网虚拟机Ubuntu12.04系统主机一台,开放端口为:29999 2.远程连接软件:mobaxterm 二.开启步骤: 1.查看端口状态信息: netstat -antl | ...
- rsync 系统用户/虚拟用户 备份web服务器数据及无交互定时推送备份
一.服务环境 (1),WEBserver(192.168.10.130) : BACKserver(192.168.10.129) (2),BACKserver服务器部署,安装所需软件,并启动 (3) ...
- (转)linux 系统下虚拟用户的作用
原文:http://blog.csdn.net/luoshao20120430/article/details/16900653 http://blog.csdn.net/u01 ...
- FTP(虚拟用户,并且每个虚拟用户可以具有独立的属性配置)
VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 首先安装 主配置文件:/etc/vsftpd/vsftpd. ...
- 007.FTP虚拟用户访问
一 虚拟用户优点 可对每个用户进行单独设定权限. 每个用户单独配置文件,单独指定主目录,而不能访问系统的其它资源. 注意:虚拟用户目录和本地用户访问目录不冲突. 二 配置虚拟用户步骤 添加虚拟用户口令 ...
- Ubuntu12.04 root用户登录设置
ubuntu12.04默认是不允许root登录的,在登录窗口只能看到普通用户和访客登录.以普通身份登录Ubuntu后我们需要做一些修改. 1.普通用户登录后,修改系统配置文件需要切换到超级用户模式,在 ...
- Win7&Ubuntu12.04 双系统引导问题
周末的时候手贱,重装系统,导致原来的ubuntu12.04和win7双系统的引导不见了,所以在此进行一下说明,如何修复. 1. win7和ubuntu12.04双系统引导修复 问题描述: 在重装 ...
- Ubuntu12.04安装64位系统出现编译错误error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or dir
问题: Ubuntu12.04安装64位系统出现编译错误error while loading shared libraries: libz.so.1: cannot open shared obje ...
- 在电脑上装ubuntu12.04系统,内核文件是那个?
在电脑上装ubuntu12.04系统,我们能看到的是根文件系统,那么内核文件(zlmage)是那个? ???
随机推荐
- Creating Materials at runtime And Issue of Shader.Find()
Creating Materials at runtimehttp://forum.unity3d.com/threads/create-materials-at-runtime.72952/ //通 ...
- 常用git命令及问题解决方法
使用git不久,在这里记录使用git的命令. 1.将本地项目上传git git端 1.[start a project]新建一个项目 example 客户端 1.git init 初始化本地git仓库 ...
- CPU的高速缓存存储器知识整理
基于缓存的存储器层次结构 基于缓存的存储器层次结构行之有效,是因为较慢的存储设备比较快的存储设备更便宜,还因为程序往往展示局部性: 时间局部性:被引用过一次的存储器的位置很可能在不远的将来被再次引用. ...
- 鼠标滚轮控制侧边div上下翻动效果
css部分: <style> * { margin: 0; padding: 0;} .wrap { width: 1000px; margin: 0 auto; overflow: hi ...
- ios基础篇(二十)—— UIBezierPath绘制
UIBezierPath类可以创建基于矢量的路径,可以定义简单的形状,如椭圆或者矩形,或者有多个直线和曲线段组成的形状. 一.UIBezierPath使用: 1.创建path: 2.添加路径到path ...
- iOS开发UI篇—UITableview控件基本使用
iOS开发UI篇—UITableview控件基本使用 一.一个简单的英雄展示程序 NJHero.h文件代码(字典转模型) #import <Foundation/Foundation.h> ...
- Java设计模式系列1--原型模式(Prototype Method)
2014-02-14 11:27:33 声明:本文不仅是本人自己的成果,有些东西取自网上各位大神的思想,虽不能一一列出,但在此一并感谢! 原型模式,从名字即可看出,该模式的思想就是将一个对象作为原型, ...
- android studio 改变代码提示的方法
移通152余继彪 在android studio中 默认代码提示的功能是ctrl+空格,这样的提示会和输入法造成冲突,所以要改变 改变的方法就是file—seting——Keymap然后搜索basic ...
- Android GridView的使用
Android的GridView控件用于把一系列的空间组织成一个二维的网格显示出来应用的比较多的就是组合图片显示下面我就详细讲一个例子 首先写一个类继承BaseAdapter 1. Java代码 1 ...
- android studio 开启genymotion 出现"failed to create framebuffer image"
出现错误 Unable to start the virtul device To start virtual devices, make sure that your video card supp ...