有一个朋友的服务器发现有入侵的痕迹后来处理解决但是由于对方把日志都清理了无疑给排查工作增加了许多难度。刚好手里有些资料我就整理整理贴出来分享一下。其实日志的作用是非常大的。学会使用通过日志来排查解决我们工作中遇到的一些问题是很有必要的。

大纲

Linux日志系统简介

Linux日志分析

Linux日志入侵发现

实例分析

Linux日志系统简介

日志的主要用途是系统审计、监测追踪和分析统计。

为了保证 Linux 系统正常运行、准确解决遇到的各种各样的系统问题认真地读取日志文件是管理员的一项非常重要的任务。

UNIX/ Linux采用了syslog工具来实现此功能如果配置正确的话所有在主机上发生的事情都会被记录下来不管是好的还是坏的。

什么是 syslog

Linux 内核由很多子系统组成包括网络、文件访问、内存管理等。子系统需要给用户传送一些消息这些消息内容包括消息的来源及其重要性等。所有的子系统都要把消息送到一个可以维护的公用消息区于是就有了 syslog。

syslog 是一个综合的日志记录系统。它的主要功能是方便日志管理和分类存放日志。 syslog 使程序设计者从繁重的、机械的编写日志文件代码的工作中解脱出来使管理员更好地控制日志的记录过程。

syslog 能设置成根据输出信息的程序或重要程度将信息排序到不同的文件。例如由于核心信息更重要且需要有规律地阅读以确定问题出在哪里所以要把核心信息与其他信息分开来单独定向到一个分离的文件中。

管理员可以通过编辑 /etc/syslog.conf 来配置它们的行为。

syslogd的配置文件

syslogd 的配置文件 /etc/syslog.conf 规定了系统中需要监视的事件和相应的日志的保存位置。

# Log all kernel messages to the console.

# Logging much else clutters up the screen.

#kern.* /dev/console

# 将 info 或更高级别的消息送到 /var/log/messages

# 除了 mail/news/authpriv/cron 以外。

# 其中*是通配符代表任何设备none 表示不对任何级别的信息进行记录。

*.info;mail.none;news.none;authpriv.none;cron.none /var/log/messages

# 将 authpirv 设备的任何级别的信息记录到 /var/log/secure 文件中

# 这主要是一些和认证、权限使用相关的信息。

authpriv.* /var/log/secure

# 将 mail 设备中的任何级别的信息记录到 /var/log/maillog 文件中这主要是和电子邮件相关的信息。

mail.* -/var/log/maillog

# 将 cron 设备中的任何级别的信息记录到 /var/log/cron 文件中

# 这主要是和系统中定期执行的任务相关的信息。

cron.* /var/log/cron

# 将任何设备的 emerg 级别或更高级别的消息发送给所有正在系统上的用户。

*.emerg *

# 将 uucp 和 news 设备的 crit 级别或更高级别的消息记录到 /var/log/spooler 文件中。

uucp,news.crit /var/log/spooler

# 将和本地系统启动相关的信息记录到 /var/log/boot.log 文件中。

local7.* /var/log/boot.log

# 将 news 设备的 crit 级别的消息记录到 /var/log/news/news.crit 文件中。

news.=crit /var/log/news/news.crit

# 将 news 设备的 err 级别的消息记录到 /var/log/news/news.err 文件中。

news.=err /var/log/news/news.err

# 将 news 设备的 notice 或更高级别的消息记录到 /var/log/news/news.notice 文件中。

news.notice

syslogd配置设备级别动作

级别字段

动作字段

常见的日志文件

日志系统主要分为三类

系统接入日志:

多个程序会记录该日志记录到/var/log/wtmp和/var/run/utmp文件中telnet、ssh等程序会更新wtmp和utmp文件系统管理员可以根据该日志跟踪到谁在何时登录到系统。

进程统计日志:

linux内核记录该日志当一个进程终止时进程统计文件pacct或acct中会进行记录。进程统计日志可以供系统管理员分析系统使用者对系统进行的配置以及对文件进行的操作。

错误日志:

