案例讓一個命令在開機的時候自動執行的方法
阿新 • • 發佈:2018-11-25
案例讓一個命令在開機的時候自動執行的方法
[[email protected] ~]# vim /etc/init.d/oldboy
[[email protected] ~]# cat /etc/init.d/oldboy
# chkconfig: 2345 99 99
echo aaa(表示指令碼的檔案內容,oldboy表示開機啟動的指令碼名稱)
[[email protected] ~]# ll /etc/init.d/oldboy
-rw-r--r-- 1 root root 34 Nov 13 22:15 /etc/init.d/oldboy
[[email protected] ~]# chmod u+x /etc/init.d/oldboy
[[email protected] ~]# ll /etc/init.d/oldboy
-rwxr--r-- 1 root root 34 Nov 13 22:15 /etc/init.d/oldboy
[[email protected] ~]# chkconfig --add oldboy
[[email protected] ~]# chkconfig |grep oldboy
oldboy 0:off 1:off 2:on 3:on 4:on 5:on 6:off
註解:
[ [email protected] ~]# # 案例2 讓一個命令在開機的時候自動執行的方法
[[email protected] ~]# (方法1)把這個命令或指令碼放到/etc/rc.local 下面
-bash: syntax error near unexpected token `把這個命令或指令碼放到/etc/rc.local'
[[email protected] ~]# #(方法1)把這個命令或指令碼放到/etc/rc.local 下面
[[email protected] ~]# #(方法2)該命令通過chkconfig 命令來管理
[ [email protected] ~]# # 方法1 就是 vim /etc/init.d/oldboy(oldboy 檔名)裡面寫入要執行 的指令碼內容儲存退出、
[[email protected] ~]# # ll /etc/init.d/oldboy 發現oldboy預設的許可權是644 沒有執行許可權、所以 chmod +x /etc/init.d/oldboy ^C
[[email protected] ~]# # 方法1 就是 vim /etc/init.d/oldboy(oldboy 檔名)裡面寫入要執行 .指令碼內容儲存退出、指令碼的內容格式的的指令碼內容儲存退出、指令碼的內容格式的開頭必須是
[[email protected] ~]# # 方法1 就是 vim /etc/init.d/oldboy(oldboy 檔名)裡面寫入要執行 的指令碼內容儲存退出、指令碼的內容格式的開頭必須是 (# chkconfig: 2345 99 99 )這是chkconfig 管理指令碼的條件。2345 表示在開機啟動的時候級別,執行級別一般是2345,第一個99表示開機 啟動的順序,第二99表示關機的時候的順序,我們關注的是開機的,一般自己寫的指令碼放在99這個文職就可以,用 chkconfig --add oldboy
[[email protected] ~]# # 方法1 就是 vim /etc/init.d/oldboy(oldboy 檔名)裡面寫入要執行 的指令碼內容儲存退出、指令碼的內容格式的開頭必須是 (# chkconfig: 2345 99 99 )這是chkconfig 管理指令碼的條件。2345 表示在開機啟動的時候級別,執行級別一般是2345,第一個99表示開機 啟動的順序,第二99表示關機的時候的順序,我們關注的是開機的,一般自己寫的指令碼放在99這個文職就可以,用 chkconfig --add oldboy 加入控制
[[email protected] ~]# #3 chkconfig |grep oldby 檢查 2345 上是開機啟動的
案例2:一次建立50萬檔案的方法,必須要用|xargs 否則無法建立
[[email protected] ~]# #echo {1..500000}|xargs touch
[[email protected] ~]# #一次建立50萬檔案的方法,必須要用|xargs 否則無法建立
[[email protected] ~]# df -ih
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 580K 330K 250K 57% /
tmpfs 123K 1 123K 1% /dev/shm
/dev/sda1 50K 38 50K 1% /boot
[[email protected] ~]# dev/sda3 580K 330K 250K 57% /
[[email protected] ~]# #檢視節點快用完了,
[[email protected] ~]# find / -type d -size +1M|xargs ls -lhd
dr-xr-x---. 2 root root 6.4M Nov 13 21:06 /root
[[email protected] ~]# ls /root |wc -l
282437
[[email protected] ~]# \rm -rf /root
[[email protected] ~]# ls -l
total 0
[[email protected] ~]# #ls |xargs rm -rf 這是刪除大量檔案的方法。
[[email protected] ~]# #ls -l 檢視發現成功了
案例3 建立一個 使用者UID是888 不可登陸的 不建立家目錄的使用者 test
[[email protected] oldboy]# useradd -u 888 -s /sbin/nologin -M test
[[email protected] oldboy]# grep test /etc/passwd
test:x:888:888::/home/test:/sbin/nologin
[[email protected] oldboy]# ls /home/test
ls: cannot access /home/test: No such file or directory(沒有建立家目錄)
-u 制定UID
-s 不可登陸的
-M 不建立家目錄
Test 表示使用者
[[email protected] oldboy]# id test
uid=888(test) gid=888(test) groups=888(test)
[[email protected] oldboy]# vim /etc/passwd
#test:x:888:888::/home/test:/sbin/nologin
(#)號表示刪除了這個使用者
[[email protected] oldboy]# id test
id: test: No such user (顯示使用者不存在了,相當於使用者刪掉了但是資料還是在的)
userdel test 預設不會刪除使用者test的家目錄
-r 引數連同使用者的test家目錄一起刪掉了,userdel -r 把使用者的資訊刪除的乾乾淨淨
最安全的方法就是在/etc/passwd 下面的使用者前面加上一個(#號註釋掉,如果有人要用,去掉#號即可這樣操作比較安全)
[[email protected] ~]# useradd -u 888 -s /sbin/nologin -M alex888
[[email protected] ~]# grep alex888 /etc/passwd
alex888:x:888:888::/home/alex888:/sbin/nologin
[[email protected] ~]# chkconfig postfix off
[[email protected] ~]# usermod -c "xu ni yong hu " alex888
[[email protected] ~]# grep alex888 /etc/passwd
alex888:x:888:888:xu ni yong hu :/home/alex888:/sbin/nologin
[[email protected] ~]# id alex888
uid=888(alex888) gid=888(alex888) groups=888(alex888)
[email protected] ~]# usermod -g oldboy alex888
[[email protected] ~]# id alex888
uid=888(alex888) gid=889(oldboy) groups=889(oldboy)
改變它的所屬oldboy 組的成員
[[email protected] ~]# usermod -G root,oldboy,test alex888
[[email protected] ~]# id alex888
uid=888(alex888) gid=889(oldboy) groups=889(oldboy),0(root),890(test)
屬於多個使用者組
usermod 主要是用來修改使用者的屬性資訊的
[[email protected] ~]# echo '123456'|passwd --stdin oldboy
Changing password for user oldboy.
passwd: all authentication tokens updated successfully.
非互動式的改變用密碼 –stdin 表示一次修改密碼
--stdin 這個命令只能root才可以用
[[email protected] ~]# history -c 清空歷史記錄
案例:給檔案做一個指紋
[[email protected] ~]# touch oldboy
[[email protected] ~]# echo oldboy >oldboy
[[email protected] ~]# cat oldboy
oldboy
[[email protected] ~]# md5sum oldboy
3fe396c01f03425cb5e2da8186eb090d oldboy
[[email protected] ~]# cat oldboy
Oldboy
只有這個檔案在發生變化的時候才會起作用
[[email protected] ~]# md5sum oldboy >police.log(放到一個指定的檔案中)
[[email protected] ~]# cat police.log
3fe396c01f03425cb5e2da8186eb090d oldboy
[[email protected] ~]# md5sum -c police.log (指紋的對比,如果沒有發生變化就是OK的)
oldboy: OK
往檔案oldboy裡面新增的內容測試
[[email protected] ~]# echo oldboy.txt >>oldboy
[[email protected] ~]# cat oldboy
oldboy
oldboy.txt
[[email protected] ~]# md5sum -c police.log
oldboy: FAILED
md5sum: WARNING: 1 of 1 computed checksum did NOT match
oldboy: FAILED 表示檔案發生了變化
案例:
批量新增10個使用者stu01,stu0……stu10,斌設定8位隨機密碼;
[[email protected] ~]# useradd -u 999 -s /sbin/nologin -M mysql
[[email protected] ~]# id mysql
uid=999(mysql) gid=999(mysql) groups=999(mysql)
[[email protected] ~]# #新增一個使用者MySQL,並指定UID為999 GID為999
在Linux裡面只要指定UID後,GID跟UID是一樣的,不用加小寫的-g
Useradd -g 是指定使用者的名字,指定組ID用groupadd -g test 新增到test組裡面
案例:模擬一個大檔案,用top來檢視CPU的負載程序情況
[[email protected] tmp]# dd if=/dev/zero of=/tmp/100 bs=1M count=10009(大檔案來模擬)
[[email protected] ~]# top(top來觀察程序的負載資訊)
top - 22:21:21 up 4:11, 2 users, load average: 1.03, 0.34, 0.13
Tasks: 92 total, 1 running, 90 sleeping, 1 stopped, 0 zombie
Cpu(s): 0.0%us, 0.3%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1004112k total, 938448k used, 65664k free, 11824k buffers
Swap: 786428k total, 0k used, 786428k free, 814744k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7 root 20 0 0 0 0 S 0.3 0.0 0:19.67 events/0
5693 root 20 0 15036 1176 908 R 0.3 0.1 0:03.35 top
Top程序預設是按照CPU來排序的,按大寫的M是用記憶體來排序,按大寫的P是按CPU來排序的。
[[email protected] ~]# free -h 專門來檢視記憶體資訊
total used free shared buffers cached
Mem: 980M 907M 73M 232K 11M 787M
-/+ buffers/cache: 108M 872M
Swap: 767M 0B 767M
還有一種就是top版的增強版本:
htop 是指增強版的top
iotop 主要檢視每個程序使用的io 磁碟使用情況
iftop 顯示系統的網路流量
預設這三個命令是沒有安裝的
[[email protected] ~]# last 顯示系統的登入資訊,以及該使用者登入了多久
root pts/1 10.0.0.1 Wed Nov 14 22:13 still logged in (表示在登陸中)
root pts/0 10.0.0.1 Wed Nov 14 21:14 still logged in
root pts/0 10.0.0.1 Wed Nov 14 14:08 - 17:11 (03:02)
reboot system boot 2.6.32-696.el6.x Wed Nov 14 14:08 - 22:43 (08:34)
root pts/0 10.0.0.1 Wed Nov 14 14:02 - down (00:06)
root tty1 Mon Nov 12 00:09 - down (2+13:58)
root pts/7 10.0.0.1 Sat Nov 10 18:28 - 19:53 (01:25)
root pts/6 10.0.0.1 Sat Nov 10 18:28 - 19:53 (01:25)
root pts/0 10.0.0.1 Wed Nov 14 14:08 - 17:11 (03:02)
17:11 表示登入時間
(03:02) 登陸了多久
[[email protected] ~]# lastlog (顯示系統最近一次所有的登入情況,這裡的登入時指遠端登的使用者不是切換使用者)
Username Port From Latest
root pts/1 10.0.0.1 Wed Nov 14 22:13:25 +0800 2018
bin **Never logged in**
daemon **Never logged in**
adm **Never logged in**
lp **Never logged in**
sync **Never logged in**
案例:su 與su – 的區別
[[email protected] ~]# su oldboy
[[email protected] root]$ pwd
/root(su 不加- 切換後家目錄還是/root,ls 檢視檔案的時候還是沒有許可權)
[[email protected] root]$ whoami
Oldboy
[[email protected] ~]# su – oldboy (加上-後,家目錄就會切換到普通使用者的家目錄下面,普通使用者有許可權)
[[email protected] ~]$ pwd
/home/oldboy
[[email protected] ~]$ whoami
oldboy
sudo 這個命令是專門為普通使用者用的,root 使用者是用不著的。
[[email protected] ~]# visudo (:92行找到root在下root行的下面寫上普通使用者的使用者名稱和執行的命令)
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
oldboy ALL=(ALL) /bin/ls, /bin/touch (給oldboy授權)
[[email protected] ~]# visudo -c (一定要進行語法的檢查是否正確)
/etc/sudoers: parsed OK
[[email protected] ~]$ ls /root
ls: cannot open directory /root: Permission denied
[[email protected] ~]$ sudo ls /root/
anaconda-ks.cfg install.log.syslog police.log yangjuncheng.test
[[email protected] ~]$ sudo touch /root/alex.txt
[[email protected] ~]$ sudo ls /root/alex.txt
/root/alex.txt (檔案已經建立)
visudo == vim /etc/sudoers
案例:授權/bin/下面普通使用者root的許可權
[[email protected] ~]# visudo
oldboy ALL=(ALL) /bin/*(授權/bin下的所有許可權)
[[email protected] ~]$ ls /bin (檢視發現有su – root )
[[email protected] ~]$ su - root
Password: (沒有密碼)
[[email protected] ~]$ sudo su – root (這條命令表示具有了root的許可權,這樣普通使用者就直接成root了,非常危險,不能給普通使用者這麼大的許可權)
[sudo] password for oldboy:
[[email protected] ~]# ls /root
案例:授權/bin/下面普通使用者root的許可權,並且排除su 許可權
[[email protected] ~]# visudo
oldboy ALL=(ALL) /bin/* !/bin/su (表示排除su )
[[email protected] ~]$ sudo su -
Sorry, user oldboy is not allowed to execute '/bin/su -' as root on oldboy02.(沒有許可權)
[[email protected] ~]$
因為/bin/目錄下面有好多的執行命令這樣授權整個目錄很危險,最好的辦法就是普通使用者
需要什麼就給什麼許可權,這樣比較安全。精確到某個命令的某個引數。
[[email protected] ~]$ sudo -k(清除快取)
[[email protected] ~]$ sudo -l
[sudo] password for案例讓一個命令在開機的時候自動執行的方法
[[email protected] ~]# vim /etc/init.d/oldboy
[[email protected] ~]# cat /etc/init.d/oldboy
# chkconfig: 2345 99 99
echo aaa(表示指令碼的檔案內容,oldboy表示開機啟動的指令碼名稱)
[[email protected] ~]# ll /etc/init.d/oldboy
-rw-r--r-- 1 root root 34 Nov 13 22:15 /etc/init.d/oldboy
[[email protected] ~]# chmod u+x /etc/init.d/oldboy
[[email protected] ~]# ll /etc/init.d/oldboy
-rwxr--r-- 1 root root 34 Nov 13 22:15 /etc/init.d/oldboy
[[email protected] ~]# chkconfig --add oldboy
[[email protected] ~]# chkconfig |grep oldboy
oldboy 0:off 1:off 2:on 3:on 4:on 5:on 6:off
註解:
[[email protected] ~]# # 案例2 讓一個命令在開機的時候自動執行的方法
[[email protected] ~]# (方法1)把這個命令或指令碼放到/etc/rc.local 下面
-bash: syntax error near unexpected token `把這個命令或指令碼放到/etc/rc.local'
[[email protected] ~]# #(方法1)把這個命令或指令碼放到/etc/rc.local 下面
[[email protected] ~]# #(方法2)該命令通過chkconfig 命令來管理
[[email protected] ~]# # 方法1 就是 vim /etc/init.d/oldboy(oldboy 檔名)裡面寫入要執行 的指令碼內容儲存退出、
[[email protected] ~]# # ll /etc/init.d/oldboy 發現oldboy預設的許可權是644 沒有執行許可權、所以 chmod +x /etc/init.d/oldboy ^C
[[email protected] ~]# # 方法1 就是 vim /etc/init.d/oldboy(oldboy 檔名)裡面寫入要執行 .指令碼內容儲存退出、指令碼的內容格式的的指令碼內容儲存退出、指令碼的內容格式的開頭必須是
[[email protected] ~]# # 方法1 就是 vim /etc/init.d/oldboy(oldboy 檔名)裡面寫入要執行 的指令碼內容儲存退出、指令碼的內容格式的開頭必須是 (# chkconfig: 2345 99 99 )這是chkconfig 管理指令碼的條件。2345 表示在開機啟動的時候級別,執行級別一般是2345,第一個99表示開機 啟動的順序,第二99表示關機的時候的順序,我們關注的是開機的,一般自己寫的指令碼放在99這個文職就可以,用 chkconfig --add oldboy
[[email protected] ~]# # 方法1 就是 vim /etc/init.d/oldboy(oldboy 檔名)裡面寫入要執行 的指令碼內容儲存退出、指令碼的內容格式的開頭必須是 (# chkconfig: 2345 99 99 )這是chkconfig 管理指令碼的條件。2345 表示在開機啟動的時候級別,執行級別一般是2345,第一個99表示開機 啟動的順序,第二99表示關機的時候的順序,我們關注的是開機的,一般自己寫的指令碼放在99這個文職就可以,用 chkconfig --add oldboy 加入控制
[[email protected] ~]# #3 chkconfig |grep oldby 檢查 2345 上是開機啟動的
案例2:一次建立50萬檔案的方法,必須要用|xargs 否則無法建立
[[email protected] ~]# #echo {1..500000}|xargs touch
[[email protected] ~]# #一次建立50萬檔案的方法,必須要用|xargs 否則無法建立
[[email protected] ~]# df -ih
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 580K 330K 250K 57% /
tmpfs 123K 1 123K 1% /dev/shm
/dev/sda1 50K 38 50K 1% /boot
[[email protected] ~]# dev/sda3 580K 330K 250K 57% /
[[email protected] ~]# #檢視節點快用完了,
[[email protected] ~]# find / -type d -size +1M|xargs ls -lhd
dr-xr-x---. 2 root root 6.4M Nov 13 21:06 /root
[[email protected] ~]# ls /root |wc -l
282437
[[email protected] ~]# \rm -rf /root
[[email protected] ~]# ls -l
total 0
[[email protected] ~]# #ls |xargs rm -rf 這是刪除大量檔案的方法。
[[email protected] ~]# #ls -l 檢視發現成功了
案例3 建立一個 使用者UID是888 不可登陸的 不建立家目錄的使用者 test
[[email protected] oldboy]# useradd -u 888 -s /sbin/nologin -M test
[[email protected] oldboy]# grep test /etc/passwd
test:x:888:888::/home/test:/sbin/nologin
[[email protected] oldboy]# ls /home/test
ls: cannot access /home/test: No such file or directory(沒有建立家目錄)
-u 制定UID
-s 不可登陸的
-M 不建立家目錄
Test 表示使用者
[[email protected] oldboy]# id test
uid=888(test) gid=888(test) groups=888(test)
[[email protected] oldboy]# vim /etc/passwd
#test:x:888:888::/home/test:/sbin/nologin
(#)號表示刪除了這個使用者
[[email protected] oldboy]# id test
id: test: No such user (顯示使用者不存在了,相當於使用者刪掉了但是資料還是在的)
userdel test 預設不會刪除使用者test的家目錄
-r 引數連同使用者的test家目錄一起刪掉了,userdel -r 把使用者的資訊刪除的乾乾淨淨
最安全的方法就是在/etc/passwd 下面的使用者前面加上一個(#號註釋掉,如果有人要用,去掉#號即可這樣操作比較安全)
[[email protected] ~]# useradd -u 888 -s /sbin/nologin -M alex888
[[email protected] ~]# grep alex888 /etc/passwd
alex888:x:888:888::/home/alex888:/sbin/nologin
[[email protected] ~]# chkconfig postfix off
[[email protected] ~]# usermod -c "xu ni yong hu " alex888
[[email protected] ~]# grep alex888 /etc/passwd
alex888:x:888:888:xu ni yong hu :/home/alex888:/sbin/nologin
[[email protected] ~]# id alex888
uid=888(alex888) gid=888(alex888) groups=888(alex888)
[email protected] ~]# usermod -g oldboy alex888
[[email protected] ~]# id alex888
uid=888(alex888) gid=889(oldboy) groups=889(oldboy)
改變它的所屬oldboy 組的成員
[[email protected] ~]# usermod -G root,oldboy,test alex888
[[email protected] ~]# id alex888
uid=888(alex888) gid=889(oldboy) groups=889(oldboy),0(root),890(test)
屬於多個使用者組
usermod 主要是用來修改使用者的屬性資訊的
[[email protected] ~]# echo '123456'|passwd --stdin oldboy
Changing password for user oldboy.
passwd: all authentication tokens updated successfully.
非互動式的改變用密碼 –stdin 表示一次修改密碼
--stdin 這個命令只能root才可以用
[[email protected] ~]# history -c 清空歷史記錄
案例:給檔案做一個指紋
[[email protected] ~]# touch oldboy
[[email protected] ~]# echo oldboy >oldboy
[[email protected] ~]# cat oldboy
oldboy
[[email protected] ~]# md5sum oldboy
3fe396c01f03425cb5e2da8186eb090d oldboy
[[email protected] ~]# cat oldboy
Oldboy
只有這個檔案在發生變化的時候才會起作用
[[email protected] ~]# md5sum oldboy >police.log(放到一個指定的檔案中)
[[email protected] ~]# cat police.log
3fe396c01f03425cb5e2da8186eb090d oldboy
[[email protected] ~]# md5sum -c police.log (指紋的對比,如果沒有發生變化就是OK的)
oldboy: OK
往檔案oldboy裡面新增的內容測試
[[email protected] ~]# echo oldboy.txt >>oldboy
[[email protected] ~]# cat oldboy
oldboy
oldboy.txt
[[email protected] ~]# md5sum -c police.log
oldboy: FAILED
md5sum: WARNING: 1 of 1 computed checksum did NOT match
oldboy: FAILED 表示檔案發生了變化
案例:
批量新增10個使用者stu01,stu0……stu10,斌設定8位隨機密碼;
[[email protected] ~]# useradd -u 999 -s /sbin/nologin -M mysql
[[email protected] ~]# id mysql
uid=999(mysql) gid=999(mysql) groups=999(mysql)
[[email protected] ~]# #新增一個使用者MySQL,並指定UID為999 GID為999
在Linux裡面只要指定UID後,GID跟UID是一樣的,不用加小寫的-g
Useradd -g 是指定使用者的名字,指定組ID用groupadd -g test 新增到test組裡面
案例:模擬一個大檔案,用top來檢視CPU的負載程序情況
[[email protected] tmp]# dd if=/dev/zero of=/tmp/100 bs=1M count=10009(大檔案來模擬)
[[email protected] ~]# top(top來觀察程序的負載資訊)
top - 22:21:21 up 4:11, 2 users, load average: 1.03, 0.34, 0.13
Tasks: 92 total, 1 running, 90 sleeping, 1 stopped, 0 zombie
Cpu(s): 0.0%us, 0.3%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1004112k total, 938448k used, 65664k free, 11824k buffers
Swap: 786428k total, 0k used, 786428k free, 814744k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7 root 20 0 0 0 0 S 0.3 0.0 0:19.67 events/0
5693 root 20 0 15036 1176 908 R 0.3 0.1 0:03.35 top
Top程序預設是按照CPU來排序的,按大寫的M是用記憶體來排序,按大寫的P是按CPU來排序的。
[[email protected] ~]# free -h 專門來檢視記憶體資訊
total used free shared buffers cached
Mem: 980M 907M 73M 232K 11M 787M
-/+ buffers/cache: 108M 872M
Swap: 767M 0B 767M
還有一種就是top版的增強版本:
htop 是指增強版的top
iotop 主要檢視每個程序使用的io 磁碟使用情況
iftop 顯示系統的網路流量
預設這三個命令是沒有安裝的
[[email protected] ~]# last 顯示系統的登入資訊,以及該使用者登入了多久
root pts/1 10.0.0.1 Wed Nov 14 22:13 still logged in (表示在登陸中)
root pts/0 10.0.0.1 Wed Nov 14 21:14 still logged in
root pts/0 10.0.0.1 Wed Nov 14 14:08 - 17:11 (03:02)
reboot system boot 2.6.32-696.el6.x Wed Nov 14 14:08 - 22:43 (08:34)
root pts/0 10.0.0.1 Wed Nov 14 14:02 - down (00:06)
root tty1 Mon Nov 12 00:09 - down (2+13:58)
root pts/7 10.0.0.1 Sat Nov 10 18:28 - 19:53 (01:25)
root pts/6 10.0.0.1 Sat Nov 10 18:28 - 19:53 (01:25)
root pts/0 10.0.0.1 Wed Nov 14 14:08 - 17:11 (03:02)
17:11 表示登入時間
(03:02) 登陸了多久
[[email protected] ~]# lastlog (顯示系統最近一次所有的登入情況,這裡的登入時指遠端登的使用者不是切換使用者)
Username Port From Latest
root pts/1 10.0.0.1 Wed Nov 14 22:13:25 +0800 2018
bin **Never logged in**
daemon **Never logged in**
adm **Never logged in**
lp **Never logged in**
sync **Never logged in**
案例:su 與su – 的區別
[[email protected] ~]# su oldboy
[[email protected] root]$ pwd
/root(su 不加- 切換後家目錄還是/root,ls 檢視檔案的時候還是沒有許可權)
[[email protected] root]$ whoami
Oldboy
[[email protected] ~]# su – oldboy (加上-後,家目錄就會切換到普通使用者的家目錄下面,普通使用者有許可權)
[[email protected] ~]$ pwd
/home/oldboy
[[email protected] ~]$ whoami
oldboy
sudo 這個命令是專門為普通使用者用的,root 使用者是用不著的。
[[email protected] ~]# visudo (:92行找到root在下root行的下面寫上普通使用者的使用者名稱和執行的命令)
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
oldboy ALL=(ALL) /bin/ls, /bin/touch (給oldboy授權)
[[email protected] ~]# visudo -c (一定要進行語法的檢查是否正確)
/etc/sudoers: parsed OK
[[email protected] ~]$ ls /root
ls: cannot open directory /root: Permission denied
[[email protected] ~]$ sudo ls /root/
anaconda-ks.cfg install.log.syslog police.log yangjuncheng.test
[[email protected] ~]$ sudo touch /root/alex.txt
[[email protected] ~]$ sudo ls /root/alex.txt
/root/alex.txt (檔案已經建立)
visudo == vim /etc/sudoers
案例:授權/bin/下面普通使用者root的許可權
[[email protected] ~]# visudo
oldboy ALL=(ALL) /bin/*(授權/bin下的所有許可權)
[[email protected] ~]$ ls /bin (檢視發現有su – root )
[[email protected] ~]$ su - root
Password: (沒有密碼)
[[email protected] ~]$ sudo su – root (這條命令表示具有了root的許可權,這樣普通使用者就直接成root了,非常危險,不能給普通使用者這麼大的許可權)
[sudo] password for oldboy:
[[email protected] ~]# ls /root
案例:授權/bin/下面普通使用者root的許可權,並且排除su 許可權
[[email protected] ~]# visudo
oldboy ALL=(ALL) /bin/* !/bin/su (表示排除su )
[[email protected] ~]$ sudo su -
Sorry, user oldboy is not allowed to execute '/bin/su -' as root on oldboy02.(沒有許可權)
[[email protected] ~]$
因為/bin/目錄下面有好多的執行命令這樣授權整個目錄很危險,最好的辦法就是普通使用者
需要什麼就給什麼許可權,這樣比較安全。精確到某個命令的某個引數。
[[email protected] ~]$ sudo -k(清除快取)
[[email protected] ~]$ sudo -l
[sudo] password for oldboy:
如果說自己用,或是給上面領導使用的時候就不需要密碼
[[email protected] ~]# visudo
oldboy ALL=(ALL) NOPASSWD: ALL
[[email protected] ~]$ sudo su - (直接進入root使用者下面,不需要輸入密碼)
[[email protected] ~]#
國內使用的兩個堡壘機是 :gateone jumpserver:
如果說自己用,或是給上面領導使用的時候就不需要密碼
[[email protected] ~]# visudo
oldboy ALL=(ALL) NOPASSWD: ALL
[[email protected] ~]$ sudo su - (直接進入root使用者下面,不需要輸入密碼)
[[email protected] ~]#
國內使用的兩個堡壘機是 :gateone jumpserver