Linux系統(tǒng)會(huì)記錄用戶登陸系統(tǒng)后執(zhí)行過的命令;在一定情況下,可以幫助對(duì)系統(tǒng)的管理。
10年積累的網(wǎng)站制作、成都網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)制作后付款的網(wǎng)站建設(shè)流程,更有徽州免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
配置參數(shù):
HISTTIMEFORMAT = '%F %T ' #日期格式
HISTSIZE = 4000 #保留日志數(shù)量
HISTFILE = /var/history #存儲(chǔ)文件
缺點(diǎn):
1、默認(rèn)的記錄用戶命令服務(wù),沒有記錄命令執(zhí)行的時(shí)間。
2、沒有記錄用戶登陸的IP
3、同一個(gè)用戶的不同會(huì)話,記錄到同一個(gè)文件中;無法根據(jù)不同會(huì)話分別記錄。
優(yōu)化:
1、每次用戶登陸后,根據(jù)用戶賬號(hào)、登陸IP和登陸時(shí)間確定存儲(chǔ)文件名。這樣除非同一個(gè)用戶,同一個(gè)IP,同一時(shí)刻登陸服務(wù)器才會(huì)記錄到同一個(gè)文件中。
2、將上述設(shè)置,配置為用戶登陸后,自動(dòng)執(zhí)行
3、將日志寫入一個(gè)隱藏目錄中。
腳本內(nèi)容:
將腳本放在/etc/profile.d/history.sh中。
1.linux如何查看用戶所有的歷史操作記錄
1、使用w命令查看登錄用戶正在使用的進(jìn)程信息,w命令用于顯示已經(jīng)登錄系統(tǒng)的用戶的名稱,以及他們正在做的事。該命令所使用的信息來源于/var/run/utmp文件。w命令輸出的信息包括:用戶名稱
用戶的機(jī)器名稱或tty號(hào)
遠(yuǎn)程主機(jī)地址
用戶登錄系統(tǒng)的時(shí)間
空閑時(shí)間(作用不大)
附加到tty(終端)的進(jìn)程所用的時(shí)間(JCPU時(shí)間)
當(dāng)前進(jìn)程所用時(shí)間(PCPU時(shí)間)
用戶當(dāng)前正在使用的命令
$ w
23:04:27 up 29 days, 7:51, 3 users, load average: 0.04, 0.06, 0.02
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
ramesh pts/0 10.1.80.56 22:57 8.00s 0.05s 0.01s sshd: ramesh [priv]
jason pts/1 10.20.48 23:01 2:53 0.01s 0.01s -bash
john pts/2 10.1.80.7 23:04 0.00s 0.00s 0.00s w
此外,可以使用who am i查看使用該命令的用戶及進(jìn)程,使用who查看所有登錄用戶進(jìn)程信息,這些查看命令大同小異;
2. 在linux系統(tǒng)的環(huán)境下,不管是root用戶還是其它的用戶只有登陸系統(tǒng)后用進(jìn)入操作我們都可以通過命令history來查看歷史記錄, 可是假如一臺(tái)服務(wù)器多人登陸,一天因?yàn)槟橙苏`操作了刪除了重要的數(shù)據(jù)。這時(shí)候通過查看歷史記錄(命令:history)是沒有什么意義了(因?yàn)閔istory只針對(duì)登錄用戶下執(zhí)行有效,即使root用戶也無法得到其它用戶histotry歷史)。那有沒有什么辦法實(shí)現(xiàn)通過記錄登陸后的IP地址和某用戶名所操作的歷史記錄呢?答案:有的。
通過在/etc/profile里面加入以下代碼就可以實(shí)現(xiàn):
2.liunx 怎么查看用戶登錄 的歷史記錄
查看某用戶 cat /home/username/.bash_history 的操作歷史
使用root登陸使用last -x可查看用戶登陸歷史。
last 命令:
功能說明:列出目前與過去登入系統(tǒng)的用戶相關(guān)信息。
語 法:last [-adRx][-f ][-n ][帳號(hào)名稱…][終端機(jī)編號(hào)…]
補(bǔ)充說明:單獨(dú)執(zhí)行l(wèi)ast指令,它會(huì)讀取位于/var/log目錄下,
名稱為wtmp的文件,并把該給文件的內(nèi)容記錄的登入系統(tǒng)的用戶名單全部顯示出來。
參 數(shù):
-a 把從何處登入系統(tǒng)的主機(jī)名稱或IP地址,顯示在最后一行。
-d 將IP地址轉(zhuǎn)換成主機(jī)名稱。
-f 指定記錄文件。
-n 或- 設(shè)置列出名單的顯示列數(shù)。
-R 不顯示登入系統(tǒng)的主機(jī)名稱或IP地址。
-x 顯示系統(tǒng)關(guān)機(jī),重新開機(jī),以及執(zhí)行等級(jí)的改變等信息
3.linux查看歷史操作記錄
這個(gè)是某位高人寫的。希望對(duì)你有幫助。那有沒有什么辦法實(shí)現(xiàn)通過記錄登陸后的IP地址和某用戶名所操作的歷史記錄呢?答案:有的。
通過在/etc/profile里面加入以下代碼就可以實(shí)現(xiàn): #PS1=”`whoami`@`hostname`:”'[$PWD]'
#history
USER_IP=`who -u am i 2/dev/null| awk '{print $NF}'|sed -e 's/[]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
if [ ! -d /tmp/dbasky ]
then
mkdir /tmp/dbasky
chmod 777 /tmp/dbasky
fi
if [ ! -d /tmp/dbasky/${LOGNAME} ]
then
mkdir /tmp/dbasky/${LOGNAME}
chmod 300 /tmp/dbasky/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date +” %Y%m%d_%H%M%S”`
export HISTFILE=”/tmp/dbasky/${LOGNAME}/${USER_IP}.dbasky.$DT”
chmod 600 /tmp/dbasky/${LOGNAME}/*dbasky* 2/dev/null可以看到在使用history命令的時(shí)候是沒時(shí)間顯示,不知道這個(gè)命令是什么時(shí)候所執(zhí)行,這個(gè)時(shí)候可以編輯/etc/bashrc文件,加入如下三行:HISTFILESIZE=2000
HISTSIZE=2000
HISTTIMEFORMAT=”%Y%m%d-%H%M%S: ”
export HISTTIMEFORMAT保存后退出,關(guān)閉當(dāng)前shell,并重新登錄
這個(gè)時(shí)候,在~/.bash_History文件中,就有記錄命令執(zhí)行的時(shí)間了
用cat命令顯示這個(gè)文件,但是卻會(huì)看到這個(gè)時(shí)間不是年月日顯示的
1."linux查看歷史命令,為您提供linux查看歷史命令圖文信息,打開linux客戶端。
2.點(diǎn)擊連接linux按鈕。
3.輸入用戶名,主機(jī)ip地址。
4.輸入密碼。
5.顯示連接成功,就可以進(jìn)行操作。
6.輸入history命令,即可返回命令的歷史記錄。
很多情況下我們需要記錄用戶執(zhí)行過的命令,不管是root還是其他普通用戶,我們可以通過以下方式來記錄。
PROMPT_COMMAND會(huì)在命令執(zhí)行前執(zhí)行。
$(who am i |awk '{print \$2,\$5}') 會(huì)輸出登錄用戶用的tty和登錄服務(wù)器的遠(yuǎn)程電腦IP或者主機(jī)名。
$PWD 是內(nèi)建變量,顯示當(dāng)前執(zhí)行命令的工作目錄。
history 1 | { read x cmd; echo ${cmd}; 會(huì)輸出最后一條歷史命令中的執(zhí)行信息。
為了不讓用戶修改變量,使用 declare -rx 命令定義了只讀環(huán)境變量。這里要注意使用 readonly 命令也可以定義只讀變量,但是用戶用env命令看不到,只有用 export PROMPT_COMMAND 命令將變量設(shè)置為環(huán)境變量后才能看到。
變量加到 /etc/bashrc 是因?yàn)橛脩舻卿浐髸?huì)加載這里的配置,包括 sudo sudo su sudo su - su root su - root 。如果加到其他文件里則部分命令后就不會(huì)加載變量,自行嘗試。
修改rsyslog是可以自定義日志輸出的文件路徑和名字,用 logger -p 這個(gè)命令配合使用。
新增logrotate配置則是需要切割日志,防止單個(gè)日志文件太大,以及做好切割備份,方便查詢。
【一】
在 /etc/profile 最后添加如下行,則日志會(huì)直接輸出到 messages 日志里。
這種方式:不定義日志格式,直接將日志寫到messages日志文件里,和其他日志放一起,但是可以指定日志標(biāo)簽,方便檢索。
缺點(diǎn)是(1)會(huì)導(dǎo)致日志增大,并且用戶提權(quán)后因-t標(biāo)簽的存在,導(dǎo)致不會(huì)記錄提權(quán)前的用戶。(2)不能自定義日志路徑。
【二】
缺點(diǎn):用戶可以刪除日志文件。
因?yàn)槠胀ㄓ脩艉蛂oot都要往日志文件里寫,所以需要給普通用戶加一個(gè)附加組;并且如果日志文件不存在,普通用戶登錄后也需要新建,所以普通用戶必須有日志文件父目錄的寫權(quán)限。為了能讓所有普通用戶都可以寫,就給Command目錄加了SGID權(quán)限以及修改目錄屬組為audit。這樣普通用戶在這個(gè)目錄下創(chuàng)建的日志文件的屬組會(huì)自動(dòng)繼承Command目錄的屬組,也就是audit。 (umask 002 touch $HISTORY_FILE) 命令則是因?yàn)閞oot用戶生成的日志文件權(quán)限是644,屬組沒有寫權(quán)限。所以這里用 啟動(dòng)子shell并修改umask的方式生成日志文件。這樣就不會(huì)修改root默認(rèn)的 0022 的umask。
其他審計(jì)軟件:
免費(fèi)2個(gè)月