Syslog日志系统已经被许多设备兼容Linux的syslog可以记录系统事件主要由syslogd程序执行Linux系统下各种进程、用户程序和内核都可以通过Syslog文件记录重要信息错误日志记录在/var/log/messages中。有许多Linux/Unix程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。

常用的日志文件解析

/var/log/boot.log

该文件记录了系统在引导过程中发生的事件就是Linux系统开机自检过程显示的信息。

/var/log/cron

该日志文件记录crontab守护进程crond所派生的子进程的动作前面加上用户、登录时间和PID以及派生出的进程的动作。CMD的一个动作是cron派生出一个调度进程的常见情况。REPLACE替换动作记录用户对它的cron文件的更新该文件列出了要周期性执行的任务调度。 RELOAD动作在REPLACE动作后不久发生这意味着cron注意到一个用户的cron文件被更新而cron需要把它重新装入内存。该文件可能会查到一些反常的情况。

/var/log/maillog

该日志文件记录了每一个发送到系统或从系统发出的电子邮件的活动。它可以用来查看用户使用哪个系统发送工具或把数据发送到哪个系统。

QUOTE:

Sep 4 17:23:52 UNIX sendmail[1950]: g849Npp01950: from=root, size=25,

class=0, nrcpts=1,

msgid=<200209040923.g849Npp01950@redhat.pfcc.com.cn>, relay=root@localhost

Sep 4 17:23:55 UNIX sendmail[1950]: g849Npp01950: to=lzy@fcceec.net,

ctladdr=root (0/0), delay=00:00:04, xdelay=00:00:03, mailer=esmtp, pri=30025,

relay=fcceec.net. [10.152.8.2], dsn=2.0.0, stat=Sent (Message queued)

/var/log/messages

该日志文件是许多进程日志文件的汇总从该文件可以看出任何入侵企图或成功的入侵。如以下几行

QUOTE:

Sep 3 08:30:17 UNIX login[1275]: FAILED LOGIN 2 FROM (null) FOR suying,

Authentication failure

Sep 4 17:40:28 UNIX -- suying[2017]: LOGINON pts/1 BY suying FROM

fcceec.www.ec8.pfcc.com.cn

Sep 4 17:40:39 UNIX su(pam_unix)[2048]: session opened for user root by suying(uid=999)

/var/log/syslog

默认RedHat Linux不生成该日志文件但可以配置/etc/syslog.conf让系统生成该日志文件。它和/etc/log/messages日志文件不同它只记录警告信息常常是系统出问题的信息所以更应该关注该文件。要让系统生成该日志文件在/etc/syslog.conf文件中加上*.warning /var/log/syslog

该日志文件能记录当用户登录时login记录下的错误口令、Sendmail的问题、su命令执行失败等信息。下面是一条记录

QUOTE:

Sep 6 16:47:52 UNIX login(pam_unix)[2384]: check pass; user unknown

/var/log/secure

该日志文件记录与安全相关的信息。该日志文件的部分内容如下

QUOTE:

Sep 4 16:05:09 UNIX xinetd[711]: START: ftp pid=1815 from=127.0.0.1

Sep 4 16:05:09 UNIX xinetd[1815]: USERID: ftp OTHER :root

Sep 4 16:07:24 UNIX xinetd[711]: EXIT: ftp pid=1815 duration=135(sec)

Sep 4 16:10:05 UNIX xinetd[711]: START: ftp pid=1846 from=127.0.0.1

Sep 4 16:10:05 UNIX xinetd[1846]: USERID: ftp OTHER :root

Sep 4 16:16:26 UNIX xinetd[711]: EXIT: ftp pid=1846 duration=381(sec)

Sep 4 17:40:20 UNIX xinetd[711]: START: telnet pid=2016 from=10.152.8.2

/var/log/lastlog

该日志文件记录最近成功登录的事件和最后一次不成功的登录事件由login生成。在每次用户登录时被查询该文件是二进制文件需要使用 lastlog命令查看根据UID排序显示登录名、端口号和上次登录时间。如果某用户从来没有登录过就显示为"**Never logged in**"。该命令只能以root权限执行。简单地输入lastlog命令后就会看到类似如下的信息

QUOTE:

UsernamePort From Latest

root tty2 Tue Sep 3 08:32:27 +0800 2002

