2015年10月20日 星期二

復原(覆蓋新的)ROOT密碼

Recovering the root password
忘記root密碼的解決方法
1.重開機
2.按任意鍵中斷boot loader倒數
3.將光標移動到需要進入的開機選項
4.按下e鍵編輯選擇的開機選項
5.移動光標至kernel 命令列 (開頭為 linux16 的那項)
6.按下end鍵將光標移至最後,在最後附加 rd.break 如下圖所示
步驟1-5、1-6.jpg
圖1.在命令列最後附加 rd.break
7.重新掛載 /sysroot 並給予讀寫權限
switch_root:/# mount -o remount,rw /sysroot
8.使用 chroot 指令將 /sysroot 更改為根目錄 (此為chroot jail)
switch_root:/# chroot /sysroot
9.使用 passwd 指令設置新root 密碼
sh-4.2# passwd root
10.確認所有沒有標記的檔案,在開機期間重新標記(因為在此情況下,SELinux 並沒有啟動,對所有檔案的變更,可能會造成檔案的 context 不正確,為確保開機時重新設定 SELinux context,必須在根目錄下產生隱藏檔 .autorelabel)
sh-4.2# touch /.autorelabel
11.執行exit 指令兩次

2015年9月14日 星期一

分析和儲存登錄檔

分析和儲存登錄檔
系統登錄檔
RHEL7主要由兩個服務進行處理系統記錄:systemd - journald and rsyslog
rsyslog依據嚴重性優先等級及功能種類分類,並且主要將記錄檔存在/var/log目錄底下


Overview of system log files
Log file
Purpose
/var/log/messages
大多數系統日誌消息記錄在這裡。唯一的例外是涉及到驗證和電子郵件處理,週期性運行以及除錯有關
/var/log/secure
安全性和認證相關的訊息和錯誤
/var/log/maillog
與郵件服務相關的訊息
/var/log/cron
與定期執行的任務相關的訊息
/var/log/boot.log
與系統啟動相關的訊息


登錄檔設定
Overview of syslog priorities
Code
Priority
Severity嚴重性
0
emerg
系統不可用,通常系統幾乎是當機的情況
1
alert
系統發生嚴重錯誤,必須立即採取行動
2
crit
發生比err還危急的錯誤訊息,通常這種狀況已經到達系統臨界點了
3
err
系統發生一些重大錯誤訊息,通常說明服務無法啟動的原因
4
warning
系統發生一些警告訊息,但還不影響服務運作的狀況
5
notice
系統正常,但發生一些需要注意的訊息事件
6
info
一般基本資訊說明的訊息事件
7
debug
用來除錯時產生的訊息資料


Overview of syslog facility (使用 man 3 syslog 查詢)
種類
說明
auth
主要與認證/授權有關的機制,例如 login, ssh, su 等需要帳號/密碼的東西
authpriv
與 auth 類似,但記錄較多帳號私人的資訊,包括 pam 模組的運作等等
cron
就是例行性工作排程 cron/at 等產生的訊息
daemon
主要是系統的服務所產生的資訊,例如 systemd 產生的訊息
ftp
與 FTP 通訊協定有關的訊息
kern
就是核心 (kernel) 產生的訊息,大部分都是硬體偵測以及核心功能的啟用
local0~local7
保留給本機用戶使用的一些登錄檔訊息,較常與終端機互動
lpr
列印相關的訊息
mail
與郵件收發有關的訊息
news
與新聞群組伺服器有關的訊息
syslog
就是由 syslog 相關協定產生的資訊,其實就是 rsyslogd 這支程式本身產生的訊息
user
在使用者層級所產生的資訊,例如後續會介紹到的用戶使用 logger 指令來記錄登錄檔的功能
uucp
全名為 Unix to Unix Copy Protocol,早期用於 unix 系統間的程序資料交換


