1. 程式人生 > >Linux學習(二)

Linux學習(二)

強制退出 linux學習 刪除用戶 usermod 修改 方向 終端 方法 用戶鎖定

前言:接著上一篇Linux學習(一)

1.用戶,組和權限
2.文本處理工具
3.vim文本編輯器
4.shell腳本編程基礎

一,用戶,組和權限

1.用戶

1.管理員:root,0

 普通用戶:1-65535
 shell  交互式登錄
          非交互式登錄   /etc/nologin

2.有關用戶和用戶密碼的基本命令

 vim  查看修改,有顏色

技術分享圖片

 cat   查看

技術分享圖片

 cat/etc/passwd 查看用戶信息,顯示7列,以 : 分隔

技術分享圖片

登錄名:密碼:UID:GID:GECOS:家目錄:登錄的shell   
GID:主要組的組id,附加組的在group文件中
shell:空白默認為最傳統的 sh shell

 cat/etc/shadow   查看用戶密碼,顯示9列
 pwconv   將passwd當中的密碼映射到了 /etc/shadow
                映射後的passwd     $id$salt$加密後的字符串
                                                salt不一樣,即使id一樣,密碼字符串不一樣

技術分享圖片

 vim /etc/shadow-
 pwunconv 取消映射,密碼仍然放在/etc/passwd

技術分享圖片

 用戶名:密碼:密碼上次修改的日期:密碼的最小存活期:密碼的最大存活期:密碼過期前幾天提醒:密碼過期後不改密碼觸發用戶過期的時間:用戶過期時間:保留位
 密碼上次修改的日期:距離到1970.1.1的天數(Linux開發出來的日期)
 最小存活期:存活期前不能更改密碼    "  " date +%s

2.組

1.有關組和組密碼的基本命令

 cat /etc/group    組   4列   

技術分享圖片

 組名:組密碼:GID:組成員
 組密碼:當臨時需要獲取組信息,進入時需要輸入密碼
               通常沒有密碼需要創建,沒有密碼無法臨時加入,只能root永久加入
 組成員:附加組成員

 /etc/gshadow組密碼
 grpconv 將組密碼映射到了/etc/gshadow
 grpunconv 取消組密碼的映射

技術分享圖片

 組名:組密碼:管理員:組成員

3.有關用戶和組的其他命令

1.用戶

 useradd/adduser 創建用戶
                  -u  指定UID   默認從1000開始往後

技術分享圖片

                    -o 與 -u 配合,不檢查UID的唯一性

技術分享圖片

 xiaohuihui和huitailang 同一個UID,順序優先先創建的
                  -g   指定用戶的主要組為某個已存在的組,可以指定GID也可以指定組名
                  -G  指定附加組 以逗號為間隔可以同時指定多個,組必須事先存在,可以指定GID也可以指定組名。
                  -c   註釋信息
                  -d   指定目錄路徑 ,如不指定默認在/home下與用戶同名。指定時註意,目錄名需已存在,基名不存在。
                  -s   指定登錄shell如下
                  -N  不創建私用組做主組,使用users組做主組
                  -r   創建系統用戶 (centos 6及之前的版本 < 500, centos 7 < 1000)

 usermod  修改用戶信息
                  -u NEWUID 用戶名  修改用戶的uid
                  -g NEWGID 用戶名  修改用戶的主要組  可以指定組名,也可以指定GID
                  -G GID或組名[,組名]  用戶名 設定用戶的附加組為哪些組,這前的附加組信息被覆蓋
                  -a 與-G 結合,-aG   使用可以增加用戶的附加組,而不會影響之前的附加組
                  -s shell名 用戶名   修改用戶的Shell=chsh  -s  shell 用戶名
                  -c "描述信息"  設置用戶的描述信息   =chfn
                  -d /path 用戶名  修改用戶的家目錄,新家目錄不會自動創建
                  -m                      把用戶原來家目錄下的文件移到新的家目錄
                  -d  -m                 若要創建新家目錄並移動原家數據,同時使用-m選項  