bin **Never logged in**

daemon **Never logged in**

adm **Never logged in**

lp **Never logged in**

系统账户诸如bin、daemon、adm、uucp、mail等决不应该登录如果发现这些账户已经登录就说明系统可能已经被入侵了。若发现记录的时间不是用户上次登录的时间则说明该用户的账户已经泄密了。

/var/log/wtmp

该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加该文件的大小也会越来越大增加的速度取决于系统用户登录的次数。该日志文件可以用来查看用户的登录记录last命令就通过访问这个文件获得这些信息并以反序从后向前显示用户的登录记录last也能根据用户、终端 tty或时间显示相应的记录。

命令last有两个可选参数

last -u 用户名显示用户上次登录的情况。

last -t 天数显示指定天数之前的用户登录情况。

/var/run/utmp

该日志文件记录有关当前登录的每个用户的信息。因此这个文件会随着用户登录和注销系统而不断变化它只保留当时联机的用户记录不会为用户保留永久的记录。系统中需要查询当前用户状态的程序如 who、w、users、finger等就需要访问这个文件。该日志文件并不能包括所有精确的信息因为某些突发错误会终止用户登录会话而系统没有及时更新 utmp记录因此该日志文件的记录不是百分之百值得信赖的。

以上提及的3个文件/var/log/wtmp、/var/run/utmp、/var/log/lastlog是日志子系统的关键文件都记录了用户登录的情况。这些文件的所有记录都包含了时间戳。这些文件是按二进制保存的故不能用less、cat之类的命令直接查看这些文件而是需要使用相关命令通过这些文件而查看。

每次有一个用户登录时login程序在文件lastlog中查看用户的UID。如果存在则把用户上次登录、注销时间和主机名写到标准输出中然后 login程序在lastlog中记录新的登录时间打开utmp文件并插入用户的utmp记录。该记录一直用到用户登录退出时删除。utmp文件被各种命令使用包括who、w、users和finger。

下一步login程序打开文件wtmp附加用户的utmp记录。当用户登录退出时具有更新时间戳的同一utmp记录附加到文件中。wtmp文件被程序last使用。

/var/log/xferlog

该日志文件记录FTP会话可以显示出用户向FTP服务器或从服务器拷贝了什么文件。该文件会显示用户拷贝到服务器上的用来入侵服务器的恶意程序以及该用户拷贝了哪些文件供他使用。

该文件的格式为第一个域是日期和时间第二个域是下载文件所花费的秒数、远程系统名称、文件大小、本地路径名、传输类型aASCIIb二进制、与压缩相关的标志或tar或"_"如果没有压缩的话、传输方向相对于服务器而言i代表进o代表出、访问模式a匿名g输入口令r真实用户、用户名、服务名通常是ftp、认证方法lRFC931或0认证用户的ID或"*"。下面是该文件的一条记录

QUOTE:

Wed Sep 4 08:14:03 2002 1 UNIX 275531

/var/ftp/lib/libnss_files-2.2.2.so b _ o a -root@UNIX ftp 0 * c

/var/log/Xfree86.x.log

该日志文件记录了X-Window启动的情况。

另外除了/var/log/外恶意用户也可能在别的地方留下痕迹应该注意以下几个地方root 和其他账户的shell历史文件用户的各种邮箱如.sent、mbox以及存放在/var/spool/mail/ 和/var/spool/mqueue中的邮箱临时文件/tmp、/usr/tmp、/var/tmp隐藏的目录其他恶意用户创建的文件通常是以 "."开头的具有隐藏属性的文件等。

/var/log/kernlog

RedHat Linux默认没有记录该日志文件。要启用该日志文件必须在/etc/syslog.conf文件中添加一行kern.* /var/log/kernlog 。这样就启用了向/var/log/kernlog文件中记录所有内核消息的功能。该文件记录了系统启动时加载设备或使用设备的情况。一般是正常的操作但如果记录了没有授权的用户进行的这些操作就要注意因为有可能这就是恶意用户的行为。下面是该文件的部分内容

QUOTE:

Sep 5 09:38:42 UNIX kernel: NET4: Linux TCP/IP 1.0 for NET4.0

