8.1_Linux管道的使用和用戶管理

什么是管道?

wKioL1ef9n7xilg1AABhH_ly20w292.png

管道就是把命令1的標準輸出發送給命令2的標準輸入,把命令2發的標準輸出發送給命令3的標準輸入。。。

最后一個命令會在當前shell進程的子shell進程中執行用來

管道實現了使用目的單一的小程序,組合小程序完成復雜的任務

管道需要配合其他命令的使用

tr命令的使用,常常用于配合管道

    -c或--complerment:取字符集的補集
    -d或--delete:刪除所有屬于第一字符集的字符;
    -s或-squeeze-repeats:把連續重復的字符以單獨一個字符表示
    -t或--truncate-set1:先刪除第一字符集較第二字符集多出的字符
    \NNN      八進制值為NNN 的字符(1至3個數位)
    \\        反斜杠
    \a        終端鳴響
    \b        退格
    \f        換頁
    \n        換行
    \r        回車
    \t        水平制表符
    \v        垂直制表符
   [:alnum:]    所有的字母和數字
   [:alpha:]    所有的字母
   [:blank:]    所有呈水平排列的空白字符
   [:cntrl:]    所有的控制字符
   [:digit:]    所有的數字
   [:graph:]    所有的可打印字符,不包括空格
   [:lower:]    所有的小寫字母
   [:print:]    所有的可打印字符,包括空格
   [:punct:]    所有的標點字符
   [:space:]    所有呈水平或垂直排列的空白字符
   [:upper:]    所有的大寫字母
   [:xdigit:]   所有的十六進制數
   [=字符=]     所有和指定字符相等的字符

例如 ls | tr 'a-z' 'A-Z' 配合ls 命令把所有標準輸出的小寫字母都轉換成大寫字母

[root@centos6 ~]# ls -l | tr 'a-z' 'A-Z'
TOTAL 124
-RW-R--R--. 1 ROOT ROOT   860 JUL 28 17:33 1TEST
-RW-R--R--. 1 ROOT ROOT   909 JUL 28 17:34 2TEST
-RW-------. 1 ROOT ROOT  1482 JUL 20 17:25 ANACONDA-KS.CFG
-RW-R--R--. 1 ROOT ROOT    43 AUG  1 10:47 A.TXT
DRWXR-XR-X. 2 ROOT ROOT  4096 JUL 22 12:51 DESKTOP
DRWXR-XR-X. 2 ROOT ROOT  4096 JUL 20 21:24 DOCUMENTS
DRWXR-XR-X. 2 ROOT ROOT  4096 JUL 20 21:24 DOWNLOADS
-RW-R--R--. 1 ROOT ROOT     0 JUL 28 10:18 F[A-Z]
-RW-R--R--. 1 ROOT ROOT     0 JUL 28 10:18 F{A-Z}
-RW-R--R--. 1 ROOT ROOT     0 JUL 28 10:18 F[A-Z]
-RW-R--R--. 1 ROOT ROOT 55348 JUL 20 17:24 INSTALL.LOG
-RW-R--R--. 1 ROOT ROOT 10608 JUL 20 17:20 INSTALL.LOG.SYSLOG
DRWXR-XR-X. 2 ROOT ROOT  4096 JUL 20 21:24 MUSIC
DRWXR-XR-X. 2 ROOT ROOT  4096 JUL 20 21:24 PICTURES
DRWXR-XR-X. 2 ROOT ROOT  4096 JUL 20 21:24 PUBLIC
DRWXR-XR-X. 2 ROOT ROOT  4096 JUL 20 21:24 TEMPLATES
DRWXR-XR-X. 2 ROOT ROOT  4096 JUL 20 21:24 VIDEOS
DRWXR-XR-X. 9 ROOT ROOT  4096 OCT 19  2015 VMWARE-TOOLS-DISTRIB

tee命令,常常用于配合管道

NAME
       tee - read from standard input and write to standard output and files
           # 用來將標準輸入的內容輸出到標準輸出并可以保存為文件