rsyslogd 針對各種服務與訊息記錄的設定檔寫在/etc/rsyslog.conf
其格式如下:
服務名稱/種類[.=!]訊息嚴重等級       訊息記錄的位置或裝置或主機
# 底下以 mail 這個服務產生的 info 等級為例:                                   
mail.info                                          /var/log/maillog_info                                
連結符號
[.=!] 連結符號
代表意思
.
代表『比該等級 (含該等級本身) 還要嚴重的都被記錄下來』
例如: mail.info 代表只要是 mail 的資訊,而且該資訊等級比info (含 info 本身)嚴重時,就會被記錄下來的意思
.=
代表該等級的資訊都記錄下來, 其他的都不要記錄

.!
除了該等級不記錄,之外的其他等級都記錄
PS : none (不需登錄等級)


登錄檔輪替
祥見文章>登錄擋輪替


分析系統日誌項目
以/var/log/secure為例分析log項目
❶Feb 11 20:11:48   ❷localhost   ❸sshd[1433] :   ❹Failed password for student from 172.25.0.10 port 59344 ssh2
❶  產生的時間
❷  產生日誌的主機
❸  產生日誌的程式或程序
❹  日誌內容


使用tail指令監視一個日誌登錄檔
指令格式:tail -f  /路徑/檔名    -f 為即時監看(即時更新)
範例:
[root@localhost ~]# tail -f /var/log/secure
Sep 14 20:01:30 localhost gdm-password]: gkr-pam: unlocked login keyring
Sep 14 20:25:09 localhost gdm-password]: gkr-pam: unlocked login keyring
Sep 14 21:53:54 localhost gdm-password]: gkr-pam: unlocked login keyring


使用logger指令寫入一個登錄訊息
指令格式:logger -p 服務種類[.=!]嚴重等級  "訊息內容"
範例:
[root@localhost ~]# logger -p local7.notice "Log entry created on serverX"
#以下為測試結果
[root@localhost ~]# tail -f  /var/log/boot.log
        Starting RealtimeKit Scheduling Policy Service...
netcf-transaction.sh[691]: Running  start: No pending transaction to rollback
        Starting firstboot configuration program (graphical mode)...
        Starting LSB: Start the ipr init daemon...
        Starting D-Bus System Message Bus...
[  OK  ] Started D-Bus System Message Bus.
[  OK  ] Started Permit User Sessions.
[  OK  ] Started Rollback uncommitted netcf network config change transactions.
        Starting Command Scheduler...
Sep 15 00:17:24 localhost student: Log entry created on serverX


2015年8月13日 星期四

linux初學&存取使用命令列



Linux操作主要分為文字介面及圖形介面

Command-Line 文字介面:

常見的Shell:Shell、Bash、Zsh
快速切換鍵:Ctrl+Alt+F2~F6

Graphic 圖形介面:
常見的有KDE、GNOME
基於X-Window
快速切換鍵:Ctrl+Alt+F1 (5或6之前的舊版是Ctrl+Alt+F7)

Linux指令初學
[root@localhost Desktop]# echo $PS1
PS1是提示字元的環境參數

# <Command> <Option> <Arguments>
開頭符號(#,$):
# = 管理者(root)   ex:[root@localhost Desktop]# echo $PS1
$ = 使用者(user)   ex:[student@localhost Desktop]$ echo $PS1
Command:指令
Option:參數(作為功能調整)
Arguments:目標(引數)

不會操作的指令可以在指令後面下--help參數查詢
或者下man指令查詢指令詳細說明

今天使用到的指令簡述如下
Command
說明
ls
列印目錄清單
su
使用者身份切換
date
時間顯示、查詢、設定
clear
清除螢幕畫面
man
查詢指令詳細
exit
離開指令
echo
印出字串


以下未整理完
super=鍵盤上的Win鍵
連續下指令可以用分號;隔開指令
指令:
file
head 以及tail
wc

history
!Number
!
Esc+.


Shortcut
Description
Ctrl+a
跳至此行最前面
Ctrl+e
跳至此行最後面
Ctrl+u
清除一行中游標之前的所有文字
Ctrl+k
清除一行中游標之後的所有文字
Ctrl+Left Arrow
跳至此行中前一個word的前面
Ctrl+Right Arrow
跳至此行中下一個word的前面
Ctrl+r
搜尋過去的命令
以下補充:
Ctrl+l
清除畫面(等同clear指令)
Alt+f
跳至此行中下一個word的後面
Alt+b
跳至此行中前一個word的後面


date:20150813