Sep 5 09:38:42 UNIX kernel: IP Protocols: ICMP, UDP, TCP, IGMP

Sep 5 09:38:42 UNIX kernel: IP: routing cache hash table of 512 buckets, 4Kbytes

查看日志文件

绝大多数日志文件是纯文本文件每一行就是一个消息。只要是在Linux下能够处理纯文本的工具都能用来查看日志文件。可以使用 cat、tac、more、less、tail 和 grep 进行查看。

日志文件的格式

下面以 /var/log/messages 为例说明其日志文件的格式。该文件中每一行表示一个消息而且都由四个域的固定格式组成

时间标签(Timestamp)表示消息发出的日期和时间。

主机名(Hostname)表示生成消息的计算机的名字。

生成消息的子系统的名字可以是“Kernel”表示消息来自内核或者是进程的名字表示发出消息的程序的名字。在方括号里的是进程的PID。

消息(Message)即消息的内容。

# syslog 发出的消息说明了守护进程已经在 Dec 1603:32:41 重新启动了。

Dec 16 03:32:41 cnetos5 syslogd 1.4.1: restart.

# 在 Dec 1900:20:56 启动了内核日志 klogd

Dec 19 00:20:56 cnetos5 kernel: klogd 1.4.1, log source = /proc/kmsg started.

# 在 Dec 1900:21:01 启动了xinetd

Dec 19 00:21:01 cnetos5 xinetd[2418]: xinetd Version 2.3.14 started with libwrap

loadavg labeled-networking options compiled in.

实际上在 /var/log/message 文件中的消息都不是特别重要或紧急的

查看非文本格式日志文件

一些日志文件是二进制文件需要使用相应的命令进行读取

lastlog

使用 lastlog 命令来检查某特定用户上次登录的时间并格式化输出上次登录日志 /var/log/lastlog 的内容。例如

Linux系统中记录用户登入登出情况的文件是wtmp文件记录当前登录用户情况的文件是utmp文件它们是Linux系统安全的重要文件。这两个文件中所有的日志都记录了准确的时间。

Utmp以及wtmp文件都是二进制文件不能通过tailcatvi或者重定向进行编辑。系统管理员需要通过命令获取这两个文件中包含的信息其中utmp文件中包含的信息可以通过who、w、users和finger获取 wtmp文件中包含的信息可以通过last和ac获取。

last

last 命令往回搜索 /var/log/wtmp 来显示自从文件第一次创建以来登录过的用户

lastb

lastb 命令搜索 /var/log/btmp 来显示登录未成功的信息。例如

who

who 命令查询 wtmp 文件并报告当前登录的每个用户。who 命令的缺省输出包括用户名、终端类型、登录日期及远程主机。例如

who

通过该命令系统管理员可以发现当前系统存在哪些不法用户找到非法使用用户后可以通过多种手段限制该用户或者该登录IP继续使用服务器。

在指明wtmp情况下通过who命令可以查询到所有以前的记录。下面是命令who /var/log/wtmp的运行结果显示了自从wtmp文件创建、删改以来的每一次登录。

[root@ntbak ~]# who /var/log/wtmp

ntbackup pts/0 2011-06-03 14:18 (10.35.8.242)

root pts/3 2011-06-03 15:24 (10.35.117.80)

root pts/3 2011-06-03 15:48 (10.35.117.80)

ntbackup pts/0 2011-06-03 17:15 (10.35.8.242)

ntbackup pts/0 2011-06-07 10:15 (10.35.117.73)

ntbackup pts/3 2011-06-07 10:26 (10.35.117.73)

ntbackup pts/0 2011-06-07 10:45 (10.35.117.73)

ntbackup pts/4 2011-06-07 12:43 (10.35.117.73)

ntbackup pts/5 2011-06-07 13:41 (10.35.117.73)

ntbackup pts/0 2011-06-07 15:41 (10.35.117.73)

root pts/0 2011-06-07 21:12 (10.32.171.146)

ntbackup pts/0 2011-06-08 10:39 (10.35.117.73)

ntbackup pts/0 2011-06-09 19:43 (10.35.117.73)

ntbackup pts/0 2011-06-10 08:24 (10.35.117.73)