SYNOPSIS
       tee [OPTION]... [FILE]...
DESCRIPTION
       Copy standard input to each FILE, and also to standard output.
       -a, --append
              append to the given FILEs, do not overwrite
              # 附加到指定文件,并且不覆蓋
       -i, --ignore-interrupts
              ignore interrupt signals
              # 忽略中斷的信號
       --help display this help and exit
              # 顯示幫助和退出
       --version
              output version information and exit
              # 顯示版本信息和退出·
       If a FILE is -, copy again to standard output.
       # 如果文件類型是文件,復制文件文件到標準輸出。

$命令1 | tee文件名| 命令2

把命令1的標準輸出保存在文件名中,然后管道輸入給命令2

使用:

     保存不同階段的輸出

     復雜管道的故障排除

     同時查看和記錄輸出

用戶管理

什么是用戶?用戶資源獲取標識符,資源分配,安全權限模型的核心要素之一

沒用用戶,可否? 答案是YES

Linux用戶類別:

    管理員UID:root,0

    系統用戶UID:1-499(CentOS 6),1-1000(CentOS 7)

    登陸用戶UID:500+(CentOS 6),1000+(CentOS 7)

用戶組類別:

    管理員組GID:root,0

    系統組GID:1-499(CentOS 6),1-1000(CentOS 7)

    普通組GID:500+(CentOS 6),1000+(CentOS 7)

Linux組的類別:

     

用戶的主要組(主組、屬主):

    用戶必須屬于一個且只有一個主組

    組名同用戶名,且僅包含一個用戶:私有組

用戶的附加組(輔助組、屬組):

    一個用戶可以屬于零個或多個輔助組

CentOS6和7的默認UID和GID不同,這個是由于/etc/login.defs文件里面的默認值所決定的

CentOS 6 UID和GID默認值

wKiom1egC9bSuxIAAAAkwAzZhvU369.png

CentOS 7 UID和GID默認值

wKioL1egC9bAeHcFAABGjOhu7ec016.png

Linux用戶和組的主要配置文件

/etc/passwd:用戶及其屬性信息(名稱、UID、主組ID等)

該文件里面一共有7項,包括

# [root@centos ~]# cat /etc/passwd
# root(用戶名):x(密碼):0(UID):0(GID):root(注釋):/root(家目錄):/bin/bash(默認SHELL)

假如把普通用戶的UID更改成0,該普通用戶會變成管理員賬號,因為在Linux系統里面,識別管理員是否為管理員,就是查看用戶的UID號碼,為0則為管理員,在生產環境中,可能會把管理員root的賬號改成其他名字,這樣做是以防止黑客攻擊root賬號來進行破解。

/etc/group:組及其屬性信息

# [root@centos ~]# cat /etc/group
# root(主組):x(組密碼):0(GID):gentoo(附加組的用戶列表)

/etc/shadow:用戶密碼及其相關屬性

# [root@centos ~]# cat /etc/shadow
# root(用戶名):$6$(加密方式)jyarrud3(隨機數,俗稱鹽)$6AbktjO7BD7hQAMNK.Xx6YO7Tj3ooj9tEcclql5kCZ18Tvt7erKxPv212ssT32SFMEms0WegjsNhS0miktlkd0(用戶密碼):17008(最近更改密碼的日期,從1970年1月1號開始算):0(密碼再過幾天可以被更改):99999(密碼過期時間):7(密碼過期前提醒時間):(密碼過期后幾天賬號會被鎖定):(從1970年1月1日算起,多少天后帳號失效):(保留)

上面這個設置了密碼的用戶顯示的

現在我們再新建一個用戶看看

[root@centos6 ~]# useradd wan
[root@centos6 ~]# tail -1 /etc/shadow
wan:!!:17015:0:99999:7:::

