第1章 批量添加3個用戶stu01-stu03,設置密碼為123456. 1.1 預備知識 前的產生的命令通過管道後可以交給bash運行 1.2 命令的樣子 目標命令的形狀,想讓命令變成這個樣子執行。 1.3 命令的生成 1.3.1 第一步 生成名字 1.3.2 第二步 拼接出想要的形狀 兩條命令之 ...
第1章 批量添加3個用戶stu01-stu03,設置密碼為123456.
1.1 預備知識
前的產生的命令通過管道後可以交給bash運行
[root@znix ~]# echo pwd |bash /root
1.2 命令的樣子
目標命令的形狀,想讓命令變成這個樣子執行。
useradd stu01 ;echo 123456|passwd --stdin stu01 useradd stu02 ;echo 123456|passwd --stdin stu02 useradd stu03 ;echo 123456|passwd --stdin stu03
1.3 命令的生成
1.3.1 第一步 生成名字
[root@znix ~]# echo stu{01..3}|xargs -n1 stu01 stu02 stu03
1.3.2 第二步 拼接出想要的形狀
兩條命令之間用 ; 表示前面的命令執行了執行後面的
兩條命令之間用 && 表示前面的執行對了執行後面的
[root@znix ~]# echo stu{01..3}|xargs -n1|sed -r 's#(.*)#useradd \1;echo 123456|passwd --stdin \1#g' useradd stu01;echo 123456|passwd --stdin stu01 useradd stu02;echo 123456|passwd --stdin stu02 useradd stu03;echo 123456|passwd --stdin stu03
1.3.3 第三步 交給bash執行
使用bash執行的時候,要先確認命令是正確的。
[root@znix ~]# echo stu{01..3}|xargs -n1|sed -r 's#(.*)#useradd \1;echo 123456|passwd --stdin \1#g'|bash Changing password for user stu01. passwd: all authentication tokens updated successfully. Changing password for user stu02. passwd: all authentication tokens updated successfully. Changing password for user stu03. passwd: all authentication tokens updated successfully.
1.3.4 第四步 檢查結果
[root@znix ~]# grep "stu" /etc/passwd stu01:x:889:889::/home/stu01:/bin/bash stu02:x:890:890::/home/stu02:/bin/bash stu03:x:891:891::/home/stu03:/bin/bash [root@znix ~]# grep "stu" /etc/shadow stu01:$6$7XjTYZn2$aVGsKaJDjKD0eKlRoWkxbKePEFF0Vopot5nw1dxCmzaeQ3ZYDDhmuoKHif9avWb/l06xzeUfj2I6HMPOBHr0e.:17422:0:99999:7::: stu02:$6$6tLZy0ua$erjJFSLK7qiYgXKE3fkLyjAgsY23elGDiUvJwHHrkw9kUTQbGeDqQAc6X1MXmuv2pwQY9qbpO7DAICxgDXh0Y0:17422:0:99999:7::: stu03:$6$a3FCqg//$WS9kjhD62naNSl1oRupYO/2DTNRN38j97wVSz4oNvlqAAYgZe.UzcDdUOx/DSpW93Q070Sdmmls7t9RBDR82D1:17422:0:99999:7:::
1.3.5 第五步 密碼驗證
[root@znix ~]# su - stu01 [stu01@znix ~]$ su - stu02 Password: [stu02@znix ~]$ su - stu03 Password: [stu03@znix ~]$ su - stu01 Password: [stu01@znix ~]$
1.4 簡化命令
1.4.1 預備知識
&表示匹配前面所找到的內容
[root@znix ~]# echo 123456|sed 's#.*#<&>#g' <123456> [root@znix ~]# echo 123456|sed 's#.#<&>#g' <1><2><3><4><5><6>
1.4.2 簡化命令
上面的命令就可以簡寫,而且& 屬於基礎正則,sed可以直接使用。
[root@znix ~]# echo stu{01..3}|xargs -n1|sed 's#.*#useradd & ;echo 123456|passwd --stdin & #g' useradd stu01 ;echo 123456|passwd --stdin stu01 useradd stu02 ;echo 123456|passwd --stdin stu02 useradd stu03 ;echo 123456|passwd --stdin stu03
第2章 用戶管理
2.1 相關命令
2.1.1 chown 修改文件的所有者或屬組
-R 遞歸修改文件或目錄的的所有者或組(很危險)
[root@znix tmp]# ll data/ total 4 drwxr-xr-x 78 root root 4096 Aug 24 10:28 etc [root@znix tmp]# chown -R znix.znix data/ [root@znix tmp]# ll data/ total 4 drwxr-xr-x 78 znix znix 4096 Aug 24 10:28 etc
2.1.2 groupadd 添加用戶組
-g 指定用戶組的gid
[root@znix ~]# groupadd mysql -g 999 [root@znix ~]# grep mysql /etc/group mysql:x:999:
2.2 添加一個虛擬用戶用戶 mysql 指定用戶的uid gid都是999
2.2.1 註意 useradd -g -u
-g 指定用戶組 gid(這裡指定gid的時候,這個組必須是存在的)
2.2.2 先創建組,再進行創建用戶,指定gid
[root@znix ~]# groupadd mysql -g 999 [root@znix ~]# useradd -u 999 -g mysql -s /sbin/nologin -M mysql [root@znix ~]# id mysql uid=999(mysql) gid=999(mysql) groups=999(mysql)
2.2.3 預設添加的時候uid與gid相同
[root@znix ~]# useradd -u 999 -s /sbin/nologin -M mysql [root@znix ~]# id mysql uid=999(mysql) gid=999(mysql) groups=999(mysql)
2.3 用戶查詢命令
2.3.1 w 顯示誰遠程登陸了系統,在做什麼
查看用戶是以什麼身份登陸到系統。
[root@znix ~]# w 10:25:35 up 1:02, 2 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 - 10:37 2:21m 0.00s 0.00s -bash root pts/0 10.0.0.1 09:23 0.00s 0.12s 0.00s w root pts/1 10.0.0.1 09:23 1:01m
登陸是指使用 ssh 遠程里連接時使用的用戶。登陸後切換用戶不會顯示。
本地用戶登陸 FROM 顯示為 - 為tty登陸
2.3.2 last 顯示系統用戶的登陸信息
last 命令與 /var/log/secure 文件記錄的信息大致相同,文件更為詳細
[root@znix ~]# last root tty1 Wed Sep 13 10:37 still logged in root pts/1 10.0.0.1 Wed Sep 13 09:23 still logged in root pts/0 10.0.0.1 Wed Sep 13 09:23 still logged in
last保存的文件位置:
[root@znix ~]# ll /var/log/wtmp /var/log/btmp -rw------- 1 root utmp 1536 Sep 13 10:37 /var/log/btmp -rw-rw-r--. 1 root utmp 122496 Sep 13 10:37 /var/log/wtmp
2.3.3 lastlog 顯示系統中用戶最近一次的登陸信息
lastlog命令會顯示相同中所有的用戶,最近一次登陸狀態
[root@znix ~]# lastlog Username Port From Latest root tty1 Wed Sep 13 10:37:46 +0800 2017 bin **Never logged in**
lastlog保存文件位置:
[root@znix ~]# ll /var/log/lastlog -rw-r--r--. 1 root root 292000 Sep 13 10:37 /var/log/lastlog
2.3.4 查看日誌的方式
儘量精確的查找,避免使用cat/vim 等命令就行查看。
tail /head
less
grep
第3章 sudo 臨時讓用戶獲得root許可權
3.1 su 與 su - 的區別
- 是su命令的參數 相當於 -, -l, --login
在切換用戶的時候,更新與用戶有關的環境變數
使用su 進行用戶切換的時候不會切換環境變數:
[root@znix ~]# su znix [znix@znix root]$ env |grep root PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin MAIL=/var/spool/mail/root PWD=/root
使用su - 進行用戶切換的時候會切換環境變數:
[root@znix ~]# su - znix [znix@znix ~]$ env |grep root [znix@znix ~]$
3.2 給znix用戶查看日誌的許可權。
[root@znix ~]# ll /var/log/secure -rw------- 1 root root 25317 Sep 13 15:21 /var/log/secure
3.2.1 其他方法(不安全)
1、修改文件的歸屬(不可取)
2、修改文件的許可權,為文件添加上其他用戶可讀許可權(不安全)
3、為命令特殊許可權 ,suid (運行命令的時候 相當於是命令的所有者)其他的用戶也都可用,不安全。
3.2.2 使用sudo 讓znix用戶臨時獲得root許可權
[znix@znix ~]$ sudo tail -1 /var/log/secure
Sep 13 15:59:05 znix sudo: znix : TTY=pts/0 ; PWD=/home/znix ; USER=root ; COMMAND=/usr/bin/tail -1 /var/log/secure
3.3 sudo許可權的配置
3.3.1 查看當前有什麼特權
[znix@znix ~]$ sudo -l Matching Defaults entries for znix on this host: …… User znix may run the following commands on this host: (ALL) NOPASSWD: ALL
3.3.2 第一次使用sudo的時候會提示設置密碼,並告知沒有可用命令。
[znix@znix ~]$ sudo -l We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. [sudo] password for znix: 設置密碼為znix用戶 Sorry, user znix may not run sudo on oldboyedu-40. 抱歉, 用戶 znix 沒有 可以使用的 sudo 在znix
3.3.3 為znix用戶添加sudo 命令
visudo 進入編輯即編輯 /etc/sudoers 文件。直接編輯該文件需要強制保存。
92gg 第92行,放在這裡是為了有個對比
i 進行編輯
90 ## Allow root to run any commands anywhere
91 root ALL=(ALL) ALL
92 znix ALL=(ALL) /bin/ls, /bin/touch
3.3.4 查看現在znix用戶的sudo許可權
[znix@znix ~]$ sudo -l [sudo] password for znix: Matching Defaults entries for znix on this host: ……
znix用戶可以以root用戶的身份運行下麵的命令
User znix may run the following commands on this host:
(ALL) /bin/ls, (ALL) /bin/touch
3.3.5 測試znix用戶的sudo許可權
znix用戶再/root 目錄中可以進行操作.
[znix@znix ~]$ ls /root/ ls: cannot open directory /root/: Permission denied [znix@znix ~]$ sudo ls /root/ 1 dir035 install.log oldboy.txt test.txt 123 ett.txt install.log.syslog passwd.txt test.txt-hard [znix@znix ~]$ sudo touch /root/znix.txt [znix@znix ~]$ sudo ls /root/znix.txt /root/znix.txt
3.3.6 給znix用戶 sudo所有命令
[root@znix ~]# grep znix /etc/sudoers znix ALL=(ALL) ALL
實例3-1 使用sudo 命令 切換到root用戶不需要密碼
[root@znix ~]# su - znix [znix@znix ~]$ sudo su - [root@znix ~]#
註意: sudo ALL 許可權很危險
##給自己使用。
##給其他的用戶使用:需要用什麼給什麼,不能給過多的許可權.保證安全。
3.3.7 給znix用戶 sudo所有命令,並且使用的時候不用密碼
查看znix用戶擁有的sudo 命令
[znix@znix ~]$ sudo -l|tail -2
User znix may run the following commands on this host:
(ALL) NOPASSWD: ALL
查看配置文件 /etc/sudoers
[znix@znix ~]$ sudo grep znix /etc/sudoers #znix ALL=(ALL) /bin/ls, /bin/touch #znix ALL=(ALL) ALL #znix ALL=(ALL) /bin/* znix ALL=(ALL) NOPASSWD: ALL
第4章 行為日誌審計
4.1 行為日誌審計的概念
4.2 商業產品,硬體產品
齊治的堡壘機
4.3 python開源產品
getone web跳板機
jump sever
crazyEYE
4.4 shell跳板機
第5章 在系統中安裝一個軟體 htop
5.1 方法一 yum 安裝
5.1.1 先配置上 epel 軟體源
EPEL 是yum的一個軟體源,裡面包含了許多基本源里沒有的軟體。
[root@znix ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
5.1.2 使用 yum 即可安裝
[root@znix ~]# yum install htop -y