ntbackup pts/3 2011-06-10 08:34 (10.35.117.73)

ntbackup pts/4 2011-06-10 10:25 (10.35.117.73)

ntbackup pts/0 2011-06-10 12:34 (10.35.117.73)

ntbackup pts/0 2011-06-13 08:34 (10.35.117.73)

root pts/0 2011-06-13 15:42 (flashieldsdell.nt.jsNaNcc)

root pts/0 2011-06-14 14:44 (10.35.117.80)

root pts/0 2011-06-14 19:06 (10.35.117.80)

用于入侵检测日志

需要检查的系统日志文件主要包括一般信息日志、网络连接日志、文件传输日志以及用户登录日志等。在检查这些日志时要特别注意时间记载分析日志产生的时间是否合理。

可疑的日志记录

非正常时间凌晨的用户登录;

关键日志记录损坏尤其是记录用户登录登出信息的wtmp文件;

非正常IP的用户登录;

用户登录失败甚至一再尝试登录并失败的日志记录;

非正常的超级用户权限切换su指令;

非正常的控制进程启动或重启记录。

检查步骤

users命令在一行打印出当前登录的用户信息每个用户名代表对应一个登录会话。结合who命令以及进程统计日志可以分析黑客伪造这两个命令的情况。运行该命令将如下所示:

root@ntbak ~]# users

root root root

[root@ntbak ~]# who

root tty1 2011-03-21 16:59

root pts/0 2011-06-14 19:06 (10.35.117.80)

root pts/2 2011-03-13 14:21 (:1.0)

last命令与who /var/log/wtmp命令输出结果相似。通过使用以及对比着两个输出系统管理员可以对使用系统的用户进行审计和考核及时发现问题解决问题。运行该命令如下所示:

[root@ntbak ~]# last

root pts/0 10.35.117.80 Tue Jun 14 19:06 still logged in

root pts/0 flashieldsdell.n Mon Jun 13 15:42 - 19:21 (03:38)

ntbackup pts/0 10.35.117.73 Mon Jun 13 08:34 - 09:11 (00:37) ……

ntbackup pts/0 10.35.8.242 Fri Jun 3 14:18 - 16:29 (02:11)

如果使用上述命令显示的信息太多比较难区分可以通过grep命令或者对last命令指明用户来显示其登录信息即可。例如: 只显示root的历史登录信息则如下所示:

[root@ntbak ~]# last root

root pts/0 10.35.117.80 Tue Jun 14 19:06 still logged in

root pts/0 10.35.117.80 Tue Jun 14 14:44 - 16:58 (02:14)

root pts/0 flashieldsdell.n Mon Jun 13 15:42 - 19:21 (03:38)

root pts/0 10.32.171.146 Tue Jun 7 21:12 - 23:24 (02:11)

root pts/3 10.35.117.80 Fri Jun 3 15:48 - 18:04 (02:16)

root pts/3 10.35.117.80 Fri Jun 3 15:24 - 15:24 (00:00)

ac命令根据系统的wtmp文件中的登入登出信息生成用户连接时间单位小时的报告如下所示

[root@ntbak ~]# ac –d

//ac -d命令,然后按回车键,将显示每天的总的连接时间

Jun 3 total 6.68

Jun 7 total 18.89

Jun 8 total 9.92

Jun 9 total 11.00

Jun 10 total 9.28

Jun 13 total 4.26

Today total 2.84

[root@ntbak ~]# ac –p

//ac -p命令,然后按回车键,将显示每个用户的总的连接时间

ntbackup 51.92

root 10.95

total 62.87

lastlog命令通过格式化输出上次登录日志/var/log/lastlog的内容可以显示用户上次登录的时间。它可以显示登录用户名、登录使用方式tty/pts和上次登录时间。如果一个用户从未登录过则显示“**Never logged**”。。运行该命令如下所示:

[root@working]# lastlog

UsernamePort From Latest

root pts/1 10.0.2.129 二 5月 10 10:13:26 +0800 2005

opal pts/1 10.0.2.129 二 5月 10 10:13:26 +0800 2005

Linux入侵案列分析

ps一下发现有几个异常的程序如下图一所示有一个sendmail程序还有一个异常的SCREEN程序。