技術分享圖片

                  -l newname 用戶名   修改用戶的名稱
                  -L    lock指定用戶,在/etc/shadow 密碼欄的增加 !   等同於passwd -l
                  -U    unlock指定用戶,將 /etc/shadow 密碼欄的 ! 拿掉  等同於passwd -u
                  -e YYYY-MM-DD     指明用戶賬號過期日期
                  -f      設定非活動期限

  userdel  刪除用戶
                  -r      刪除用戶名連同家目錄及郵箱文件一起刪除

2.組

  groupadd  創建組
                  -g GID 組名  創建組

  groupmod  修改
                 -n newname 組名  修改組名
                 -g newgid 組名      修改組id

  groupdel    刪除組
                 -r  刪除組名連同成員所有的信息
  groupmems   對組成員進行操作  僅root執行
                 -g 組名 -a 用戶名  將某用戶以附加組方式加入到某組當中  
                 -g 組名 -d 用戶名  將某用戶從指定組當中踢出
                 -g 組名 -p              清空所有組成員
                 -g 組名 -l               查看指定組有哪些成員(僅顯示附加組)
groups 用戶名 
                  查看指定用戶屬於哪些組(包含主組和附加組)
   newgrp 組名(普通用戶執行)  
                 非附加組成員的普通用戶在正確輸入組密碼後可以使用該命令臨時變更主要組.
                 附加組成員的普通用戶無需輸入密碼可以使用該命令臨時變更主要組. 原主要組臨時變成附加組

    passwd username    修改密碼  
                 普通用戶改密碼 需要先輸入舊密碼 不符合要求的密碼被拒絕重新輸入
                 root改密碼          直接輸入新密碼  任意設置密碼       
    passwd  -l  鎖定用戶  實際就是在密碼位前加!!

技術分享圖片

                  -u  取消用戶鎖定 
                  -e  強制用戶下次登錄時更改密碼
                  -n  指定最短使用期限
                  -x  最大使用期限
                  -w 提前多少天開始警告
                  -i   非活動期限
                  --stdin username  從標準輸入接收用戶密碼 顯示密碼 只輸入一次 只有root可以

技術分享圖片

     gpasswd  設置組密碼  管理員可以執行
                  -a 用戶名 組名   將某用戶以附加組方式加入到某組當中  管理員可以執行
                  -d 用戶名 組名   將某用戶從指定組當中踢出                    管理員可以執行
                  -M 用戶名[,用戶名...]  組名 設置某組的用戶列表         僅root執行
                  -A 用戶名[,用戶名...]  組名  設置某組的管理員列表     僅root執行
     組管理員在不是組成員的情況下,僅能修改組密碼,和將其他人加入組和踢出組,但並不具有組成員的權限

3.其他

     id  -u   顯示UID
          -g   顯示GID
          -G  顯示用戶所屬的組的ID
          -n   顯示名稱,需配合-u -g -G使用

技術分享圖片

      su   username     表示非登錄式切換     需要輸入密碼
      su - username     表示登錄式切換
      su -                      表示登錄root
      當前用戶是root時,切換到其他用戶不要密碼

     chage (修改文件 不建議使用 容易出錯)

技術分享圖片

             -d     上一次修改時間
             -E     密碼過期時間
             -I(大寫i)      密碼過期之後賬戶過期
             -m    最小存活期
             -M    最大
             -W    提醒
             -l       顯示密碼策略   查看修改密碼信息

技術分享圖片

                示例:
                chage -d 0 tom 下一次登錄強制重設密碼
                chage -m 0 –M 42 –W 14 –I 7 tom
                chage -E 2016-09-10 tom

4.權限

1.默認權限

       chown  更改文件的所屬人,只有root可以操作
                用戶名 filename   只更改owner
                用戶名.組名 filename 或 用戶名:組名 filename  同時更改owner和group  
                如果.或:前省略,則只改group
                -R 遞歸

技術分享圖片

         chgrp  組名  filename
              文件的owner可以使用chgrp修改文件的group,但該owner一定要屬於目標group
                     -R  遞歸

技術分享圖片

         權限的表示形式