我們會看見賬號密碼那里有兩個!!,這表示賬號被鎖定,沒有密碼的話不允許該用戶去登陸,假如有密碼,但是那里還是有一個嘆號的話,也表示賬號被鎖定,不對用戶進行解鎖的話該用戶將無法登陸。假如沒有嘆號的話,該用戶可以沒有密碼的情況下面直接登陸。不過該功能只能在CentOS 5版本和更老的版本可以實現,為了安全起見,從CentOS 6以后已經修正此問題。

/etc/gshadow:組密碼及其相關屬性

# cat /etc/gshadow
# root/(主組):(組密碼):(組管理員列表):gentoo(附加組的用戶列表)

注意:為安全起見,現在一般都沒有組密碼,直接管理員指派,因為當其他用戶知道了組密碼,可以隨意加入該組,這樣的話就顯得不安全。

用戶和組管理命令

用戶管理命令

useradd [options] LOGIN 增加用戶

   -u  UID:指定UID

   -o  配合-u選項使用,不檢查UID的唯一性,

   -g  GID:指定GID,即用戶的主組,但GID要事先存在

   -G  GID:指定用戶的額外組,但GID要事先存在

   -N  不創建私用組做主組,使用users組做主組

   -d  目錄: 指定家目錄

   -m  創建用戶時,強制給用戶創建家目錄

   -M  創建用戶時,但不創建家目錄

   -c  備注:注釋

   -s  shell:指定默認shell,應該指定使用/etc/shells文件中出現的shell

   -r  創建系統用戶 特點:CentOS 6: ID<500,CentOS 7: ID<1000 默認shell為/sbin/nologin

   -D  顯示或更改默認設置  (默認值設定:/etc/default/useradd文件中)(此命令相當于cat /e    tc/default/useradd)

