Linux基础入门之vsFTP+MySQL/MariaDB认证实现虚拟用户配置详解
https://www.dwhd.org/20150603_144841.html
摘要
VSFTP可以使用系统账户或者匿名账户登录,但是出于安全的考虑,通常建议使用vsftp虚拟账户来登录ftp服务器,虚拟用户是指使用独立的文件保存vsftp用户帐号,虚拟账户只能登录ftp服务器。
一、配置基于MySQL认证的的vsftpd
1、安装vsftpd、启动vsftpd、配置vsftpd开机启动
|
1
2
3
4
5
6
7
8
9
|
[root@Legion100 ~]# yum install vsftpd pam_mysql -y[root@Legion100 ~]# service vsftpd start为 vsftpd 启动 vsftpd: [确定][root@Legion100 ~]# netstat -tnlp | grep 21tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 7574/vsftpd[root@Legion100 ~]# chkconfig vsftpd on[root@Legion100 ~]# chkconfig --list vsftpdvsftpd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭[root@Legion100 ~]# |
2、安装MySQL/MariaDB
1)、编译安装MariaDB、设置开机启动
|
01
02
03
04
05
06
07
08
09
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
|
[root@Legion100 ~]# cd /tmp/[root@Legion100 /tmp]# groupadd -g 1500 mysql && useradd -g mysql -u 1500 -s /sbin/nologin -M mysql[root@Legion100 /tmp]# yum install cmake -y[root@Legion100 /tmp]# wget "https://downloads.mariadb.org/interstitial/mariadb-10.0.19/source/mariadb-10.0.19.tar.gz/from/http%3A//mirrors.opencas.cn/mariadb" -O mariadb-10.0.19.tar.gz[root@Legion100 /tmp]# tar xf mariadb-10.0.19.tar.gz[root@Legion100 /tmp]# cd mariadb-10.0.19[root@Legion100 /tmp/mariadb-10.0.19]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_DATADIR=/data/mysql \-DWITH_SSL=system \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_SPHINX_STORAGE_ENGINE=1 \-DWITH_ARIA_STORAGE_ENGINE=1 \-DWITH_XTRADB_STORAGE_ENGINE=1 \-DWITH_PARTITION_STORAGE_ENGINE=1 \-DWITH_FEDERATEDX_STORAGE_ENGINE=1 \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DWITH_EXTRA_CHARSETS=all \-DWITH_EMBEDDED_SERVER=1 \-DWITH_READLINE=1 \-DWITH_ZLIB=system \-DWITH_LIBWRAP=0 \-DEXTRA_CHARSETS=all \-DENABLED_LOCAL_INFILE=1 \-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci[root@Legion100 /tmp/mariadb-10.0.19]# make -j $(awk '/processor/{i++}END{print i}' /proc/cpuinfo) && make install && echo $?[root@Legion100 /tmp/mariadb-10.0.19]# cd /usr/local/mysql/[root@Legion100 /usr/local/mysql]# echo "export PATH=/usr/local/mysql/bin:\$PATH" > /etc/profile.d/mariadb10.0.19.sh[root@Legion100 /usr/local/mysql]# . /etc/profile.d/mariadb10.0.19.sh[root@Legion100 /usr/local/mysql]# sed -i "$(awk '$1=="MANPATH"{a=NR}END{print a}' /etc/man.config)a MANPATH\t/usr/local/mysql/man" /etc/man.config[root@Legion100 /usr/local/mysql]# cp -a support-files/mysql.server /etc/rc.d/init.d/mysqld[root@Legion100 /usr/local/mysql]# \cp support-files/my-large.cnf /etc/my.cnf[root@Legion100 /usr/local/mysql]# sed -i '/query_cache_size/a datadir = /data/mysql' /etc/my.cnf[root@Legion100 /usr/local/mysql]# mkdir -p /data/mysql[root@Legion100 /usr/local/mysql]# chown -R mysql.mysql /data/mysql[root@Legion100 /usr/local/mysql]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql/ --basedir=/usr/local/mysql[root@Legion100 /usr/local/mysql]# chkconfig mysqld on[root@Legion100 /usr/local/mysql]# chkconfig --list mysqldmysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭[root@Legion100 /usr/local/mysql]# service mysqld startStarting MySQL. [确定][root@Legion100 /usr/local/mysql]# ss -tnlp | grep 3306LISTEN 0 150 :::3306 :::* users:(("mysqld",33450,21))[root@Legion100 /usr/local/mysql]# |
2)、做vsftpd用户认证的授权
|
01
02
03
04
05
06
07
08
09
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
|
[root@Legion100 ~]# mysql #登录数据库Welcome to the MariaDB monitor. Commands end with ; or \g.Your MariaDB connection id is 4Server version: 10.0.19-MariaDB-log Source distributionCopyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> USE mysql; #进入mysql库Database changedMariaDB [mysql]> UPDATE user set password=PASSWORD('lookback') WHERE USER='root'; #给所有的root帐户设置密码为lookbackQuery OK, 4 rows affected (0.01 sec)Rows matched: 4 Changed: 4 Warnings: 0MariaDB [mysql]> DELETE FROM user WHERE User=''; #删除MariaDB所有的匿名帐号Query OK, 2 rows affected (0.00 sec)MariaDB [mysql]> create database vsftpd; #新建vsftpd库Query OK, 1 row affected (0.01 sec)MariaDB [mysql]> grant select on vsftpd.* to vsftpd@localhost identified by 'lookback'; #新建一个vsftpd的用户密码是lookback权限是查询select,本地访问Query OK, 0 rows affected (0.00 sec)MariaDB [mysql]> grant select on vsftpd.* to vsftpd@127.0.0.1 identified by 'lookback'; #新建一个vsftpd的用户密码是lookback权限是select,本地访问Query OK, 0 rows affected (0.00 sec)MariaDB [mysql]> grant select on vsftpd.* to vsftpd@'172.16.%.%' identified by 'lookback'; #新建一个vsftpd的用户密码是lookback权限是select,可以在172.16.0.0/8网段内访问Query OK, 0 rows affected (0.00 sec)MariaDB [mysql]> SELECT USER,PASSWORD,HOST FROM user; #查看下MariaDB上的用户用户名和host+--------+-------------------------------------------+--------------------+| USER | PASSWORD | HOST |+--------+-------------------------------------------+--------------------+| root | *153CCFAEAA83407D8DBDBFAA3D17B1A95553E60C | localhost || root | *153CCFAEAA83407D8DBDBFAA3D17B1A95553E60C | legion100.dwhd.org || root | *153CCFAEAA83407D8DBDBFAA3D17B1A95553E60C | 127.0.0.1 || root | *153CCFAEAA83407D8DBDBFAA3D17B1A95553E60C | ::1 || vsftpd | *153CCFAEAA83407D8DBDBFAA3D17B1A95553E60C | localhost || vsftpd | *153CCFAEAA83407D8DBDBFAA3D17B1A95553E60C | 127.0.0.1 || vsftpd | *153CCFAEAA83407D8DBDBFAA3D17B1A95553E60C | 172.16.%.% |+--------+-------------------------------------------+--------------------+7 rows in set (0.00 sec)MariaDB [mysql]> use vsftpd; #进入vsftpd库Database changedMariaDB [vsftpd]> create table users ( -> id int AUTO_INCREMENT NOT NULL, -> name char(20) binary NOT NULL, -> password char(48) binary NOT NULL, -> primary key(id) -> ); #新建一个名为users的表,表中有id、name、password字段,id是自动增长,name是20个字符长度二进制存放区分大小写,password最大48字符二进制存放区分大小写,Query OK, 0 rows affected (0.12 sec)MariaDB [vsftpd]> insert into users(name,password) values('Legion',password('lookback')); #在users表中新建个Legion的用户密码是lookbackQuery OK, 1 row affected (0.00 sec)MariaDB [vsftpd]> insert into users(name,password) values('LookBack',password('lookback')); #在users表中新建个LookBack的用户密码是lookbackQuery OK, 1 row affected (0.01 sec)MariaDB [vsftpd]> SELECT id,name,password FROM users; #查看下users表+----+----------+-------------------------------------------+| id | name | password |+----+----------+-------------------------------------------+| 1 | Legion | *153CCFAEAA83407D8DBDBFAA3D17B1A95553E60C || 2 | LookBack | *153CCFAEAA83407D8DBDBFAA3D17B1A95553E60C |+----+----------+-------------------------------------------+2 rows in set (0.00 sec)MariaDB [vsftpd]> FLUSH PRIVILEGES; #刷新生效上面的配置Query OK, 0 rows affected (0.00 sec)MariaDB [vsftpd]> \qBye[root@Legion100 ~]# |
3)、测试MariaDB的连接
|
01
02
03
04
05
06
07
08
09
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
|
[root@Legion100 ~]# mysql -uvsftpd -plookback -h172.16.6.100 -P3306Welcome to the MariaDB monitor. Commands end with ; or \g.Your MariaDB connection id is 10Server version: 10.0.19-MariaDB-log Source distributionCopyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> SHOW DATABASES;+--------------------+| Database |+--------------------+| information_schema || test || vsftpd |+--------------------+3 rows in set (0.00 sec)MariaDB [(none)]> USE vsftpdDatabase changedMariaDB [vsftpd]> SHOW tables;+------------------+| Tables_in_vsftpd |+------------------+| users |+------------------+1 row in set (0.00 sec)MariaDB [vsftpd]> SELECT id,name,password FROM users;+----+----------+-------------------------------------------+| id | name | password |+----+----------+-------------------------------------------+| 1 | Legion | *153CCFAEAA83407D8DBDBFAA3D17B1A95553E60C || 2 | LookBack | *153CCFAEAA83407D8DBDBFAA3D17B1A95553E60C |+----+----------+-------------------------------------------+2 rows in set (0.00 sec)MariaDB [vsftpd]> \qBye[root@Legion100 ~]# |
3、配置vsFTPD
1)、建立pam认证所需的文件
新建个/etc/pam.d/vsftpd.mariadb文件
|
1
|
[root@Legion100 ~]# touch /etc/pam.d/vsftpd.mariadb |
2)、64位系统写入下面的内容
|
1
2
|
auth required /lib64/security/pam_mysql.so user=vsftpd passwd=lookback host=172.16.6.100 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2account required /lib64/security/pam_mysql.so user=vsftpd passwd=lookback host=172.16.6.100 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2 |
32位系统写入下面的内容
|
1
2
|
auth required /lib/security/pam_mysql.so user=vsftpd passwd=lookback host=172.16.6.100 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2account required /lib/security/pam_mysql.so user=vsftpd passwd=lookback host=172.16.6.100 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2 |
32位和64位通用写法
|
1
2
|
auth required pam_mysql.so user=vsftpd passwd=lookback host=172.16.6.100 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2account required pam_mysql.so user=vsftpd passwd=lookback host=172.16.6.100 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2 |
3)、修改vsftpd配置文件
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
|
[root@Legion100 ~]# cd /etc/vsftpd/[root@Legion100 /etc/vsftpd]# cp vsftpd.conf vsftpd.conf_`date +%F`[root@Legion100 /etc/vsftpd]# lsftpusers user_list vsftpd.conf vsftpd.conf_2015-06-03 vsftpd_conf_migrate.sh[root@Legion100 /etc/vsftpd]# groupadd -g 1501 vftpuser && useradd -g vftpuser -u 1501 -s /sbin/nologin -d /home/vftpuser vftpuser[root@Legion100 /etc/vsftpd]# id vftpuseruid=1501(vftpuser) gid=1501(vftpuser) 组=1501(vftpuser)[root@Legion100 /etc/vsftpd]# finger vftpuserLogin: vftpuser Name:Directory: /home/vftpuser Shell: /sbin/nologinNever logged in.No mail.No Plan.[root@Legion100 /etc/vsftpd]# mkdir -p /home/vftpuser[root@Legion100 /etc/vsftpd]# chown -R vftpuser.vftpuser /home/vftpuser[root@Legion100 /etc/vsftpd]# chmod go+rx /home/vftpuser[root@Legion100 /etc/vsftpd]# ls -ld /home/vftpuser/drwxr-xr-x 4 vftpuser vftpuser 4096 6月 3 16:14 /home/vftpuser/ |
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
|
[root@Legion100 /etc/vsftpd]# grep -Ev '(^#\s.*|^#|^$)' vsftpd.confanonymous_enable=YESlocal_enable=YESwrite_enable=YESlocal_umask=022anon_upload_enable=NOanon_mkdir_write_enable=NOdirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YESchroot_local_user=YESlisten=YESpam_service_name=vsftpd.mariadb#这里直接把pam的认证文件换成了vsftpd.mariadb后系统用户就不能登录ftp了userlist_enable=YEStcp_wrappers=YESguest_enable=YESguest_username=vftpuser |
reload下vsftpd使刚才上面的配置文件修改生效
|
1
2
3
4
|
[root@Legion100 /etc/vsftpd]# service vsftpd reload关闭 vsftpd: [确定]为 vsftpd 启动 vsftpd: [确定][root@Legion100 /etc/vsftpd]# |
4、测试登录
1)、Linux下
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
[root@Legion101 ~]# ifconfig | sed -rn '/^[^ \t]/{N;s/(^[^ ]*).*addr:([^ ]*).*/\1 \2/p}' | \> awk '$2!~/^192\.168|^10\.|^127|^0|^$/{print $1"="$2}'eth0=172.16.6.101[root@Legion101 ~]# ftp 172.16.6.100Connected to 172.16.6.100 (172.16.6.100).220 (vsFTPd 2.2.2)Name (172.16.6.100:root): Legion331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp> bye221 Goodbye.[root@Legion101 ~]# ftp 172.16.6.100Connected to 172.16.6.100 (172.16.6.100).220 (vsFTPd 2.2.2)Name (172.16.6.100:root): LookBack331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp> bye221 Goodbye.[root@Legion101 ~]# |

