拓展練習:(用戶的基本管理及用戶提權部分)

来源:https://www.cnblogs.com/gongjingyun123--/archive/2019/06/29/11108355.html
-Advertisement-
Play Games

[toc] vim視圖模式及擴展、用戶的相關配置文件 1.複製系統/etc/services文件到/root目錄,然後使用vim命令打開此文件。 2.顯示該文件的行號 3.顯示該文件的每一行結尾的標識符 4.替換文件中所有的"ssh"字元串替換成"oldboy" 5.跳轉到30行,並刪除此行。 6. ...


目錄

vim視圖模式及擴展、用戶的相關配置文件

1.複製系統/etc/services文件到/root目錄,然後使用vim命令打開此文件。

python cp /etc/services /root/services. vim service. cp /etc/services ./[[p

2.顯示該文件的行號
:set nu
3.顯示該文件的每一行結尾的標識符
:set list
4.替換文件中所有的"ssh"字元串替換成"oldboy"
:%s#ssh#oldboy#g
5.跳轉到30行,並刪除此行。
:set nu   ---->30gg--->dd      #註釋行,跳轉到30行,刪除
vim services. +30    --->dd  #登陸的時候直接跳轉到30行,刪除
6.撤銷一次你的操作。
u
7.當你執行了撤銷的時候,發現撤銷錯了,回滾,怎麼操作。
ctrl +r
8.給第25行到30行的行首添加一個註釋"#".寫出操作步驟。
:set nu  --->25gg---->ctrl+v---->方向鍵到30行--->shift+i---->shift+#--->esc esc
9.刪除第10行到20行的行首的註釋"#".寫出操作步驟。
10gg--->ctrl +v--->按方向鍵選中到20行--->d
10.vim編輯文件時,非正常退出,再從新編輯文件時,出現報錯,怎麼解決,寫出解決步驟。
刪除臨時保存文件,同文件名的.swp文件即可刪除
例如: .filename.swp   rm -f .filename.swp
註意:先查看是否有別的用戶在編輯這個文件a
11.vim的環境變數配置文件都有哪些?哪個優先順序高?
~/.vimrc 個人環境變數(優先順序高)
/etc/vimrc  全局環境變數
12.你知道如何使用vim編輯多個文件嗎?
vim -o a.sh zls.txt (水平分割)
vim -O a.sh zls.txt (垂直分割)
13.什麼命令可以比對兩個文件的不同,兩個命令有什麼區別?
diff 文件對比(用的不多)
vimdiff 以vim 方式打開兩個文件對比,高亮標記不同的內容
14.普通模式下的S是什麼作用?
刪除游標所在行,併進入編輯模式
15.什麼是用戶?
用戶指的是能夠正常登陸linux或windows系統
16.Linux與windows系統的用戶有什麼區別?
本質都是登錄系統的,只不過Linux支持多用戶同時登錄,windows預設不支持,但是修改`組策略`的情況下也是可以多用戶登錄的。
17.使用什麼命令可以查看用戶是否存在?
id
18.跟用戶相關的配置文件都有哪些?分別存放的是什麼?
/etc/passwd   存放用戶的信息
/etc/shadow    存放用戶的密碼
19./etc/passwd文件以':' 為分割符, 分為7個欄位,請說明一下每個欄位的具體含義?
第1列 :用戶賬戶名稱
第2列 :密碼占位符,存放賬戶的口令
第3列 :用戶UID,用戶標識號
第4列 :用戶GID,組標識號
第5列 : 用戶註釋,用戶詳細信息
第6列 :用戶家目錄,root家目錄
第7列 :用戶登陸Linux使用的Shell
20./etc/shadow文件以':' 為分割符, 分為9個欄位,請說明一下每個欄位的具體含義?
第1列 :用戶登錄名,也就是用戶的賬戶名稱
第2列 :加密後的密碼
第3列 :最近一次密碼更改時間
第4列 :密碼最少使用幾天
第5列 : 密碼最長使用幾天
第6列 :密碼到期前警告期限
第7列 :密碼到期後保持活動的天數
第8列 : 賬戶到期時間
第9列 : 標誌
21.什麼是用戶的UID?
用戶標識號
22.不同的用戶對應UID號範圍是多少?
0: 超級管理員(擁有最高許可權)
1-200: 系統用戶,有系統分配給系統進程使用
201-999:系統用戶,用來運行服務賬戶,不需要登陸系統(動態分配)
1000+   :常規普通用戶
23.新建用戶user1、user2,用戶user2不允許登陸到系統中。
useradd user1
useradd user2 -M -s /sbin/nologin
或者useradd user1;useradd user -M -s /sbin/nologin
24.創建普通用戶oldboy,其ID號為789.
useradd oldboy -u 789
25.創建虛擬用戶test,其ID號為666
useradd test -M -u 666 -s /sbin/nologin
26.修改oldboy用戶的ID號,修改為777.
usermod oldboy -u 777
27.修改用戶test的命令解釋器,使其可以登錄到系統。
usermod test -s /bin/bash
28.刪除用戶user1.不刪除其家目錄。
userdel user1
29.刪除用戶user2,不保留其家目錄。
userdel -r user2
30.給oldboy用戶創建一個密碼為123,並嘗試登錄。
passwd oldboy  
123--->123
 [email protected]
su - oldboy  #登陸
su  -  #退出登陸

用戶的相關命令,useradd /usermod 、userdel

1.創建普通用戶test01、test02、test03,要求UID為888,999,998

useradd test01 -u 888
useradd test02 -u 999
useradd test03 -u 998

2.給test01用戶使用互動式設置密碼為123456

passwd test01
123456
123456

3.使用test01用戶進行登錄。

su test01
或者在xhell中更改賬戶密碼鏈接su
ssh [email protected]

4.使用非互動式給test01設置密碼為oldboy123

echo "oldboy123" | passwd --stdin test01

5.使用修改之後的密碼進行登錄。

passwd username

6.有哪些命令可以查看當前用戶的登錄情況?

who
whoami
w

7.刪除用戶test02,要求連家目錄一起刪除。

userdel -r test02

8.請問,我刪除了test02用戶,哪個文件會發生變化?

/etc/passwd
/etc/shadow

9.創建一個虛擬用戶oldboy01,要求UID為555,不創建家目錄。

useradd oldboy01 -u 555 -M -s /sbin/nologin

10.創建用戶時,不指定選項設置參數了,系統創建之後的預設參數是根據什麼文件來定義的?

系統會根據/etc/login.defs、/etc/defaults/useradd兩個文件作為參照物

11.切換普通用戶時,出現這樣的命令行"-bash-4.1$",這是什麼原因造成的,該怎麼解決?

原因:家目錄下的.bash_* 環境變數相關的文件刪除了
解決: cp /etc/skel/.bash* ./     再重新登錄
      環境變數文件預設從/etc/skel目錄中拷貝

12.登錄到test01用戶,給其用戶test03設置密碼,發現報錯,請問是什麼原因?該怎麼解決?

普通用戶沒有修改其他用戶密碼的許可權
只有root用戶管理員才可以修改其他用戶的密碼,
使用非互動式來修改
echo  “密碼” |passwd --stdin test03

13.登錄到test01用戶,給其本用戶設置密碼為123,報錯,請問是什麼原因?該怎麼解決?

普通用戶只能更改自己的密碼,但密碼必須滿足8位字元

14.使用root用戶給test01用戶設置一個18位的隨機密碼,併進行登錄。

[root@centos7 ~]# echo $RANDOM|md5sum |cut -c 1-18|tee /tmp/a |passwd --stdin test01
cat /tmp/a         #查詢密碼

15.創建10個用戶,首碼是你的姓,尾碼為數字序列,比如qiu1等。

seq '10' |awk '{print "useradd gong"$1}'|bash

16.創建10個用戶,首碼是你的名,尾碼為數字序列,比如zengjia1等,並給其10個用戶設置統一密碼為123456,最後嘗試是否可以登錄。

[root@centos7 ~]# seq '10' |awk '{print " useradd jingyun"$1";""echo123456|passwd --stdin jingyun"$1}'|bash

17.創建10個用戶,首碼是oldboy,尾碼為數字序列,比如oldboy1等,並給其10個用戶設置隨機密碼,最後嘗試是否可以登錄。

[root@centos7 ~]# seq '10' |awk '{print "useradd oldboy"$1";""echo $RANDOM|md5sum|cut -c 1-10 |tee /tmp/old0"$1"|passwd --stdin oldboy"$1}'|bash

cat /tmp/old01

18.創建用戶qiudao,並給其用戶設置一個24位的隨機密碼,要求密碼包含數字,大小寫字母及特殊符號,最後查看是否可以登錄。

[root@centos7 ~]# useradd  qiudao ;mkpasswd -l 24 -d 2 -c 2 -C 2 -s 4|tee /tmp/aaa|passwd --stdin qiudao

cat /tmp/aaa

19.嘗試使用sed命令的後向引用取出ip地址,請分別使用ip和ifconfig命令取出,實在取不出,也沒有關係。

[root@centos7 ~]# ip a s ens33|sed -rn '3s#.*t (.*)/.*#\1#p'
10.0.0.100
[root@centos7 ~]# ifconfig ens33|sed -rn '2s#.*t (.*) n.*#\1#gp'
10.0.0.100

20.嘗試使用awk命令取出ip地址,請分別使用ip和ifconfig命令取出,實在取不出,也沒有關係。

[root@centos7 ~]# ifconfig ens33|awk -F ' ' 'NR==2 {print $2}'
10.0.0.100
[root@centos7 ~]# ip a s ens33|awk -F '[ /]+' 'NR==3 {print$3}'
10.0.0.100

組的切換,shell分類,用戶身份提權

1.跟組相關的兩個配置文件是?
/etc/group
/etc/gshadow
2.創建一個用戶基本組,shanghai01.
groupadd  shanghai01 
3.創建一個用戶基本組,shanghai02,指定GID為1099.
groupadd  -g 1099 shanghai02
4.創建一個用戶系統組,shanghai03.
groupadd -r shanghai03 
5.修改用戶基本組shanghai02的GID號為1033.
groupmod  -g 1033  shanghai02
6.將基本組shanghai01組名修改為linux
groupmod -n linux shanghai01 
7.創建一個用戶linux01,指定該用戶的附加組為shanghai02
useradd  -G shanghai02 linux01
8.創建用戶linux02.指定用戶基本組為shanghai03
useradd  -g shanghai03 linux02
9.創建用戶linux03,指定該用戶的附加組為shanghai02,shanghai03。
useradd  -G shanghai02,shanghai03 linux03
10.查看用戶linux02的uid和gid信息
id linux02
11.刪除用戶基本組shanghai02。
groupdel shanghai02
12.刪除用戶基本組shanghai03。發現無法正常刪除,怎樣才能將其刪除掉,不能刪除用戶。
只有將基本組下的用戶變更組才可以刪除
13.打開多個xshell視窗連接登錄同一虛擬機,使用不同的用戶登錄多次,分別使用w和who命令顯示當前系統上的所有已經登錄的用戶,取出用戶名這一列,註意:同一個用戶登錄多次,則只顯示一次即可。
who|awk '{print$1}'|sort|uniq -c
w|awk 'NR>2 {print$1}'|sort|uniq -c
14.創建用戶olddir,其ID號為1005,基本組為old
groupadd old
useradd olddir -u 1005 -g old
15.顯示當前登錄的用戶的UID號,你有幾種方法實現?
id username
grep '^username' /etc/passwd
16.對於用戶來說,組有幾種類別?有什麼區別?
基本組不可以被刪除,只有一個基本組
附加組可以有多個附加組,可以刪除
17./etc/group文件以:為分隔符,分為四列,解釋其每列的含義?
1.組的名稱
2.組的密碼(存在/etc/gshadow)
3.組GID信息
4.僅顯示附加成員,基本成員不顯示
18./etc/gshadow文件以:為分隔符,分為四列,解釋其每列的含義?
1.組名稱
2.組密碼
3.組管理員
4.僅顯示附加成員,基本成員不顯示
19.如果想從root用戶切換到普通用戶,使用什麼命令?
su - username
20.切換到普通用戶後,想返回到root用戶,怎麼做?幾種方法有什麼區別?
su -      要輸入密碼
logout   不用輸入密碼
ctrl +d   不用輸入密碼
exit      不用輸入密碼
21.Shell主要分為哪幾類?
互動式shell    //等待用戶輸入執行的命令(終端操作,需要不斷提示)
非互動式shell   //執行shell腳本, 腳本執行結束後shell自動退出

登陸shell     //需要輸入用戶名和密碼才能進入shell su - zls
非登陸shell    //不需要輸入用戶和密碼就能進入,比如執行sh, bash, su username
22.Bash Shell的個人及全局配置文件有哪些?哪個優先順序別高?
個人配置文件: ~/.bash_profile ~/.bashrc
全局配置文件:/etc/profile /etc/profile.d/*.sh /etc/bashrc
23.登錄式Shell配置文件執行順序?
//登錄式shell配置文件執行順序
/etc/profile->/etc/profile.d/*.sh->~/.bash_profile->~/.bashrc->/etc/bashrc
24.非登錄式shell配置文件執行順序?
//非登陸式shell配置文件執行順序
~/.bashrc->/etc/bashrc->/etc/profile.d/*.sh
==25.在root用戶下,以普通用戶身份執行"pwd"命令==。
su - linux01 -c "pwd"
26.什麼是sudo?
普通用戶提權命令。
sudo執行一個僅有root身份才能執行的命令是可以辦到的,但是需要輸入密碼,這個密碼並不是root的密碼而是用戶自己的密碼。
27.可以根據哪個文件對sudo提權?
visudo /etc/sudoers
==28==.登錄到普通用戶,查看/etc/shadow文件的內容,發現查看不了,怎麼辦?
先visudo進去編輯給普通用戶cat許可權

sudo cat /etc/shadow
29.登錄到普通用戶,刪除/opt目錄,若無法刪除,該怎麼解決?
先visudo 進去編輯給用戶rm許可權
sudo rm - fr /pot
30.登錄到普通用戶,使用sudo命令時,不想輸出密碼,怎麼解決?
visudo     修改成NOPASSWD
31.怎樣查看普通用戶的sudo許可權?
sudo -l
32.配置好了sudo授權,怎麼檢查語法是否正確?
visudo -c
/etc/sudoers: parsed OK
33.禁止root用戶遠程登錄,怎麼實現?
vim /etc/ssh/ssh_config  PermitRootLogin no
34.修改遠程連接埠號為2222,然後進行登錄?
vim /etc/ssh/ssh_config    Port 改為222
35.把對sshd的設置修改成預設。
vim /etc/ssh/ssh_config  
把PermitRootLogin yes Port 改為 22

臨時關閉防火牆:
36.使用sed命令列印出/etc/passwd文件的第一行到第三行
sed -n '1,3p' /etc/passwd
37.用一條命令創建/oldboy/test/shl05目錄
mkdir -p /oldboy/test/shl05
38.說出下麵幾個特殊符號的含義 * > >> # .. . ^ $ `` !
*  代表所有
>  標準輸出重定項
>> 標準輸出追加重定向
#    註釋 ,超級用戶標識符
.. 當前目錄的上層目錄
. 當前目錄  ,任意一個字元
^ 以什麼開頭
$ 以什麼結尾,變數,普通用戶標示符
`` 反引號,先執行引號裡面的命令,把結果交給外面
!非,取反
39.把/oldboy/oldboy.txt文件中的oldboy替換為oldgirl,
sed  -i ‘s#oldboy#oldgirl#g’   /oldboy/oldboy.txt
40.如何查看/etc/services文件的有多少行?
cat -n /etc/services|tail -1
wc -l /etc/services
awk '{print $0,NR}'  /etc/services |tail -1
41.過濾出/etc/services 文件包含3306或1521兩數字所在的行的內容。一條命令實現。
egrep '3306|1521' /etc/services 
awk '/3306|1521/'  /etc/services
sed -nr '/3306|1521/p' /etc/services
42.test.txt內容如下:

zengdao
qiudao
oldboy
請給出輸出test.txt 文件內容時,不包含oldboy字元串的命令,有幾種方法。

grep -v 'oldboy' test.txt
awk '!/oldboy/'  test.txt
sed '/oldboy/d' test.txt
head -2 test.txt
awk 'NR==1,NR==2'  test.txt
awk 'NR>=1&& NR<=2' test.txt
sed -n '1,2p' test.txt
43.入職新公司

,老大讓你在伺服器上限制rm 命令,當用戶輸入rm 命令時候提示”rm commandis not allowed to use.” 請問實現的步驟是?

alias rm='echo "rm commandis not allowed to use"'
44. 在linux 系統中,當LAN(區域網)內沒有條件記案例DNS 伺服器,但又想讓區域網內的用戶可以使用電腦名互相訪問時,應配置( )文件(請寫全路徑)
etc/hosts
45.寫出redhat 中,配置網卡及dns 的配置文件是什麼?有什麼區別?
etc/sysconfig/network-scripts/ifconfig-ens33   網卡及DNS
/etc/resolv.conf
 
書寫方式不一樣,
生效方式不一樣,網卡配置文件需要重啟網路服務才能生效
46.若要將滑鼠從VM中釋放出來,可按()鍵完成
ctrl +alt
47.如果用戶想對一個命令詳細的瞭解,可用()命令?
命令 --help
man
info
help
48.vim中把所有oldboy替換為oldgirl,給出命令?
:%s#oldboy#oldgirl#g
49.如何統計/etc下有多少個目錄,不包括隱藏目錄,只顯示目錄個數。
tree -d /etc |tail -1
50.統計secure.log文件中每個ip地址破解你用戶密碼的次數.文件群里有。
awk '/Failed passwd/{print $(NF-3)}'  secure.log|sort|uniq -c|sort -rn |head

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在原來的.net framework mvc中html的標簽可以使用下麵的方法 此時html標簽裡面屬性與值的對應要求不是很高,但是在.net core 2.2中,html標簽裡面屬性與值的必須要對應要求,上面得這種情況會報錯 標記幫助器"選項"在元素的屬性聲明區域中不得包含 C# 語句。 編輯器會 ...
  • 在較早期的隨筆《ABP開發框架前後端開發系列---(5)Web API調用類在Winform項目中的使用》已經介紹了Web API調用類的封裝處理,雖然這些調用類我們可以使用代碼生成工具快速生成,不過自定義介面,還是需要我們對這些介面進行實現,以便發起對Web API的調用,並獲得相應的數據返回。本... ...
  • 流程都是自己摸索,錯誤地方隨便指正。。。 老項目過於臃腫,並且所有請求都是提交到一個api中,這樣當api掛掉的時候,基本所有的項目都癱瘓掉了。 在4月底的時候,下決心將項目用微服務進行重寫,剛開始的時候,希望能找到.net framework的微服務解決方案,最後發現,一個都沒有。。。並且一個人開 ...
  • Quartz.NET是一個強大、開源、輕量的作業調度框架,你能夠用它來為執行一個作業而創建簡單的或複雜的作業調度。它有很多特征,如:資料庫支持,集群,插件,支持cron-like表達式等等。非常適合在平時的工作中,定時輪詢資料庫同步,定時郵件通知,定時處理數據等。 Quartz.NET允許開發人... ...
  • 本軟體取名為”PDF 目錄編輯器”,使用 WPF 開發,調用第三方類庫 Spire.PDF 免費版。 ...
  • 一個程式最忌諱的就是把自己的數據暴露給其他人,一個加解密可以讓你感覺安全性好一些 直接上代碼 一個加密類 加密 解密 如有疑問請咨詢 ...
  • 先看效果: 這個小圖標可以進行隨意拖拽,點擊還可以產生事件 隨便演示一下,效果就是這樣的。 下麵直接演示如何製作: 新建一個窗體,設置窗體的FormBorderStyle為None(去掉窗體邊框); 調整窗體的大小,和你的圖標差不多大小就行,至於動態圖,還在測試中,圖標必須是沒有背景的,因為有背景的 ...
  • 上一篇隨筆中寫過64位程式與32位程式(https://www.cnblogs.com/Heavystudio/p/11059033.html),最近開始正式在項目中大量實現了,但又出現了一個問題, 由於32位程式中還調用了大量dll,導致每次調用時啟動與關閉時都拖泥帶水,致使出現運行異常runti ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...