設置開機自啟的腳本,用戶管理
作者:George
歸檔:學習筆記
2018/1/5
本章正題:用戶管理
1.1 企業面試題
1.1.1 讓一個命令或腳本開機自啟動有什麽方法?
1)/etc/rc.local
2)chkconfig
1.1.2 一個腳本或命令通過chkconfig開啟自啟動
1. 把這個腳本放在/etc/init.d下面
vim /etc/init.d/kai
echo "georgekai"
2. 腳本要有執行權限
chmod +x /etc/init.d/kai
查看:ll /etc/init.d/kai
3. 讓chkconfig進行管理
chkconfig --add kai
註:會提示 service kai does not support chkconfig (
解決方法:1. 模仿其他命令腳本,需要加入“# chkconfig: 2345 99 99” ,註意#號後面有空格
2. 第一個99表示開機的順序,最後一個99表示關機的順序
4. 自己寫的腳本都是99也沒什麽問題,系統都不一樣
小結:
1. 必須放在/etc/init.d下面,賦予它執行權限
2. 開頭要有chkconfig要求格式:# chkconfig: 2345 99 99
3. 添加到chkconfig管理
1.2 用戶管理
1.2.1 用戶分類
1. root UID :0
2. 虛擬用戶 UID :1-499 1) shell是/sbin/nologin
2)不能登錄系統
3. 普通用戶 UID :500-65535
註:1)UID user id = 500-60000 ×××號碼
2)GID =groupd id =用戶組的id
1.2.2 用戶相關的配置文件
1. /etc/passwd 用戶的信息
註:每一列的含義要知道,/bin/bash = /bin/sh
cat /etc/shells下有許多shell,dash是ubuntu默認shell
2. /etc/shadow 用戶密碼信息
3. /etc/group 用戶組信息
4. /etc/gshadow 用戶組密碼信息
實例1-1 root用戶密碼忘記如何解決?
1. 單用戶模式
2. 救援模式
1.2.3 查看用戶屬於哪個用戶組
id george
1.2.4 查看用戶組中有哪些用戶
cat /etc/group
1.2.5 與用戶相關的目錄/etc/skel
1. /etc/skel作用:新用戶家目錄的模板(相當於cp /etc/skel /home/oldboy)
1)~/.base_logout :用戶退出系統的時候會運行這個文件中的內容
2)~/.base_profile :作用和/etc/profile一樣
3)~/.base_baserc :作用和/etc/basere一樣
2. 常見故障一::-bse-4.1$ -bse-4.2$
原因:這個用戶家目錄下面與環境變量有關的文件沒了
解決方法:1. 切換到故障用戶
2. cp /etc/skel/.bash* /home/geogred/
註:別用.* 復制,因為包含.. ,表示上級目錄
常見故障二:-bash: /etc/profile: Permission denied
原因:/etc/目錄的權限不是755,導致權限不足
解決方法:chmod 755 /etc/
常見故障三:-bash: unset: -p: invalid option
unset: usage: unset [-f] [-v] [name ...]
原因:/etc/profile中 unset -fpathmunge -f後面少了一個空格
解決方法:1. vim /etc/profile 修改最後一行為unset -f pathmunge
1.2.6 用戶管理的命令
1. 創建用戶useradd
參數:-u 指定uid
-s 指定用戶使用的shell
-M 表示不創建家目錄,一般創建虛擬用戶使用
-g 指定用戶的屬組
-G 指定用戶的附加組,用逗號隔開
-c 添加用戶說明信息
例1:[root@georgekai ~]# useradd -u 888 -M -s /bin/nologin alex1
2. 刪除用戶
建議使用:在/etc/passwd中用戶的那一行前面加上#註釋
【刪除用戶用userdel(默認會刪除家目錄的文件,不建議使用)】
參數:-r (連窩端)會刪除家目錄
3. 修改用戶信息(針對已存在的用戶)usermod
參數: -u 修改uid
-s 修改用戶使用的shell
-g 修改用戶的屬組
-c 修改用戶說明信息
-G 添加用戶的附加組,用逗號隔開
例1:[root@georgekai ~]# usermod -c "hello oldbaby" -s /bin/bash alex
[root@georgekai ~]# tail -1 /etc/passwd
alex:x:888:999:hello oldbaby:/home/alex:/bin/bash
4. 管理密碼passwd
1)非交互式設置密碼(不需要一問一答)
echo '123456'|passwd --stdin george
註:history -c 清楚命令歷史記錄
2)交互式
passwd george
3)密碼保險櫃:
keepass(本地保險櫃) lastpass(在線保險櫃)
4) 如何讓系統更安全
1.最小化安裝系統
2.禁止root登錄,修改ssh端口號
3.文件系統權限 +i +a
4.給重要文件或命令做一個指紋md5sum(指定隨著文件內容改變)
1)創建指紋
touch oldboy.txt
md5sum oldboy.txt (會自動生成一個密文密碼)
2)記錄指紋
md5sum oldboy.txt > police.log
echo oldboy >> oldboy.txt
md5sum oldboy.txt
3)根據指紋庫 對比
md5sum --c police.log
提示:oldbot.txt FAILED 說明指紋變化了,(顯示OK)說明沒變
註:指紋是用來驗證數據是否發生變化了,不會影響訪問文件
4)定時任務+md5sum定時檢查
1.2.7 組用戶相關命令
1)創建用戶組groupadd
參數:-g 指定gid號
2)刪除用戶組groupdel
1.2.8 用戶查詢命令
1. id 查看用戶是否存在
如:id georgekai
2. w 查看當前登錄的用戶
註:1.FROM 表示從哪登錄的
2.FROM 中 “-” 表示在機房服務器中直接登錄的
3. 查看系統負載的命令
w uptime top
4. top 查看動態進程 (相當於uptime / ps aux /w /free )
P : 按照CPU使用率排序
M :按照內存使用率排序
K : 殺死進程,指定PID號
5. ps 查看靜態
-ef 顯示所有正在運行的進程
aux 顯示進程詳細信息
6. sort 自動排序
ps aux | sort -rhk4
註:-r 倒敘
-n 把內容當做數字進行排序
-k4 表示第4列
-h 以人類可形式排序(帶單位,按單位大小顯示)
7. last 顯示用戶最近登錄的情況
8. lastlog 顯示系統中每個用戶最近一次的遠程登錄情況
註:只有遠程登錄的用戶才會查看到,切換過去的不算
總結:
1. 面試題-讓一個腳本開機自動的方法 etc/rc.local chkconfig
2. 如何讓一個腳本被chkconfig管理
3. 與用戶有關的文件和目錄
4. 案例提示:-bash-4.1$ 原因和解決過程
5. 一堆命令:用戶,磁盤
6. 添加虛擬用戶
7. 查看系統性能命令,系統管理命令,進程管理命令
設置開機自啟的腳本,用戶管理