2)、Windows下
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
Microsoft Windows [版本 6.3.9600](c) 2013 Microsoft Corporation。保留所有权利。C:\Users\Administrator>ftp 172.16.6.100连接到 172.16.6.100。220 (vsFTPd 2.2.2)用户(172.16.6.100:(none)): Legion331 Please specify the password.密码:230 Login successful.ftp> pwd257 "/"ftp> bye221 Goodbye.C:\Users\Administrator>ftp 172.16.6.100连接到 172.16.6.100。220 (vsFTPd 2.2.2)用户(172.16.6.100:(none)): LookBack331 Please specify the password.密码:230 Login successful.ftp> pwd257 "/"ftp> bye221 Goodbye.C:\Users\Administrator> |

3)、客户端

5、配置基于单个虚拟用的权限
从上面可以看出我们创建的两个虚拟用户只能登录 但是不上传文件。下面将说说具体的虚拟用户权限配置
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
|
[root@Legion100 /etc/vsftpd]# echo "user_config_dir=/etc/vsftpd/vftpusers" >> /etc/vsftpd/vsftpd.conf[root@Legion100 /etc/vsftpd]# mkdir -p /etc/vsftpd/vftpusers[root@Legion100 /etc/vsftpd]# cd /etc/vsftpd/vftpusers[root@Legion100 /etc/vsftpd/vftpusers]# touch /etc/vsftpd/vftpusers/{Legion,LookBack}[root@Legion100 /etc/vsftpd/vftpusers]# cat > /etc/vsftpd/vftpusers/Legion <<EOFanon_upload_enable=YES#允许Legion用户可以上传文件anon_mkdir_write_enable=YES#允许Legion用可以创建文件anon_other_write_enable=YES#允许Legion可以删除文件EOF[root@Legion100 /etc/vsftpd/vftpusers]# cat /etc/vsftpd/vftpusers/Legion > /etc/vsftpd/vftpusers/LookBack[root@Legion100 /etc/vsftpd/vftpusers]# sed -i 's/NO/YES/' /etc/vsftpd/vftpusers/LookBack #修改LookBack没有上传 创建 删除权限[root@Legion100 /etc/vsftpd/vftpusers]# service vsftpd restart关闭 vsftpd: [确定]为 vsftpd 启动 vsftpd: [确定][root@Legion100 /etc/vsftpd/vftpusers]# |
2)、测试
|
01
02
03
04
05
06
07
08
09
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
|
[root@Legion101 ~]# ftp 172.16.6.100Connected to 172.16.6.100 (172.16.6.100).220 (vsFTPd 2.2.2)Name (172.16.6.100:root): Legion331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp> lcd /etc/Local directory now /etcftp> put inittablocal: inittab remote: inittab227 Entering Passive Mode (172,16,6,100,253,120).150 Ok to send data.226 Transfer complete.884 bytes sent in 7.4e-05 secs (11945.94 Kbytes/sec)ftp> ls -l227 Entering Passive Mode (172,16,6,100,244,244).150 Here comes the directory listing.-rw------- 1 1501 1501 884 Jun 03 09:02 inittab226 Directory send OK.ftp> bye221 Goodbye.[root@Legion101 ~]# ftp 172.16.6.100Connected to 172.16.6.100 (172.16.6.100).220 (vsFTPd 2.2.2)Name (172.16.6.100:root): Lookback331 Please specify the password.Password:530 Login incorrect.Login failed.ftp> lcd /etc/Local directory now /etcftp> put fstablocal: fstab remote: fstab530 Please login with USER and PASS.Passive mode refused.ftp> bye221 Goodbye.[root@Legion101 ~]# |

