在CentOS 7上使用Tripwire监控和检测修改的文件
在CentOS 7上使用Tripwire监控和检测修改的文件
Tripwire是一个免费的开源入侵检测系统(IDS)。 它是用于监视和警告系统上文件更改的安全工具。 Tripwire是一个功能强大的IDS,可以保护您的系统免受不必要的更改。 您可以使用它来监控您的系统文件,包括网站文件,因此当有不需要的文件更改时,Tripwire会检查您的系统,如果设置正确,可以通过电子邮件提醒您。
在本教程中,我们将向您展示如何使用CentOS 7系统上的Tripwire监控和检测系统文件中的任何更改。 我们将向您展示如何在CentOS 7上安装和配置Tripwire,如何生成Tripwire密钥文件,配置和添加tripwire策略,检查系统以及为tripwire和cron设置启用电子邮件通知。
我们将要做什么
- 在CentOS 7上安装Tripwire
- 为CentOS 7配置Tripwire策略
- 验证Tripwire配置
- 向Tripwire政策添加新规则
- 设置Tripwire电子邮件通知和Cron
先决条件
- CentOS 7系统
- 根特权
第1步 - 在CentOS 7上安装Tripwire
我们必须做的第一步是将Tripwire安装到系统上。 默认情况下,tripwire在CentOS 7存储库中可用。
登录到您的服务器并更新所有软件包。
ssh root@hakase-labs.co
sudo yum update -y
现在使用yum安装Tripwire。
yum -y install tripwire
安装完成后,我们需要生成新的密钥文件。
Tripwire使用2个关键文件。
- site-key:它用于保护Tripwire配置。 因此,除非我们再次生成配置,否则对tripwire配置所做的任何更改都不会生效,我们会提示您输入“site-key”密码。
- local-key:它用于验证tripwire二进制文件。 当我们想要更新tripwire系统数据库时,我们需要运行tripwire命令,并且会提示我们输入'local-key'的密码。
我们使用下面的命令生成新的tripwire密钥文件(站点和本地密钥)。
sudo tripwire-setup-keyfiles
该命令将生成两个密钥文件“site-key”和“local-key”,并且您将被要求输入每个密码。
输入您自己的“ 网站密钥 ”密码,然后按Enter键。
输入您自己的“ 本地密钥 ”密码并再次按Enter键。
接下来,使用'site-key'签署tripwire配置。
输入您的“ 网站密钥 ”密码。
现在,为了签署Tripwire政策,请输入您的“ 本地密钥 ”密码。
Tripwire已安装在CentOS 7上,新的tripwire配置和密钥位于'/ etc / tripwire'目录中。
第2步 - 为CentOS 7配置Tripwire策略
在我们第一步讨论的tripwire安装之后,我们需要初始化tripwire数据库并确保没有错误。
使用下面的tripwire命令初始化tripwire数据库。
sudo tripwire --init
您将被问到“local-key”密码短语,您可能会收到错误消息“no such directory”,如下所示。
我们得到错误是因为系统没有在tripwire配置中已经定义的目录和文件。 为了解决这个错误,我们需要编辑tripwire配置'twpol.txt'并重新签署tripwire配置。
现在使用下面的命令从tripwire生成日志错误。
sudo sh -c "tripwire --check | grep Filename > no-directory.txt"
所有不存在于CentOS 7系统上的目录和文件都列在文件'mo-directory.txt'中
cat no-directory.txt
使用以下bash脚本编辑tripwire配置'twpol.txt' - 在终端上运行此脚本。
for f in $(grep "Filename:" no-directory.txt | cut -f2 -d:); do
sed -i "s|\($f\) |#\\1|g" /etc/tripwire/twpol.txt
done
毕竟,我们需要使用twadmin命令重新生成并重新签署tripwire配置,如下所示。
sudo twadmin -m P /etc/tripwire/twpol.txt
输入您的“网站密钥”密码。
重新初始化tripwire数据库,并确保没有错误。
sudo tripwire --init
重新初始化tripwire数据库,没有任何错误。
第3步 - 验证Tripwire配置和检查系统
要验证tripwire配置,我们可以运行系统检查命令如下。
sudo tripwire --check
你应该得到类似于以下的结果。
所以这意味着在我们的系统上没有发现错误和系统违规。
现在我们将尝试在根目录下添加一个新文件,并使用tripwire再次检查。
转到根目录并创建一个新文件'hakase-labs.txt'。
cd ~/
touch hakase-labs.txt
现在使用tripwire命令再次检查系统。
sudo tripwire --check
您将在系统中得到严重程度为100的新违规的结果,如下所示。
在这个阶段,Tripwire为CentOS 7系统安装和配置。
第4步 - 将新规则添加到Tripwire策略
在这一步中,我们将向您展示如何将新规则添加到tripwire策略配置“twpol.txt”。
要执行这项工作,我们需要定义规则名称,严重程度,监视目录和文件类型。 在这一步中,我们将在'/ var / www /'目录下为我们的WordPress安装创建一个名为'Wordpress Data'的新规则,严重程度为'HIGH / SIG_HI',并且该目录中的所有文件都是关键的以及源代码不能更改)。
转到tripwire配置目录'/ etc / tripwire'并使用vim编辑配置文件'twpol.txt'。
cd /etc/tripwire/
vim twpol.txt
转到该行的末尾,并在那里粘贴以下WordPress规则。
# Ruleset for Wordpress
(
rulename = "Wordpress Data",
severity= $(SIG_HI)
)
{
/var/www -> $(SEC_CRIT);
}
保存并退出。
使用twadmin命令重新生成并重新签名配置,如下所示。
sudo twadmin -m P /etc/tripwire/twpol.txt
输入您的“网站密钥”密码。
现在我们需要再次重新生成tripwire数据库。
sudo tripwire --init
输入“本地密钥”密码。
新的规则集已添加并应用于Tripwire策略配置。
使用下面的tripwire命令检查您的系统。
sudo tripwire --check
你应该得到结果说没有错误和违反。
现在进入'/ var / www /'目录并在其中创建一个新文件。
cd /var/www/
touch hakase-labs.php
再次使用tripwire进行系统检查。
sudo tripwire --check
并且您将在安全级别为高100的'/ var / www /'目录中得到说明系统违规的结果。
新规则已添加并应用于Tripwire策略配置。
第5步 - 安装Tripwire电子邮件通知和Cron
在这一步中,我们将为特定tripwire规则集策略配置通知,并配置用于自动系统检查的cronjob。 我们会将任何违反'WordPress数据'规则的报告发送到电子邮件地址' myemail@gmail.com '。
对于电子邮件通知,tripwire在配置中提供了一个'emailto'功能。 默认情况下,tripwire使用Postfix或Sendmail通过电子邮件发送报告。
在配置电子邮件通知之前,请使用以下命令测试tripwire通知功能。
sudo tripwire --test --email email@gmail.com
检查你的电子邮件,你应该从你的服务器得到电子邮件报告如下。
现在进入'/ etc / tripwire'目录并编辑'twpol.txt'配置。
cd /etc/tripwire/
vim twpol.txt
在'WordPress数据'规则中添加新行'emailto',如下所示。
# Ruleset for Wordpress
(
rulename = "Wordpress Data",
severity= $(SIG_HI),
emailto = myemail@gmail.com
)
{
/var/www -> $(SEC_CRIT);
}
保存并退出。
使用twadmin命令重新生成并签署配置。
sudo twadmin -m P /etc/tripwire/twpol.txt
输入您的“网站密钥”密码。
并重新生成tripwire数据库。
sudo tripwire --init
输入您的tripwire'local-key'密码。
Tripwire电子邮件通知的配置已完成。
现在通过在'/ var / www /'目录中再次创建一个新文件来做一些测试。
cd /var/www/
touch hakase.txt
使用下面的命令再次检查您的系统。
sudo tripwire --check --email-report
注意:
- --email-report:将系统报告发送到每个规则中定义的电子邮件地址。
检查你的电子邮件,你应该在电子邮件中得到如下结果。
Tripwire的电子邮件通知已启用并应用。
接下来,我们将使用cron setup启用自动Tripwire系统检查。 为此,请使用下面的crontab命令在root用户下创建一个新的cron脚本。
sudo crontab -e -u root
粘贴以下cron配置。
0 0 * * * tripwire --check --email-report
保存并退出。
注意:
- - cron脚本将每天进行tripwire系统检查。
现在重新启动CentOS 7上的crond服务。
systemctl restart crond
现在,您将每天收到tripwire报告通知到您的电子邮件。
Tripwire已经安装并配置用于CentOS 7系统。
安装和配置Tripwire,加强你的Linux系统安全
1、为什么要安装 tripwire
在安装完 Linux,做好设定后,建议你马上安装 tripwire 这套软件,它能把文件的特征,如对象大小、拥有者、群组、存取权限等建立成指纹数据库(fingerprints),并定期执行检查。当发现文件现况与指纹数据库不符合时,tripwire 会提出警告,告知你哪些项目与指纹数据库不符。
2、安装程序
说明:本文档使用的linux发行版本为RedHat Linux 7.3。其他的发行版本设置类似。
1. 安装套件:rpm -Uvh tripwire-版本号码.rpm
2. 切换工作目录到 /etc/tripwire,其中有两个配置文件:
§ twcfg.txt:可用来设定 tripwire 的工作环境,可依照你的习惯来调整,
§ twpol.txt:指定 tripwire 对哪些文件的哪些项目进行监控。
3. 预设的 twcfg.txt其中
ROOT =/usr/sbin
POLFILE =/etc/tripwire/tw.pol
DBFILE =/var/lib/tripwire/$(HOSTNAME).twd
REPORTFILE =/var/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr
SITEKEYFILE =/etc/tripwire/site.key
LOCALKEYFILE =/etc/tripwire/$(HOSTNAME)-local.key
EDITOR =/bin/vi
LATEPROMPTING =false
LOOSEDIRECTORYCHECKING =false
MAILNOVIOLATIONS =true
EMAILREPORTLEVEL =3
REPORTLEVEL =3
MAILMETHOD =SENDMAIL
SYSLOGREPORTING =false
MAILPROGRAM =/usr/sbin/sendmail -oi -t
§ DBFILE 为指纹数据库之文件名。
§ REPORTFILE 为检测报告档之档名。
4. 再来看看 twpol.txt,我们可以设定它来指定 tripwire 对哪些文件的 哪些项目进行监控。tripwire 可监控的项目可在 twpolicy 的 man page 中, 『property masks』一节内找到,如下所示:
- Ignore the following properties
+ Record and check the following properties
a Access timestamp
b Number of blocks allocated
c Inode timestamp (create/modify)
d ID of device on which inode resides
g File owner's group ID
i Inode number
l File is increasing in size (a "growing file")
m Modification timestamp
n Number of links (inode reference count)
p Permissions and file mode bits
r ID of device pointed to by inode
(valid only for device objects)
s File size
t File type
u File owner's user ID
C CRC-32 hash value
H Haval hash value
M MD5 hash value
S SHA hash value
其中『+』与『-』容后说明。
5. 如何要求 tripwire 监控某些文件呢?Red Hat 所附的 twpol.txt 已把重要的配置文件与程序行入监控的范围,你可以找到如附 图内的这一段:(
(
rulename = "Security Control",
severity = $(SIG_HI)
)
{
/etc/group -> $(SEC_CRIT) ;
/etc/security -> $(SEC_CRIT) ;
}
这一段把 /etc/group 以及 /etc/security 这两个对象纳入 『Security Control』这一组,警戒程度为由 SIG_HI 这个变量定义, 值为 100(稍后会介绍)。而 tripwire 会监控 /etc/group 及 /etc/security 的哪些项目呢?则由 SEC_CRIT 这个变量来定义。
6. 从 twpol.txt 的前端往后浏览,可以找到如附图的这一段:
@@section FS
SEC_CRIT = $(IgnoreNone)-SHa ; # Critical files that cannot change
SEC_SUID = $(IgnoreNone)-SHa ; # Binaries with the SUID or SGID flags set
SEC_BIN = $(ReadOnly) ; # Binaries that should not change
SEC_CONFIG = $(Dynamic) ; # Config files that are changed infrequently but accessed often
SEC_LOG = $(Growing) ; # Files that grow, but that should never change ownership
SEC_INVARIANT = +tpug ; # Directories that should never change permission or ownership
SIG_LOW = 33 ; # Non-critical files that are of minimal security impact
SIG_MED = 66 ; # Non-critical files that are of significant security impact
SIG_HI = 100 ; # Critical files that are significant points of vulnerability
你可以发现 SIG_HI 的值就如上一点所提的,为 100。 而 tripwire 会监控 /etc/group 的哪些项目是由 SEC_CRIT 所定义; 在此处你发现 SEC_CRIT 等于『$(IgnoreNone)-SHa』,究竟是哪些项目?
要解开这个谜,必须先找出 IgnoreNone 的变量究竟定义为何。 但找遍 twpol.txt 还是解不开,原来 IgnoreNone 跟下面的 ReadOnly, Dynamic, Growing 等均为 tripwire 预先定义好的变量, 在 twpolicy 的 man page 中『Variables』一节内可以找到如附图的内容:
ReadOnly ReadOnly is good for files that are widely available but are intended to be read-only. Value: +pinugtsdbmCM-rlacSH
Dynamic Dynamic is good for monitoring user direc- tories and files that tend to be dynamic in behavior. value: +pinugtd-srlbamcCMSH
Growing The Growing variable is intended for files that should only get larger. Value: +pinugtdl-srbamcCMSH
Device Device is good for devices or other files that Tripwire should not attempt to open. Value: +pugsdr-intlbamcCMSH
IgnoreAll IgnoreAll tracks a file's presence or absence, but doesn't check any other prop- erties. Value: -pinugtsdrlbamcCMSH
IgnoreNone IgnoreNone turns on all properties and pro-vides a convenient starting point for defining your own property masks. (For example, mymask = $(IgnoreNone) -ar;) Value: +pinugtsdrbamcCMSH-l
从上面得知『IgnoreNone』的值为『+pinugtsdrbamcCMSH-l』, 其中『+』后所列的是要监控的项目,而『-』后所列的则为不监控的项目。那么『$(IgnoreNone)-SHa』呢?就是把 IgnoreNone 内原本列入监控的 SHa 项目改列为不监控。
你可以按照需求来修改这个文件。。
7. 接着在 在 /etc/tripwire 内执行 ./twinstall.sh。 执行过程中会要求你设定两个密码(pass phrase):
§ site pass phrase :加密 twpol.txt 及 twcfg.txt 时用。
§ local pass phrase:加密指纹数据库时用。
之后会再要你输入正确的 site pass phrase, 此时会对 twpol.txt 及 twcfg.txt 分别进行加密处理, 由原始文本文件产生 tw.pol 及 tw.cfg。过程如附图所示:[root@localhost tripwire]# ./twinstall.sh
----------------------------------------------
The Tripwire site and local passphrases are used to
sign a variety of files, such as the configuration,
policy, and database files.
Passphrases should be at least 8 characters in length
and contain both letters and numbers.
See the Tripwire manual for more information.
----------------------------------------------
Creating key files...
(When selecting a passphrase, keep in mind that good passphrases typically
have upper and lower case letters, digits and punctuation marks, and are
at least 8 characters in length.)
Enter the site keyfile passphrase:
Verify the site keyfile passphrase:
Generating key (this may take several minutes)...Key generation complete.
(When selecting a passphrase, keep in mind that good passphrases typically
have upper and lower case letters, digits and punctuation marks, and are
at least 8 characters in length.)
Enter the local keyfile passphrase:
Verify the local keyfile passphrase:
Generating key (this may take several minutes)...Key generation complete.
----------------------------------------------
Signing configuration file...
Please enter your site passphrase:
Wrote configuration file: /etc/tripwire/tw.cfg
A clear-text version of the Tripwire configuration file
/etc/tripwire/twcfg.txt
has been preserved for your inspection. It is recommended
that you delete this file manually after you have examined it.
----------------------------------------------
Signing policy file...
Please enter your site passphrase:
Wrote policy file: /etc/tripwire/tw.pol
A clear-text version of the Tripwire policy file
/etc/tripwire/twpol.txt
has been preserved for your inspection. This implements
a minimal policy, intended only to test essential
Tripwire functionality. You should edit the policy file
to describe your system, and then use twadmin to generate
a new signed copy of the Tripwire policy.
You have new mail in /var/spool/mail/root
在 twinstall.sh 执行完毕后,建议把 twpol.txt 及 twcfg.txt 这两个文本文件删除或移至别处。
8. 执行 tripwire -m i 来建立指纹数据库,它会要求你输入 local pass phase。
[root@localhost tripwire]# tripwire -m i
Please enter your local passphrase:
Parsing policy file: /etc/tripwire/tw.pol
Generating the database...
*** Processing Unix File System ***
### Warning: File system error.
### Filename: /proc/scsi
### No such file or directory
### Continuing...
### Warning: File system error.
### Filename: /usr/sbin/fixrmtab
### No such file or directory
### Continuing...
Wrote database file: /var/lib/tripwire/localhost.localdomain.twd
The database was successfully generated.
You have new mail in /var/spool/mail/root
9. 或许你怀疑 tripwire 真的能侦测出文件最细微的改变吗? 以下来做个实验,我们把 /etc/group 中第一行第二个字段的『x』改成『X』:
[root@localhost tripwire]#head –1 /etc/group
root:x:0:root
[root@localhost tripwire]#vi /etc/group
[root@localhost tripwire]#head –1 /etc/group
root:X:0:root
10. 接下来执行『tripwire -m c --interactive』进行检查,最后出现报告清单 (内定使用 vi),有:
§ 『Rule Summary』:列出所有组别的检查结果。
===============================================================================
Rule Summary:
===============================================================================
-------------------------------------------------------------------------------
Section: Unix File System
-------------------------------------------------------------------------------
Rule Name Severity Level Added Removed Modified
--------- -------------- ----- ------- --------
Invariant Directories 66 0 0 0
Temporary directories 33 0 0 0
* Tripwire Data Files 100 1 0 0
Critical devices 100 0 0 0
User binaries 66 0 0 0
Tripwire Binaries 100 0 0 0
Critical configuration files 100 0 0 0
Libraries 66 0 0 0
Operating System Utilities 100 0 0 0
Critical system boot files 100 0 0 0
File System and Disk Administraton Programs
100 0 0 0
Kernel Administration Programs 100 0 0 0
Networking Programs 100 0 0 0
System Administration Programs 100 0 0 0
Hardware and Device Control Programs
100 0 0 0
System Information Programs 100 0 0 0
Application Information Programs
100 0 0 0
Shell Related Programs 100 0 0 0
Critical Utility Sym-Links 100 0 0 0
Shell Binaries 100 0 0 0
System boot changes 100 0 0 0
OS executables and libraries 100 0 0 0
* Security Control 100 0 0 1
Login Scripts 100 0 0 0
Root config files 100 0 0 0
Total objects scanned: 15675
Total violations found: 2
有两组有异动,一为 tripwire 的资料文件(新增),另一为 『System Control』这一组(/etc/group 属于这一组!)。
『Object Summary』:列出有异动的对象清单。
===============================================================================
Object Summary:
===============================================================================
-------------------------------------------------------------------------------
# Section: Unix File System
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Rule Name: Tripwire Data Files (/var/lib/tripwire)
Severity Level: 100
-------------------------------------------------------------------------------
Remove the "x" from the adjacent box to prevent updating the database
with the new values for this object.
Added:
[x] "/var/lib/tripwire/localhost.localdomain.twd"
-------------------------------------------------------------------------------
Rule Name: Security Control (/etc/group)
Severity Level: 100
-------------------------------------------------------------------------------
Remove the "x" from the adjacent box to prevent updating the database
with the new values for this object.
Modified:
[x] "/etc/group"
===============================================================================
Object Detail:
===============================================================================
-------------------------------------------------------------------------------
Section: Unix File System
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Rule Name: Tripwire Data Files (/var/lib/tripwire)
/etc/group 被发现有异动了。如果要把指纹数据库内 /etc/group 的资料 更新为目前的状态,请保留 /etc/group 前方 [ ] 内的 x, 否则把它改为空格。
『Object Detail』:异动对象的详细信息,如哪些项目有异动等。===============================================================================
Object Summary:
===============================================================================
-------------------------------------------------------------------------------
# Section: Unix File System
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Rule Name: Tripwire Data Files (/var/lib/tripwire)
Severity Level: 100
-------------------------------------------------------------------------------
Remove the "x" from the adjacent box to prevent updating the database
with the new values for this object.
Added:
[x] "/var/lib/tripwire/localhost.localdomain.twd"
-------------------------------------------------------------------------------
Rule Name: Security Control (/etc/group)
Severity Level: 100
-------------------------------------------------------------------------------
Remove the "x" from the adjacent box to prevent updating the database
with the new values for this object.
Modified:[x] "/etc/group"
虽然仅仅是把 x 改成 X,但有四个项目受到影响。其中最重要的是 MD5 的值。一个文件的 MD5 值只要跟原先的值不一样,就可以断定文件的内容 已被修改过。
§ tripwire 每日均会自动执行检查,并寄 e-mail 给 root 告知结果。 你也应定期执行『tripwire -m c --interactive』来更新指纹数据库。
参考
- https://github.com/Tripwire/tripwire-open-source
- https://www-uxsup.csx.cam.ac.uk/
- https://www.howtoing.com/monitoring-and-detecting-modified-files-using-tripwire-on-centos-7
- https://www.xuebuyuan.com/2092694.html
在CentOS 7上使用Tripwire监控和检测修改的文件的更多相关文章
- 如何在CentOS 7上安装Munin
在CentOS 7上安装Munin 首先我们需要在我们的系统中添加EPEL仓库. yum install epel-release 步骤2.安装LAMP(Linux,Apache,MariaDB,PH ...
- CentOS下使用MyTop实时监控MySQL
CentOS下使用MyTop实时监控MySQL MyTop的项目页面为:http://jeremy.zawodny.com/mysql/mytop/ MyTop安装 $ yum -y install ...
- CentOS 7上的进程管理
一些杂乱的基础概念 程序是一种静态的文件,躺在磁盘上.而进程则是将程序运行起来放置于内存中.因此进程就是运行中的程序,是程序运行起来的一个实例.同一个程序可以运行为多个进程/实例. 进程之间有父子关系 ...
- asp.net中ashx生成验证码代码放在Linux(centos)主机上访问时无法显示问题
最近有个项目加入了验证码功能,就从自己博客以前的代码中找到直接使用,直接访问验证码页面报错如下: 源代码:asp.net中使用一般处理程序生成验证码 Application Exception Sys ...
- 在CentOS 7上安装.NET Core R2跑Hello World
前言 在上个月.NET Core出了最新版本预览版,只是在Window系统上试验了一下.原本想等发布正式版的时候在linux系统上试试,可能还需要一段时间,刚好有空可以折腾一下. 由于之前安装的Ubu ...
- Linux(Centos)系统上搭建SVN以及常见错误解答
本文主要介绍怎样在Centos上搭建SVN,文章内容比较基础,适合小白用户学习. 1.Linux版本Centos 6.5 查看linux版本命令: cat /etc/issue 2.查看本机上是否已经 ...
- 如何在CentOS 7上安装Percona服务器
在这篇文章中我们将了解关于 Percona 服务器,一个开源的MySQL,MariaDB的替代品.InnoDB的数据库引擎使得Percona 服务器非常有吸引力,如果你需要的高性能,高可靠性和高性价比 ...
- CentOS 6上安装xfce桌面环境
[日期:2012-01-30] 在新的CentOS 6上默认没有包含xfce的桌面环境,使用yum也找不到这些包,但是自己又喜欢这种简单的桌面环境,此时可以使用下面的方法来安装 [plain] $ ...
- 在CentOS 6上搭建私有的Docker Registry
在CentOS 6上搭建私有的Docker Registry v2Registry概念 :Registry是一个无状态的, 高可扩展的服务器端应用程序, 用于存储和分发Docker Image. 依赖 ...
随机推荐
- Yii2给数据库表添加字段后对应模型无法识别到该属性的原因和解决办法
Yii2给数据库表添加字段后对应模型无法识别到该属性的原因和解决办法 应为数据库表的结构被缓存了.删除runtime文件夹或者执行 //清理指定表结构缓存数据 Yii::$app->db-> ...
- BGP华为、思科选路规则
选路规则 华为BGP选路规则 思科BGP选路规则 第0条 下一跳是否可达,如果不可达则不参与选路 BGP 向IBGP对等体发布import引入的IGP路由时, 将下一跳属性改为自身的接口地址,而非IG ...
- 2.7 UML状态图
问题的引出 顺序图是对对象的动态行为进行建模,有多个对象的参与.协作 问题: 当需要考察单个实体的动态行为时, 用UML如何来建模呢? 什么是单个实体:一个软件系统?一个子系统?一个模块.一个构件? ...
- 20165309 实验一 Java开发环境的熟悉
20165309 实验一 Java开发环境的熟悉 一.实验内容及步骤 (一)命令行下Java程序开发 在Linux下用ctrl+alt+T打开终端,用mkdir创建文件夹后cd进入. 在vim下键入如 ...
- Apache commons(Java常用工具包)简介
Apache Commons是一个非常有用的工具包,解决各种实际的通用问题,下面是一个简述表,详细信息访问http://jakarta.apache.org/commons/index.html Be ...
- h5手机端禁止缩放问题
最近测试html5页面,发现默认都允许用户缩放页面,或者在屏幕双击放大或缩小.即相当于这样设置 <meta name="viewport" content="wid ...
- element中使用button会刷新一遍页面
会刷新: <el-form-item> <button @click="register('form')" class="submitBtn&qu ...
- ireport部署到Linux服务器上遇到的问题解决
ireport报表在本地Windows环境运行正常,一旦部署到Linux环境上出现了如下问题: 1.打开报表,后台直接报net.sf.jasperreports.engine.util.JRFontN ...
- PAT 1027 Colors in Mars
1027 Colors in Mars (20 分) People in Mars represent the colors in their computers in a similar way ...
- 本地仓库有jar包maven依然报错的原因
本地Maven仓库有所需jar包依然报错,missing……………… 既然有这个jar包为什么还会报错呢? 找到本地仓库后发现里面有一个_remote.repositories文件 问题在_remot ...