用netstat –an看一下发现比较奇怪的端口1985还有一个/dev/gpmctl的数据流以前是没有过的

来到/var/log目录下看一下secure日志

从10月9号上午11:01:22开始一直到10月10号的凌晨03:37:33期间不断有用户对机器进行ssh的野蛮滥用而且从日志中可以看到进行弱口令账号测试的不是一台机器而是来自几台不同的机器

140.123.230.*(台湾) 211.173.47.* (韩国) 164.164.149.* (印度) 210.118.26.* 韩国 217.199.173.* 英国 218.5.117.* 福建泉州 211.90.95.* 江苏联通

用last日志看一下过去的登陆记录如下图四显示可以看出从域名floman2.mediasat登陆用nslookup查询竟然找不到这个域名。

再看看wtmp日志用who wtmp看到如下图五的日志这里显示的域名是floman2.mediasat.ro用nslookup可以查到域名服务器是位于罗马尼亚dns服务器ip为193.231.170.*。

我们来定位一下在图一中发现的sendmail程序的来源发现sendmail是位于/etc/log.d/scripts/service目录下应该就是sendmail脚本就用来转发所谓的垃圾邮件。只需将这些脚本删除就可以解决发送垃圾邮件的问题。但是服务器中有其它异常的进程被别人hacking了这个解决起来就困难多了。

再来定位一下图一中异常的screen程序用命令 Locate screen来定位输出如下图所示看来有很多文件要查啊。从图中可以看出“.screen”以.开始的目录这应该是一个隐藏的目录。

来到/home/upload目录用ls命令看不到果真是隐藏了。隐藏也没有关系可以直接进入.screen目录。

用ls la 发现有很多为0字节的文件如下图十二所示类型以p开头的这是管道文件管道是linux下的一个重要概念传统的文件是把一个程序的输出经过暂存文件转换成另一个程序的输入而管道的作用是把一个程序的输出接到另一个程序的输入而不经过任何中间文件。管道的特性也决定了我们不能够看到这里文件的内容。

进入到/home/upload中的文件名为空的隐藏目录发现其中有2个子目录如下图十所示。

进入到scan目录里面的内容如下图十一所示其中go.sh和s是脚本

目录scan里的程序实现对局域网内开放某个端口的机器扫描并保存扫描结果目录mech里是一个bot程序当运行里面的bash程序时会自动连接到IRC聊天室。

在启动文件中我们发现一个异常的程序

本来以为删除了启动脚本中的异常程序以及upload中的隐藏文件夹’‘和’.screen’和/etc/log.d这个目录就行了后来在检查日志messages的时候发现一个异常如下图。

发现一个uid0的bone用户uid0不是管理员用户吗我们到/etc/passwd中发现果真是存在一个root用户bone,如图十五所示说明入侵者已经取得了系统的最高权限。将其删除。

因为机器中存在sendmail的脚本故有邮件存在目录为/var/spool/mail经查看发现存在如下的几个文件都是为空。删除这个目录Rm –rf mail注意到/etc/passwd存在一个mail用户将这个删除。

通过调查分析和日志取证找出异常程序和入侵帐户。从我们后面的分析日志中分析得出系统被入侵的原因是因为存在一个存在密码为passwd的弱口令帐号入侵者通过探测到这个弱口令帐户远程登陆到系统并且利用一些方法提高了权限最后得到了管理员root权限。

其实在服务器部署完后安全工作我们也要做的非常到位,避免留过多的隐患给有坏心眼的人。之前我有发表过一遍安全部署方面的帖子,链接是:http://ks0101.blog.51cto.com/8639108/1365721有兴趣可以看看,会起到很大作用的。