Linux基础入门之vsFTP+MySQL/MariaDB认证实现虚拟用户配置详解的更多相关文章
- linux下创建用户组与用户 只能访问指定目录的方法 以及FTP用户配置详解
VSFTPD 安装: -- 查看是否已经安装 VSftpd: rpm -qa | grep vsftp yum install -y vsftpd groupadd ftpuser #创建ftpuse ...
- MySQL 主从复制:基于二进制文件复制配置详解
MySQL-主从复制:基于二进制文件复制详解 前言 主从复制是指把一个MySQL的数据库服务器作为主服务器(master),然后把master的数据复制到一个或者多个MySQL数据库服务器作为从服务器 ...
- mysql高可用架构之mysql-mmm配置详解
实验系统:CentOS 6.6_x86_64 实验前提:防火墙和selinux都关闭 实验说明:本实验共有5台主机,IP分配如拓扑 实验软件:mariadb-10.0.20 mysql-mmm-2.2 ...
- Mysql数据库日志类型查询与配置详解
在mysql中日志分为很多种,下面小编来给大家介绍Mysql数据库日志类型查询与使用,希望对各位同学会有所帮助 mysql常见的日志类型有五种:错误日志.二进制日志.查询日志.慢查日志和中继日志. 一 ...
- 《SpringMVC从入门到放肆》三、DispatcherServlet的url-pattern配置详解
上一篇我们详细解释了一下SrpingMVC的执行流程以及一些默认的配置,在Spring的思想中,就是默认大于配置.今天我们来详细的研究一下DispatcherServlet的url-pattern配置 ...
- Linux基础入门教程
Linux基础入门教程 --------- Linux学习路径 Linux学习者,常常不知道自己改怎么学习linux:Linux初级,也就是入门linux前提是需要有一些计算机硬件相关的知识或是有一下 ...
- Linux 基础入门(新版)”实验报告一~十二
实验报告 日期: 2015年9月15日 一.实验的目的与要求 熟练地使用 Linux,本实验介绍 Linux 基本操作,shell 环境下的常用命令. 二.主要内容 1.Linux 基础入门& ...
- Linux基础入门学习笔记20135227黄晓妍
学习计时:共24小时 读书:1小时 代码:8小时 作业:3小时 博客:12小时 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用L ...
- Linux 基础入门 第二周9.21~9.27
一.学习内容 本周主要学习内容主要贴合: 在进行<深入理解计算机系统>这门课的实验中没有遇到什么大问题,学习内容与上周实验<linux基础入门>有相似之处.本实验中的内容比较贴 ...
随机推荐
- windwos7 vnc连接centos6.6
一.先配置centos6.6的vnc(已经安装过桌面) #yum install fontforge -y 防止字体乱码 #yum tigervnc tigervnc-server -y ...
- 《统计学习方法》笔记(8):AdaBoost算法
AdaBoost是最有代表性的提升算法之一.其基本思想可以表述为:多个专家的综合判断,要优于任意一个专家的判断. 1.什么是提升算法? "装袋"(bagging)和"提升 ...
- microsoft office如何在菜单里显示“开发工具”
VBA开发教程: https://www.yiibai.com/vba/vba_excel_macros.html msdn:https://docs.microsoft.com/zh-cn/offi ...
- Python扩展库2—matplotlib
1 载入matplotli的绘图模块,并重命名为plt import matplotlib.pyplot as plt 2 折线图 import matplotlib.pyplot as plt im ...
- SQL注入之Sqli-labs系列第二十三关(基于过滤的GET注入)
开始挑战第二十三关(Error Based- no comments) 先尝试下单引号进行报错 再来利用and来测试下,加入注释符#,编码成%23同样的报错 再来试试--+,同样的效果 同样的,先看看 ...
- 索引rebuild与rebuild online区别
索引rebuild与rebuild online区别 1.0目的,本篇文档探讨索引rebuild 与 rebuild online的区别 2.0猜测:已有的知识 2.1对索引rebuild重建会对表申 ...
- JavaBasic_07
面向对象三大特征 1.封装 封装是一种信息隐藏技术 a.是指数据和基于数据的操作封装在一起,数据被保护在内部(类的内部(对象)) b.系统的其他部分只有通过在数据外面的被授权的操作才能进行交互(没有授 ...
- 关于Linux前后台进程切换
前言: 当使用SSH远程登录服务器时,对于运行时间较长的程序(如Caffe的训练可能需要十几个小时), SSH可能会在很长时间后断掉,导致程序没运行完就中断了. 为了解决这个问题,需要将在服务器运行的 ...
- XXS level1
level1 (1)查看PHP源码,发现可以通过调用window,alert()完成任务 window.alert = function() { confirm("完成的不错!") ...
- php 中使用正则
1.匹配一个由一个小写字母和一位数字组成的字符串,比如”z2″ 用^[a-z][0-9]$ 2.当在一组方括号里使用^是,它表示“非”或“排除”的意思 比如要求第一个字符不能是数字:^[^0- ...