技術分享圖片

     -owner-group-other
     read-r  write-w  exe-x
     d  表示目錄

          chmod  修改權限 
               r:4              w:2             x:1
                         可以隨意組合

技術分享圖片

               -R 遞歸
               X:只給目錄及已有部分x權限的文件加上x權限,不給三個權限位完全沒有x的文件加x

文件權限                         
   當僅r權限作用在文件上的時候,用戶可以讀取該文件的內容:cat less more head tail
   當僅w權限作用在文件上的時候,用戶可以修改文件的內容:>>
   當僅x權限作用在文件上的時候,無作為.
   當rw權限作用在文件上的時候,用戶即能讀與能修改:cat less more head tail vim nano > >>
   當rx權限作用在文件上的時候,用戶可以執行該文件
   當wx權限作用在文件上的時候,權限等同於僅w權限.
 文件的常見權限是r--  rw-   rwx
目錄權限
   當僅r權限作用在目錄上的時候,用戶可以短列出目錄下的文件名.
   當僅w權限作用在目錄上的時候,無作為.
   當僅x權限作用在目錄上的時候,用戶可以進入該目錄,並且在知道具體文件名且具有相關權限的情況下,可以訪問子文件.
   當rw權限作用在目錄上的時候,權限等同於僅r權限
   當rx權限作用在目錄上的時候,用戶進入,長列出.
   當wx權限作用在目錄上的時候,用戶可以進入且可以創建及刪除文件.但不能使用文件名通配符
 目錄的常見權限r-x  rwx

2.特殊權限

      工具和文件都擁有權限
      which  查看絕對路徑

技術分享圖片

      對工具擁有權限對文件沒有權限不能查看文件

技術分享圖片

        suid權限(文件),可執行的二進制文件,可以臨時調用所屬人的權限
                    chmod u+s  臨時調用文件所屬人的權限

技術分享圖片

          sgid權限(目錄)目錄所屬組的權限
                        chmod g+s  對目錄操作了sgid權限,任何人在該目錄下所創建的文件所屬組都與該目錄的所屬組相同
          sticky權限      進行刪除操作的權限
                        chmod o+t  該目錄下的文件只能root,目錄的所屬人和文件的所屬人刪除
          權限位上原本有x的,加上特殊權限時,為小寫
                         原本沒有x的,加上特殊權限時,為大寫

技術分享圖片

           實驗:劉備關羽張飛三個用戶有一個共享目錄叫shuguo,要求三人的主組不一樣的情況下,三人在Shuguo目錄下所創建的文件,彼此之間可以讀取及修改,但不能刪除其他人創建的文件

技術分享圖片
技術分享圖片
技術分享圖片

             驗證

技術分享圖片
技術分享圖片

            文件特定權限
                         chattr +a    不能刪除,改名,修改,可以追加
                                   +i     不能刪除,改名,修改,追加

技術分享圖片
技術分享圖片
技術分享圖片

                          lsattr           查看權限及屬性

技術分享圖片

3.ACL

            acl:除了文件的所屬人,所屬組,其他,還可以進行更多的設置用戶權限
            acl生效順序:所有者,自定義用戶,自定義組,其他人
            CentOS7中的所有文件系統是劃分的文件系統均已默認開啟acl 
            CentOS6隨著操作系統安裝所有文件系統是話費的文件系統均已默認開啟acl

技術分享圖片

     為多用戶或者組的文件和目錄賦予訪問權限rwx
             getfacl      查看權限信息
             setfacl  -m  設置user的acl權限
                          -x    刪除設置的user的acl權限

技術分享圖片技術分享圖片

              setfacl  -b    刪除權限包括acl權限屬性

技術分享圖片
技術分享圖片

               setfacl  -m  m   設置權限上限閥值,修改權限無法超過上限閥值,不顯示但是是有效的

技術分享圖片

               setfacl  -d -m
                           -m d        設置默認權限

技術分享圖片技術分享圖片

            setfacl  -k      清除默認權限

技術分享圖片

            setfacl  -Rm   遞歸設置,設置的目錄及該目錄下的所有目錄和文件都被設置權限