深度解析Linux通过日志反查入侵的更多相关文章

  1. CentOS通过日志反查入侵(转)

    1.查看日志文件 Linux查看/var/log/wtmp文件查看可疑IP登陆 last -f /var/log/wtmp  该日志文件永久记录每个用户登录.注销及系统的启动.停机的事件.因此随着系统 ...

  2. CentOS通过日志反查入侵

    使用 last -f /var/log/wtmp 来查看可疑ip登录 查看/var/log/secure保存的系统信息 来确定可以ip登录

  3. 【Linux】端口反查进程

    平时时常遇到端口占用的情况,又不知道端口是哪个服务启的. 本文以80端口为例. [root@localhost jenkins]# netstat -tunlp | grep 80 tcp6 0 0 ...

  4. linux ssh使用深度解析(key登录详解)

    linux ssh使用深度解析(key登录详解) SSH全称Secure SHell,顾名思义就是非常安全的shell的意思,SSH协议是IETF(Internet Engineering Task ...

  5. linux log日志解析

    linux log日志解析   其实,可以说成是监控系统的记录,系统一举一动基本会记录下来.这样由于信息非常全面很重要,通常只有 root 可以进行视察!通过登录文件(日志文件)可以根据屏幕上面的错误 ...

  6. Entity Framework DBContext 增删改查深度解析

    Entity Framework DBContext 增删改查深度解析 有一段时间没有更新博客了,赶上今天外面下雨,而且没人约球,打算把最近对Entity Framework DBContext使用的 ...

  7. Django中URL的解析和反查

    add by zhj: 如果想用reverse(namespace1:namespace2:...:namespaceN:name)反查url(注意:用reverse('polls:index')方法 ...

  8. Linux常用命令速查

    索引表格 命令 功能简述 目录与文件基本操作 pwd 显示当前目录 ls 列出目录和文件名称 cp 复制文件或目录 mv 移动或更名现有的文件或目录 rm 删除文件或目录 mkdir 新建目录 rmd ...

  9. Linux检查服务器是否被入侵

    Linux检查服务器是否被入侵 检查root用户是否被纂改 awk -F: '$3==0{print $1}' /etc/passwd awk -F: '$3==0 {print}' /etc/pas ...

随机推荐

  1. asp.net linq查询环境搭建

    本文是以sqlserver2008为数据库,vs2013为开发工具来介绍的. 要搭建这样一个数据库的操作环境,首先建立一个类库项目 然后在这个类库项目中添加几个类:DBDataContext数据库上下 ...

  2. UILabel头文件常见属性

    text : default is nil 文本属性,默认值是 nil @property(nullable, nonatomic,copy) NSString *text; font : defau ...

  3. iOS开发--系统通讯录的访问与添加联系人

    公司项目有访问通讯录的需求,所以开始了探索之路.从开始的一无所知,到知识的渐渐清晰.这一切要感谢广大无私分享的 “coder”,注:我是尊称的语气! 苹果提供了访问系统通讯录的框架,以便开发者对系统通 ...

  4. 学习ios设计(1)

    两年前,苹果为现代的使用者完全改变了设计语言.对于设计者来说,这使得他们更容易关注动画和功能而不是其他的细枝末节. 我已经被问过很多次怎样开始设计或者是有什么捷径可以成为更好的设计师.虽然没有银弹,然 ...

  5. 利用SQL语句产生分组序号

    partition  by关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partition  by用于给结果集分组,如果没 ...

  6. [string]Roman to Integer,Integer to Roman

    一.Roman to Integer Given a roman numeral, convert it to an integer. Input is guaranteed to be within ...

  7. Python的基础--对象

    对象(Objects)是python中数据的抽象,python中所有的数据均可以用对象或者是对象之间的关系来表示.每个对象均有标识符(identity).类型(type).值(value). 标识符. ...

  8. PCL学习笔记(一)

    由于项目需要,开始学习一下HP公司的PCL打印语言,发现这方面的中文资料非常少,我做下记录也为后人提供便利. 关于PCL的介绍可以参考wiki百科 http://zh.wikipedia.org/zh ...

  9. lua学习笔记(2)-常用调用

    assert(loadstring("math.max(7,8,9)"))dofile("scripts/xxx.lua")math.floor()math.r ...

  10. Delphi中的消息截获(六种方法:Hook,SubClass,Override WndProc,Message Handler,RTTI,Form1.WindowProc:=@myfun)good

    Windows是一个基于消息驱动的系统,因此,在很多时候,我们需要截获一些消息然后自己进行处理.而VCL系统又有一些特定的消息.下面对我所了解的delphi环境中截获消息进行一些总结.      就个 ...