[root@centos6 ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

該命令,可以查看到創建用戶時候的各項默認值

例如更改其他用戶默認的家目錄和默認SHELL之類等等的參數就在這里面

/etc/skel    家目錄文件的來源,在此文件夾里面新建文件的話,創建新用戶的時候會連指定的新文件一并創建  

/etc/login.defs  一些用戶和組等創建的默認設置的文件

usermod [options] LOGIN 修改指定用戶(跟useradd命令使用方法類似)

    -u UID 更改用戶的UID

    -g GID 更改用戶的GID

    -G 附加組,配置-a 追加新的組,否則為覆蓋

    -s SHELL 更改用戶的默認SHELL

    -c 注釋

    -d home,跟-m同時用移動家目錄數據

    -m 移動家目錄數據,跟-d同時用

    -l 新的名字,把用戶改名

    -e 指定過期日期 YYYY-MM-DD

    -f 設定非活動期限

    -L 鎖定指定用戶,在/etc/shadow 里面加!    (同以上/etc/shadow的解釋)

    -U 解鎖用戶,將/etc/shadow 里面的!號拿掉    (同以上/etc/shadow的解釋)

userdel [options] LOGIN 刪除指定用戶

    -r 連同家目錄和郵箱一起刪除

用戶組管理命令

groupadd [options] group 添加指定組

    -g:指定用戶的GID

groupmod [options] GROUP 修改指定組

    -g: 修改組的GID

    -n: 修改組的組名

groupdel [options] GROUP 刪除指定組

groupmems -a user_name | -d user_name | [-g group_name] | -l | -p  (CentOS 7才有此命令)

    -l -g 用戶名: 查看指定用戶名組下面還有哪些用戶屬于此組

    -a    要增加的組 -g 用戶:   增加附加組

切換用戶或以其他用戶身份執行命令

切換用戶的方式:

su UserName:非登錄式切換,即不會讀取目標用戶的配置文件,不改變當前工作目錄

su – UserName:登錄式切換,會讀取目標用戶的配置文件,切換至家目錄,完全切換

root su至其他用戶無須密碼;非root用戶切換時需要密碼

換個身份執行命令:

su [-] UserName-c 'COMMAND'

選項:-l –login:

su -l UserName相當于su-UserName

查看用戶相關的ID信息

id [OPTION]… [USER]

    -u: 查看用戶的UID

    -g: 查看用戶的GID

    -G: 查看用戶的Groups

    -n: 查看用戶的Name

getent  passwd,shadow,gourp,gshadow  USERNAME/GROUPNAME

直接查看指定用戶/組里面的passwd,shadow,gourp,gshadow文件里面的內容

其他命令總結:

chsh:修改默認的shell

chfn:修改用戶注釋

vipw:使用vim來編輯passwd文件

vigr:使用vim來編輯group文件

pwconv:pwconv命令用來開啟用戶的投影密碼

pwunconv:pwconv命令用來關閉用戶的投影密碼

    Linux系統里的用戶和群組密碼,分別存放在名稱為passwd和group的文件中, 這兩個文件位于/etc目錄下。因系統運作所需,任何人都得以讀取它們,造成安全上的破綻。投影密碼將文件內的密碼改存在/etc目錄下的shadow和gshadow文件內,只允許系統管理者讀取,同時把原密碼置換為"x"字符,有效的強化了系統的安全性。 

openssl rand base64 10  隨機生成10位數

批量增加用戶和改密碼

newusers FILE(有格式的文件)  批量加用戶  文件格式  /etc/passwd 文件的格式 root:x:0:0::/root:/bin/bash

ex. newusers user.txt

chpasswd FILE (有格式的文件) 批量改密碼   USERNAME:PASSWORD

ex. cat p.txt |chpasswd

注意,按照以上步驟的方法批量添加完用戶和密碼以后,這些用戶的家目錄里面并沒有配置,此時需要我們手動把這里面的配置復制到它們的家目錄里面

/etc/skel 這個文件甲下面的文件是關于用戶初始配置里面的變量文件之類

cp -r /etc/skel/.[^.]* /home/USERNAME

原創文章,作者:~微風~,如若轉載,請注明出處:http://www.www58058.com/32142

(0)
~微風~~微風~
上一篇 2016-08-10 10:15
下一篇 2016-08-10 10:22

相關推薦

  • 馬哥教育21期網絡班—第五周課程+練習

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; grep "^[[:space:]]\+" /boot/grub/grub.conf 2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行; grep "…

    Linux干貨 2016-07-29
  • RAID解說

    RAID(RedundantArrays of Inexpensive Disks,RAID),又叫獨立的磁盤陣列。有“價格便宜具有冗余能力的磁盤陣列”之意。原理是利用數組方式來作磁盤組,配合數據分散排列的設計,提升數據的安全性。磁盤陣列是由很多價格較便宜的磁盤,組合成一個容量巨大的磁盤組,利用個別磁盤提供數據所產生加成效果提升整個磁盤系統效能。利用這項技術…

    2017-03-14
  • 0804練習與作業

    0804練習與作業 練習  1 、找出ifconfig 命令結果中本機的所有IPv4 地址 答: 使用cut將電腦的IP地址提取出來。   經過觀察,這些信息極為不規則,沒有明顯的分隔符。這時們需要首先提取出IP地址所在的行,然后去定義一個合適的分隔符,再利用cut進行提取即可。(思路:化繁為簡,化不規則為規則,這樣才能更好的套用我們的命…

    Linux干貨 2016-08-08
  • 文件權限管理

    文件權限               [root@CentOS6 ~]# ll 3.txt            &nb…

    Linux干貨 2016-08-04
  • DNS快速入門、正反向解析……

    DNS服務原理詳解 因特網上作為域名和IP地址相互映射的一個分布式數據庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。通過主機名,最終得到該主機名對應的IP地址的過程叫做域名解析。 我們在訪問一個網站的時候,只要輸入該網站的網址就會跳轉到該網站頁面,而實現這一過程就需要DNS服務器將域名解析為IP地址,進而實現數據通信。 DNS:…

    2017-06-03
  • 馬哥第一天

    來這兒的第一天

    2018-03-26
欧美性久久久久