技術分享圖片技術分享圖片

                setfacl  -M   file1   file2     file1是寫有權限的文件,把寫有的權限設置file2

技術分享圖片
技術分享圖片
技術分享圖片
技術分享圖片

                setfacl  -X   file1    file2     file1是寫有取消權限的文件,對file2進行取消權限設置

        acl權限的備份及還原

技術分享圖片技術分享圖片

     umask值
       umask值可以存儲在/etc/bashrc當中,使所有用戶均被設置
                 也可以存在~/.bashrc只對某用戶設置
    文件最高權限  666
        目錄最高權限  777
        默認權限=最高權限-umask
        文件權限,如果umask 有奇數,也就是含有-x ,計算完要加1

技術分享圖片

5.其他

    手工創建家目錄的方法
            mkdir /home/username
            chmod 700 /home/username/
            cp -r /etc/skel/.[^.]*  /home/username/   
       (..為上一級目錄,/etc/skel   新創建的用戶的初始化環境變量腳本都在這個目錄下)
            chown -R username.usename /home/username

技術分享圖片

        cat /etc/passwd |grep username  檢索
                                  |grep -E "maidou|biubiu"  同時都檢索

技術分享圖片
技術分享圖片
技術分享圖片

2.文本處理工具

1.各種文本工具來查看、分析、統計文本

           cat  查看
                cat  -E  顯示換行符$

技術分享圖片

                cat  -n 輸出的結果前顯示行號

技術分享圖片

                cat  -v 顯示^M,即windows的換行符
                 cat  -T 顯示^I     即tab
                cat  -A = -EvT                                          
                cat  -b 輸出的結果前顯示行號,非空行不參與排列

技術分享圖片

                cat  -s 將連續的空行壓縮為一行

技術分享圖片

           head   向前截取
                  head  -c   N    指定截取前N字節
                  head  -n   N    指定截取前N行
                head  -N     指定獲取N行

技術分享圖片技術分享圖片

                         tail  向後截取
                              tail  -c N    指定截取後N字節
                              tail  -n N    指定截取後N行
                            tail  -N     指定截取N行
                            tail  -f    跟蹤顯示文件新追加的內容,常用於日誌監控

技術分享圖片
技術分享圖片技術分享圖片技術分享圖片技術分享圖片

                         cut  切割
                             cut  -d    指明分隔符
                             cut  -f  N ; N,N ; N-N    指明字段
                             cut  -c    按字符一個一個切割
                             cut  --output-delimiter="  "     指定輸出分隔符

技術分享圖片技術分享圖片

                            paste    合並倆個文件,同行的內容在一行顯示
                                  paste  -d 分隔符:指定分隔符,默認用TAB
                                  paste  -s : 所有行合成一行顯示

技術分享圖片技術分享圖片技術分享圖片

                    wc   文本數據統計
                       wc  -l     行數
                       wc  -w    單詞總數
                       wc  -c    字節總數
                       wc  -m    字符總數

技術分享圖片

                   sort     排序
                        sort  -r 反方向(由上至下)整理
                        sort  -n    按數字大小整理

技術分享圖片技術分享圖片

                        sort  -f 忽略(fold)字符串中的字符大小寫

技術分享圖片

                        sort  -u  (獨特, unique)刪除輸出中的重復行

技術分享圖片

                        sort  -t c   使用c做為字段界定符
                        sort  -k X  列

技術分享圖片

                    uniq   刪除重復的行數
                         uniq  -c: 顯示每行重復出現的次數
                         uniq  -d: 僅顯示重復過的行
                         uniq  -u: 僅顯示不曾重復的行
                連續且完全相同方為重復

技術分享圖片技術分享圖片

                    diff f1 f2     比較2文件之間的區別

技術分享圖片

                     patch  復制其他文件進行的改變

技術分享圖片技術分享圖片

