AIDE入侵检测系统
一、AIDE简介
• AIDE(Advanced Intrusion Detection Environment)
• 高级入侵检测环境)是一个入侵检测工具,主要用途是检查文件的完整性,审计计算机上的那些文件被更改过了。
• AIDE能够构造一个指定文件的数据库,它使用aide.conf作为其配置文件。AIDE数据库能够保存文件的各种属性,包括:权限(permission)、索引节点序号(inode number)、所属用户(user)、所属用户组(group)、文件大小、最后修改时间(mtime)、创建时间(ctime)、最后访问时间(atime)、增加的大小以及连接数。AIDE还
能够使用下列算法:sha1、md5、rmd160、tiger,以密文形式建立每个文件的校验码或散列号.
• 不应该对那些经常变动的文件进行检测,例如:日志文件、邮件、/proc文件系统、用户起始目录以及临时目录.
二、安装配置
1、安装
yum install -y aide
查看安装生成的文件
- [root@newhostname ~]# rpm -ql aide
- /etc/aide.conf #配置文件
- /etc/logrotate.d/aide
- /usr/sbin/aide #2进制文件
- /usr/share/doc/aide-0.15.1
- /usr/share/doc/aide-0.15.1/AUTHORS
- /usr/share/doc/aide-0.15.1/COPYING
- /usr/share/doc/aide-0.15.1/ChangeLog
- /usr/share/doc/aide-0.15.1/NEWS
- /usr/share/doc/aide-0.15.1/README
- /usr/share/doc/aide-0.15.1/README.quickstart
- /usr/share/doc/aide-0.15.1/contrib
- /usr/share/doc/aide-0.15.1/contrib/aide-attributes.sh
- /usr/share/doc/aide-0.15.1/contrib/bzip2.sh
- /usr/share/doc/aide-0.15.1/contrib/gpg2_check.sh
- /usr/share/doc/aide-0.15.1/contrib/gpg2_update.sh
- /usr/share/doc/aide-0.15.1/contrib/gpg_check.sh
- /usr/share/doc/aide-0.15.1/contrib/gpg_update.sh
- /usr/share/doc/aide-0.15.1/contrib/sshaide.sh
- /usr/share/doc/aide-0.15.1/manual.html
- /usr/share/man/man1/aide.1.gz
- /usr/share/man/man5/aide.conf.5.gz
- /var/lib/aide #aide的数据库文件
- /var/log/aide #aide的日志
2、配置aide
首先我们先查看aide的配置文件 /etc/aide.conf
- @@define DBDIR /var/lib/aide
- @@define LOGDIR /var/log/aide
- 表示定义了两个变量,下面会直接引用这两个变量 DBDIR LOGDIR
- database=file:@@{DBDIR}/aide.db.gz 表示数据库的位置
- database_out=file:@@{DBDIR}/aide.db.new.gz 表示检测的数据库的位置
- report_url=file:@@{LOGDIR}/aide.log aide的日志文件
- report_url=stdout 表示输出到屏幕
- ---------------------------------------------------------------------
- 再往下的配置文件定义,需要检测的文件的权限,默认配置文件中就有说明,这里不再赘述
- ALLXTRAHASHES = sha1+rmd160+sha256+sha512+tiger
- EVERYTHING = R+ALLXTRAHASHES
- DIR = p+i+n+u+g+acl+selinux+xattrs
- .
- .
- .
- 这些表示定义一些权限的集合
- /boot/ CONTENT_EX
- /bin/ CONTENT_EX
- /sbin/ CONTENT_EX
- /lib/ CONTENT_EX
- /lib64/ CONTENT_EX
- /opt/ CONTENT
- 这些是系统默认的检测的目录,其格式就是
- 目录 权限的集合 #这里应该明白是什么意思吧,就是,一个目录对应要检测的权限项目,而这个权限项目可以通过变量自己定义,或者直接引用系统默认的选项都行
- 在这个配置文件中我们只需要将我们需要特定的目录加以配置就可以了,就以/app为例
- /app DIR #表示我们检测 /app 这个目录的 DIR 这些属性,当DIR这些属性发生变化时会报警。
现在我们来初始话aide的数据库
- [root@newhostname etc]# aide --init #初始化数据库
- AIDE, version 0.15.1
- ### AIDE database at /var/lib/aide/aide.db.new.gz initialized.
现在我们修改一下/app下的数据
- [root@newhostname etc]# cd /app/
- [root@newhostname app]# ll
- 总用量 28
- -rw-r--r--. 1 root root 57 1月 7 21:21 fist.des3
- -rw-r--r--. 1 root root 16 1月 6 19:44 fist_encrypt
- -rw-r--r--. 1 root root 16 1月 7 21:21 new_file
- -rw-r--r--. 1 root root 1679 1月 7 22:40 private_key
- -rw-------. 1 root root 1679 1月 7 23:04 private_key.tmp
- -rw-r--r--. 1 root root 451 1月 7 22:58 pub_key
- -rw-r--r--. 1 root root 1679 1月 7 23:00 pub_key.tmp
- [root@newhostname app]# chown apache.apache /app/fist.des3
我们修改了/app/fist.des3文件,现在我们使用aide来检测一下
- [root@newhostname app]# ls /var/lib/aide/
- aide.db.new.gz
- [root@newhostname app]# mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz 这里我们需要改名,为什么要改名,请看下上面配置文件的前两条
- aide的原理就是,将新老两个数据进行对比,属性不一致的条目就报警。
- [root@newhostname app]# aide --check
- AIDE 0.15.1 found differences between database and filesystem!!
- Start timestamp: 2018-01-10 21:30:42
- Summary:
- Total number of files: 239213
- Added files: 0
- Removed files: 0
- Changed files: 1
- ---------------------------------------------------
- Changed files:
- ---------------------------------------------------
- changed: /app/fist.des3
- ---------------------------------------------------
- Detailed information about changes:
- ---------------------------------------------------
- File: /app/fist.des3
- Uid : 0 , 48
- Gid : 0 , 48
- 已经检测除了我们改的那个文件的权限。
下一步,我们更新是当前数据库为最新数据
- [root@newhostname app]# aide --update
- AIDE 0.15.1 found differences between database and filesystem!!
- Start timestamp: 2018-01-10 21:35:28
- Summary:
- Total number of files: 239213
- Added files: 0
- Removed files: 0
- Changed files: 1
- ---------------------------------------------------
- Changed files:
- ---------------------------------------------------
- changed: /app/fist.des3
- ---------------------------------------------------
- Detailed information about changes:
- ---------------------------------------------------
- File: /app/fist.des3
- Uid : 0 , 48
- Gid : 0 , 48
- update操作会生成一个新的aide.db.new.gz
- 现在我们需要将旧库删除,将新库改名
- -rw-------. 1 root root 9107067 1月 10 21:10 aide.db.gz
- -rw-------. 1 root root 9107065 1月 10 21:38 aide.db.new.gz
- [root@newhostname aide]# rm aide.db.gz
- rm:是否删除普通文件 "aide.db.gz"?y
- [root@newhostname aide]# mv aide.db.new.gz aide.db.gz
aide简单的配置就完成了
一、AIDE简介
• AIDE(Advanced Intrusion Detection Environment)
• 高级入侵检测环境)是一个入侵检测工具,主要用途是检查文件的完整性,审计计算机上的那些文件被更改过了。
• AIDE能够构造一个指定文件的数据库,它使用aide.conf作为其配置文件。AIDE数据库能够保存文件的各种属性,包括:权限(permission)、索引节点序号(inode number)、所属用户(user)、所属用户组(group)、文件大小、最后修改时间(mtime)、创建时间(ctime)、最后访问时间(atime)、增加的大小以及连接数。AIDE还
能够使用下列算法:sha1、md5、rmd160、tiger,以密文形式建立每个文件的校验码或散列号.
• 不应该对那些经常变动的文件进行检测,例如:日志文件、邮件、/proc文件系统、用户起始目录以及临时目录.
二、安装配置
1、安装
yum install -y aide
查看安装生成的文件
- [root@newhostname ~]# rpm -ql aide
- /etc/aide.conf #配置文件
- /etc/logrotate.d/aide
- /usr/sbin/aide #2进制文件
- /usr/share/doc/aide-0.15.1
- /usr/share/doc/aide-0.15.1/AUTHORS
- /usr/share/doc/aide-0.15.1/COPYING
- /usr/share/doc/aide-0.15.1/ChangeLog
- /usr/share/doc/aide-0.15.1/NEWS
- /usr/share/doc/aide-0.15.1/README
- /usr/share/doc/aide-0.15.1/README.quickstart
- /usr/share/doc/aide-0.15.1/contrib
- /usr/share/doc/aide-0.15.1/contrib/aide-attributes.sh
- /usr/share/doc/aide-0.15.1/contrib/bzip2.sh
- /usr/share/doc/aide-0.15.1/contrib/gpg2_check.sh
- /usr/share/doc/aide-0.15.1/contrib/gpg2_update.sh
- /usr/share/doc/aide-0.15.1/contrib/gpg_check.sh
- /usr/share/doc/aide-0.15.1/contrib/gpg_update.sh
- /usr/share/doc/aide-0.15.1/contrib/sshaide.sh
- /usr/share/doc/aide-0.15.1/manual.html
- /usr/share/man/man1/aide.1.gz
- /usr/share/man/man5/aide.conf.5.gz
- /var/lib/aide #aide的数据库文件
- /var/log/aide #aide的日志
2、配置aide
首先我们先查看aide的配置文件 /etc/aide.conf
- @@define DBDIR /var/lib/aide
- @@define LOGDIR /var/log/aide
- 表示定义了两个变量,下面会直接引用这两个变量 DBDIR LOGDIR
- database=file:@@{DBDIR}/aide.db.gz 表示数据库的位置
- database_out=file:@@{DBDIR}/aide.db.new.gz 表示检测的数据库的位置
- report_url=file:@@{LOGDIR}/aide.log aide的日志文件
- report_url=stdout 表示输出到屏幕
- ---------------------------------------------------------------------
- 再往下的配置文件定义,需要检测的文件的权限,默认配置文件中就有说明,这里不再赘述
- ALLXTRAHASHES = sha1+rmd160+sha256+sha512+tiger
- EVERYTHING = R+ALLXTRAHASHES
- DIR = p+i+n+u+g+acl+selinux+xattrs
- .
- .
- .
- 这些表示定义一些权限的集合
- /boot/ CONTENT_EX
- /bin/ CONTENT_EX
- /sbin/ CONTENT_EX
- /lib/ CONTENT_EX
- /lib64/ CONTENT_EX
- /opt/ CONTENT
- 这些是系统默认的检测的目录,其格式就是
- 目录 权限的集合 #这里应该明白是什么意思吧,就是,一个目录对应要检测的权限项目,而这个权限项目可以通过变量自己定义,或者直接引用系统默认的选项都行
- 在这个配置文件中我们只需要将我们需要特定的目录加以配置就可以了,就以/app为例
- /app DIR #表示我们检测 /app 这个目录的 DIR 这些属性,当DIR这些属性发生变化时会报警。
现在我们来初始话aide的数据库
- [root@newhostname etc]# aide --init #初始化数据库
- AIDE, version 0.15.1
- ### AIDE database at /var/lib/aide/aide.db.new.gz initialized.
现在我们修改一下/app下的数据
- [root@newhostname etc]# cd /app/
- [root@newhostname app]# ll
- 总用量 28
- -rw-r--r--. 1 root root 57 1月 7 21:21 fist.des3
- -rw-r--r--. 1 root root 16 1月 6 19:44 fist_encrypt
- -rw-r--r--. 1 root root 16 1月 7 21:21 new_file
- -rw-r--r--. 1 root root 1679 1月 7 22:40 private_key
- -rw-------. 1 root root 1679 1月 7 23:04 private_key.tmp
- -rw-r--r--. 1 root root 451 1月 7 22:58 pub_key
- -rw-r--r--. 1 root root 1679 1月 7 23:00 pub_key.tmp
- [root@newhostname app]# chown apache.apache /app/fist.des3
我们修改了/app/fist.des3文件,现在我们使用aide来检测一下
- [root@newhostname app]# ls /var/lib/aide/
- aide.db.new.gz
- [root@newhostname app]# mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz 这里我们需要改名,为什么要改名,请看下上面配置文件的前两条
- aide的原理就是,将新老两个数据进行对比,属性不一致的条目就报警。
- [root@newhostname app]# aide --check
- AIDE 0.15.1 found differences between database and filesystem!!
- Start timestamp: 2018-01-10 21:30:42
- Summary:
- Total number of files: 239213
- Added files: 0
- Removed files: 0
- Changed files: 1
- ---------------------------------------------------
- Changed files:
- ---------------------------------------------------
- changed: /app/fist.des3
- ---------------------------------------------------
- Detailed information about changes:
- ---------------------------------------------------
- File: /app/fist.des3
- Uid : 0 , 48
- Gid : 0 , 48
- 已经检测除了我们改的那个文件的权限。
下一步,我们更新是当前数据库为最新数据
- [root@newhostname app]# aide --update
- AIDE 0.15.1 found differences between database and filesystem!!
- Start timestamp: 2018-01-10 21:35:28
- Summary:
- Total number of files: 239213
- Added files: 0
- Removed files: 0
- Changed files: 1
- ---------------------------------------------------
- Changed files:
- ---------------------------------------------------
- changed: /app/fist.des3
- ---------------------------------------------------
- Detailed information about changes:
- ---------------------------------------------------
- File: /app/fist.des3
- Uid : 0 , 48
- Gid : 0 , 48
- update操作会生成一个新的aide.db.new.gz
- 现在我们需要将旧库删除,将新库改名
- -rw-------. 1 root root 9107067 1月 10 21:10 aide.db.gz
- -rw-------. 1 root root 9107065 1月 10 21:38 aide.db.new.gz
- [root@newhostname aide]# rm aide.db.gz
- rm:是否删除普通文件 "aide.db.gz"?y
- [root@newhostname aide]# mv aide.db.new.gz aide.db.gz
aide简单的配置就完成了
一、AIDE简介
• AIDE(Advanced Intrusion Detection Environment)
• 高级入侵检测环境)是一个入侵检测工具,主要用途是检查文件的完整性,审计计算机上的那些文件被更改过了。
• AIDE能够构造一个指定文件的数据库,它使用aide.conf作为其配置文件。AIDE数据库能够保存文件的各种属性,包括:权限(permission)、索引节点序号(inode number)、所属用户(user)、所属用户组(group)、文件大小、最后修改时间(mtime)、创建时间(ctime)、最后访问时间(atime)、增加的大小以及连接数。AIDE还
能够使用下列算法:sha1、md5、rmd160、tiger,以密文形式建立每个文件的校验码或散列号.
• 不应该对那些经常变动的文件进行检测,例如:日志文件、邮件、/proc文件系统、用户起始目录以及临时目录.
二、安装配置
1、安装
yum install -y aide
查看安装生成的文件
- [root@newhostname ~]# rpm -ql aide
- /etc/aide.conf #配置文件
- /etc/logrotate.d/aide
- /usr/sbin/aide #2进制文件
- /usr/share/doc/aide-0.15.1
- /usr/share/doc/aide-0.15.1/AUTHORS
- /usr/share/doc/aide-0.15.1/COPYING
- /usr/share/doc/aide-0.15.1/ChangeLog
- /usr/share/doc/aide-0.15.1/NEWS
- /usr/share/doc/aide-0.15.1/README
- /usr/share/doc/aide-0.15.1/README.quickstart
- /usr/share/doc/aide-0.15.1/contrib
- /usr/share/doc/aide-0.15.1/contrib/aide-attributes.sh
- /usr/share/doc/aide-0.15.1/contrib/bzip2.sh
- /usr/share/doc/aide-0.15.1/contrib/gpg2_check.sh
- /usr/share/doc/aide-0.15.1/contrib/gpg2_update.sh
- /usr/share/doc/aide-0.15.1/contrib/gpg_check.sh
- /usr/share/doc/aide-0.15.1/contrib/gpg_update.sh
- /usr/share/doc/aide-0.15.1/contrib/sshaide.sh
- /usr/share/doc/aide-0.15.1/manual.html
- /usr/share/man/man1/aide.1.gz
- /usr/share/man/man5/aide.conf.5.gz
- /var/lib/aide #aide的数据库文件
- /var/log/aide #aide的日志
2、配置aide
首先我们先查看aide的配置文件 /etc/aide.conf
- @@define DBDIR /var/lib/aide
- @@define LOGDIR /var/log/aide
- 表示定义了两个变量,下面会直接引用这两个变量 DBDIR LOGDIR
- database=file:@@{DBDIR}/aide.db.gz 表示数据库的位置
- database_out=file:@@{DBDIR}/aide.db.new.gz 表示检测的数据库的位置
- report_url=file:@@{LOGDIR}/aide.log aide的日志文件
- report_url=stdout 表示输出到屏幕
- ---------------------------------------------------------------------
- 再往下的配置文件定义,需要检测的文件的权限,默认配置文件中就有说明,这里不再赘述
- ALLXTRAHASHES = sha1+rmd160+sha256+sha512+tiger
- EVERYTHING = R+ALLXTRAHASHES
- DIR = p+i+n+u+g+acl+selinux+xattrs
- .
- .
- .
- 这些表示定义一些权限的集合
- /boot/ CONTENT_EX
- /bin/ CONTENT_EX
- /sbin/ CONTENT_EX
- /lib/ CONTENT_EX
- /lib64/ CONTENT_EX
- /opt/ CONTENT
- 这些是系统默认的检测的目录,其格式就是
- 目录 权限的集合 #这里应该明白是什么意思吧,就是,一个目录对应要检测的权限项目,而这个权限项目可以通过变量自己定义,或者直接引用系统默认的选项都行
- 在这个配置文件中我们只需要将我们需要特定的目录加以配置就可以了,就以/app为例
- /app DIR #表示我们检测 /app 这个目录的 DIR 这些属性,当DIR这些属性发生变化时会报警。
现在我们来初始话aide的数据库
- [root@newhostname etc]# aide --init #初始化数据库
- AIDE, version 0.15.1
- ### AIDE database at /var/lib/aide/aide.db.new.gz initialized.
现在我们修改一下/app下的数据
- [root@newhostname etc]# cd /app/
- [root@newhostname app]# ll
- 总用量 28
- -rw-r--r--. 1 root root 57 1月 7 21:21 fist.des3
- -rw-r--r--. 1 root root 16 1月 6 19:44 fist_encrypt
- -rw-r--r--. 1 root root 16 1月 7 21:21 new_file
- -rw-r--r--. 1 root root 1679 1月 7 22:40 private_key
- -rw-------. 1 root root 1679 1月 7 23:04 private_key.tmp
- -rw-r--r--. 1 root root 451 1月 7 22:58 pub_key
- -rw-r--r--. 1 root root 1679 1月 7 23:00 pub_key.tmp
- [root@newhostname app]# chown apache.apache /app/fist.des3
我们修改了/app/fist.des3文件,现在我们使用aide来检测一下
- [root@newhostname app]# ls /var/lib/aide/
- aide.db.new.gz
- [root@newhostname app]# mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz 这里我们需要改名,为什么要改名,请看下上面配置文件的前两条
- aide的原理就是,将新老两个数据进行对比,属性不一致的条目就报警。
- [root@newhostname app]# aide --check
- AIDE 0.15.1 found differences between database and filesystem!!
- Start timestamp: 2018-01-10 21:30:42
- Summary:
- Total number of files: 239213
- Added files: 0
- Removed files: 0
- Changed files: 1
- ---------------------------------------------------
- Changed files:
- ---------------------------------------------------
- changed: /app/fist.des3
- ---------------------------------------------------
- Detailed information about changes:
- ---------------------------------------------------
- File: /app/fist.des3
- Uid : 0 , 48
- Gid : 0 , 48
- 已经检测除了我们改的那个文件的权限。
下一步,我们更新是当前数据库为最新数据
- [root@newhostname app]# aide --update
- AIDE 0.15.1 found differences between database and filesystem!!
- Start timestamp: 2018-01-10 21:35:28
- Summary:
- Total number of files: 239213
- Added files: 0
- Removed files: 0
- Changed files: 1
- ---------------------------------------------------
- Changed files:
- ---------------------------------------------------
- changed: /app/fist.des3
- ---------------------------------------------------
- Detailed information about changes:
- ---------------------------------------------------
- File: /app/fist.des3
- Uid : 0 , 48
- Gid : 0 , 48
- update操作会生成一个新的aide.db.new.gz
- 现在我们需要将旧库删除,将新库改名
- -rw-------. 1 root root 9107067 1月 10 21:10 aide.db.gz
- -rw-------. 1 root root 9107065 1月 10 21:38 aide.db.new.gz
- [root@newhostname aide]# rm aide.db.gz
- rm:是否删除普通文件 "aide.db.gz"?y
- [root@newhostname aide]# mv aide.db.new.gz aide.db.gz
aide简单的配置就完成了
AIDE入侵检测系统的更多相关文章
- 开源入侵检测系统OSSEC搭建之二:客户端安装
上一篇文章中已经将OSSEC服务端的安装以及客户端的Key导出操作做了解说,接下来在另一台虚拟机中安装客户端,与安装服务端类似同样需要安装ossec,步骤如下. 一.下载ossec-hids-2.8. ...
- 开源入侵检测系统OSSEC搭建之一:服务端安装
OSSEC是一款开源的多平台的入侵检测系统,可以运行于Windows, Linux, OpenBSD/FreeBSD, 以及 MacOS等操作系统中.主要功能有日志分析.完整性检查.rootkit检测 ...
- 构建基于Suricata+Splunk的IDS入侵检测系统
一.什么是IDS和IPS? IDS(Intrusion Detection Systems):入侵检测系统,是一种网络安全设备或应用软件,可以依照一定的安全策略,对网络.系统的运行状况进行监视,尽可能 ...
- 搭建开源入侵检测系统Snort并实现与防火墙联动
Snort作为一款优秀的开源主机入侵检测系统,在windows和Linux平台上均可安装运行.BT5作为曾经的一款经典的渗透神器,基于 Ubuntu,里面已经预装很多的应用,比如Mysql.Apach ...
- Snort 入侵检测系统
Snort 入侵检测系统 一.实验目的 1.掌握snort IDS工作原理 2.应用snort 三种方式工作 二.实验环境 系统环境:Windows环境, kali环境 三.实验原理 1.snort ...
- SNORT入侵检测系统
SNORT入侵检测系统 YxWa · 2015/10/09 10:38 0x00 一条简单的规则 alert tcp 202.110.8.1 any -> 122.111.90.8 80 (ms ...
- CentOS7下的AIDE入侵检测配置
一.AIDE的概念 AIDE:Advanced Intrusion Detection Environment,是一款入侵检测工具,主要用途是检查文档的完整性.AIDE在本地构造了一个基准的数据库,一 ...
- IDS入侵检测系统
目录 IDS入侵检测系统 入侵检测系统的作用 入侵检测系统功能 入侵检测系统的分类 入侵检测系统的架构 入侵检测工作过程 数据检测技术 误用检测 异常检测 IDS的部署 基于网络的IDS 基于主机的I ...
- Linux 上搭建 Snort+BASE 入侵检测系统
配置实验环境 由于本人电脑的存储空间不足,无法再承担安装一个虚拟机的开销,因此在阿里云上申请了一个云服务器进行本次实验.服务器配置如下: 1 核 - 2GB 内存 - 40GB 系统盘 操作系统:Ub ...
随机推荐
- SGI STL内存管理
前言 万丈高楼平地起,内存管理在C++领域里扮演着举足轻重的作用.对于SGI STL这么重量级的作品,当然少不了内存管理的实现.同时,想要从深层次理解SGI STL的原理,必须先将内存管理这部分的内容 ...
- C语言一行太长的换行处理
转载:https://blog.csdn.net/baiqishijkh/article/details/79236202 在C语言程序编写中,我们有时会遇到一行代码太长而影响阅读或者出现与部分公司或 ...
- Mysql 三大特性详解
Mysql 三大特性详解 Mysql Innodb后台线程 工作方式 首先Mysql进程模型是单进程多线程的.所以我们通过ps查找mysqld进程是只有一个. 体系架构 InnoDB存储引擎的架构如下 ...
- pandas字符串与时间序列的处理 str 与 dt
一.str属性 pandas里的Series有一个str属性,通个这个属性可以调用一些对字符串处理的通用函数, 如:df['road'].str.contains('康庄大道') 会返回字符串里包含 ...
- golang 客户端
package main import ( "fmt" "io/ioutil" "net/http" ) func main() { fmt ...
- P3748 [六省联考2017]摧毁“树状图”
传送门 显然是可以树形 $dp$ 的 对每个节点维护以下 $5$ 个东西 $1.$ 从当前节点出发往下的链的最大贡献 $2.$ 节点子树内不经过本身的路径最大贡献 $3.$ 节点子树内经过本身的路径的 ...
- Make It One CodeForces - 1043F (数论,最短路,好题)
大意: 给定序列$a$, 求最小子集, 使得gcd为1. 对于数$x$, 素因子多少次幂是无关紧要的, 这样就可以用一个二进制数来表示. $x$取$gcd$后的二进制状态最多$2^7$, 可以暴力枚举 ...
- 怎样禁止 html 中 <textarea> 标签可以拉伸改变大小 ?
1. 一般来说, 使用 <textarea> 这个标签都会禁用掉它的这个默认属性, 不然可能会被用户玩儿坏, 而且也不利于其他元素的展示, 使用到的属性是 resize , 改为 none ...
- JDBC24homework
编写程序: 创建一个类DBTools,在DBTools中创建一个方法find,find方法用于对数据库进行查询操作,现在要求将结果集封装成数组线性表嵌套数组的形式: ArrayList<Stri ...
- C#面向对象10 继承
1.继承: **** 我们可能会在一些类中,写一些重复的成员.我们可以将这些重复的成员,单独的封装到一个类中,作为这些类的父类. Student,Teacher,Driver ----子类 派生类 ...