2.grep

            grep       關鍵字高亮顯示
            grep  -v     反向搜索
            grep  -i     忽略大小寫
            grep  -n    顯示行號
            grep  -c    不顯示搜索結果,僅顯示匹配的行數
            grep  -o    僅顯示匹配到的字符串
            grep  -q    靜默輸出
            grep  -A  N    顯示搜索行及其向下相臨的N行
            grep  -B  N    顯示搜索行及其向上相臨的N行
            grep  -C  N    顯示搜索行及其向上和向下相臨的N行
            grep  -e          -e   多個選項間or關系
            grep  -w   匹配整個單詞

技術分享圖片技術分享圖片技術分享圖片技術分享圖片技術分享圖片技術分享圖片

3.正則表達式

元字符

技術分享圖片

位置錨定:定位出現的位置
         ^    行首錨定,用於模式的最左側
         $    行尾錨定,用於模式的最右側
         ^    ..     $    用於模式匹配整行
         ^$ 空行
         ^[[:space:]]\*$    空白行
         \<   詞首錨定,用於單詞模式的左側
         \>   詞尾錨定;用於單詞模式的右側
         \<  ..  \>    匹配整個單詞

分組
         \(  ..  \) 將一個或多個字符捆綁在一起,當作一個整體進行處理,如: \(root\)
         \1, \2, \3, ..    分組括號中的模式匹配到的內容會被正則表達式引擎記錄於內部的變量中
         \1 表示從左側起第一個左括號以及與之匹配右括號之間的模式所匹配到的字符
         後向引用:引用前面的分組括號中的模式所匹配字符, 而非模式本身

技術分享圖片

           \|     或者

技術分享圖片

4.擴展正則表達式

元字符

技術分享圖片

  egrep
        egrep=grep  -E
        fgrep=grep  -F   不支持正則表達式

3.vim文本編輯器

      vim
         三種主要模式
                 命令模式 (default): 移動光標,復制,剪切,粘貼,撤銷,重做,搜索,進入其他模式
                       移動光標:                 k
                                                             h    j     l
                               配合 !h,!l, ! j, ! k可一次性移動 ! 個字符
                               w   跳到下一個單詞的詞首
                               b   跳到上一個單詞的詞首
                               H   跳到當前頁首
                               M   跳到當前頁中
                               L   跳到當前頁尾
                               gg   跳到整個文件的首行
                               G   跳到整個文件的末行
                               ^   移到非空格開頭的行首
                               $   移到行尾
                               !G   跳到指定 ! 行,或退出模式下 : !
                         r   替換一個字符
                         d   剪切
                               dd   剪切當前行
                               !dd   剪切 ! 行
                                dw   剪切一個單詞
                                d^   從光標所在處剪切到行首
                                d$或D   從光標所在處剪切到行尾
                          y   復制
                               yy或Y   復制當前行
                               ! yy   復制 ! 行
                               yw   復制一個單詞
                               y^   從光標所在處復制到行首
                               y$   從光標所在處復制到行尾
                          p   粘貼
                               p   當前行向下粘貼或光標所在處向後粘貼
                               P   當前行向上粘貼或光標所在處向前粘貼
                          替換模式 R進入 Esc退出
                          從命令模式進入插入模式
                          插入模式:文本編輯
                               i   光標在哪從哪進入
                               I   光標移至行首同時進入插入模式
                               a   光標向後移一個字符同時進入插入模式
                               A   光標移至行尾同時進入插入模式
                               o   光標向下插入一新行同時進入插入模式
                               O   光標向上插入一新行同時進入插入模式
                          退出模式:保存、退出
                                w   保存
                                q    退出
                                q!   強制退出
                                wq或x   保存並退出
                                w!當前用戶為該文件所屬人時,如果該文件為read only,可加上!強制保存。
                           在退出模式下返回命令模式EscEsc或Enter
                                r /path/filename    讀取另一個文件的內容並將輸出結果寫入文件
                                w /path/filename   另存為(確認當前用戶對該路徑中的最後一級目錄有wx權限)
                                ! command    執行某條命令,將輸出結果顯示在終端上
                                r! command   執行某條命令,在光標所在的當前行向下插入新行並將輸出結果輸入
                                .! command   執行某條命令,替換光標所在的當前行並將輸出結果輸入
                            搜索
                                ?關鍵字
                                      n向上找      N向下找

Linux學習(二)