用戶和組

用戶和組

touch /etc/nologin
    系統做維護時不想普通用戶登錄,就可以創建這個文件,也可以在里面寫一些提示。
    維護完之后刪除這個文件就可以自動恢復
    
touch /run/nologin
    與上述命令功能相同,但是這個命令只有在CentOS7上可以用。
用戶(USER)
根據所具有權限的不同,用戶分為兩類:
    管理員用戶:root,UID為0.(只有管理員用戶才能為0)
    普通用戶:UID  1-65535
        普通用戶又可以分為兩類:
        系統用戶:保障系統運行的用戶,一般不提供密碼登錄系統,其UID為1-499(CentOS6)、1-1000(CentOS7)之間.
        登錄用戶:即一般用戶,其使用系統的權限受限,其UID為500-60000(CentOS6)、1000-60000(CentOS7)之間.(一般默認使用到60000)
        名稱解析:名稱轉換
            Username<-->UID
                根據名稱解析庫進行:/etc/passwd
組(group)
Linux組:Groupname /  GID
    與用戶一樣,組也是分為兩類:
        管理員組:root  0 
        普通組:
            系統組:1-499(CentOS6)、1-999(CentOS7)
            普通組:500-60000(centos6)、1000-60000(CentOS7)
組的類別:
    主組:(主要組,基本組):
        用戶必須擁有和屬于一個主組,主組有且只有一個。
        主組名與用戶名相同,且僅包含一個用戶:是私有組。
        
    附加組:(輔助組)
        一個用戶可以屬于零個或一個或多個附加組
            
    名稱解析:名稱轉換
        groupname<--->gid
            解析庫:/etc/group
用戶和組的配置文件
Linux 用戶和組的主要配置文件:   
         /etc/passwd :用戶及其屬性信息( 名稱、UID 、主組ID 等)    
         /etc/group :組及其屬性信息    
         /etc/shadow :用戶密碼及其相關屬性    
         /etc/gshadow:組密碼及其相關屬性
  • passwd文件格式

     login name :登錄用名
     passwd :密碼
     UID號 :用戶身份編號
     GID :用戶所屬主組的ID號
     GECOS :用戶全名或注釋
     home directory(家目錄) :用戶主目錄 
     shell :用戶默認使用shell
  • shadow文件格式

登錄用名:
    用戶密碼: 一般用sha512 加密
    最近一次修改密碼的時間:從1970 年1 月1 日起到密碼最近一次被更改的時間         
    最短使用期限:密碼再過幾天可以被變更(0 表示隨時可被變更)
    最長使用期限:密碼再過幾天必須被變更(99999 表示永不過期)
    警告期段:密碼過期前幾天系統提醒用戶(默認為一周)
    密碼過期幾天后帳號會被鎖定
    從1970 年1 月1 日算起,多少天后帳號失效。
  • group文件格式

    群組名稱:就是群組名稱
      群組密碼:通常不需要設定,密碼是被記錄在/etc/gshadow
      GID的 :就是群組的 ID
      以當前組為附加組的用戶列表(分隔符為逗號)
  • gshadow文件格式

    群組名稱:就是群組名稱
      群組密碼:
      組管理員列表:組管理員的列表,更改組密碼和成員
      以當前組為附加組的用戶列表:(分隔符為逗號)
  • 密碼加密

    加密機制:
          加密:明文-->  密文
          解密:密文-->  明文
      單向加密:哈希算法,原文不同,密文必不同
          相同算法定長輸出,獲得密文不可逆推出原始數據
          雪崩效應:初始條件的微小改變,引起結果的巨大改變
          md5: message digest, 128bits
          sha1: secure hash algorithm, 160bits
          sha224: 224bits
          sha256: 256bits
          sha384: 384bits
          sha512: 512bits
      更改加密算法 authconfig --passalgo=sha256 -- update
  • 用戶和組的管理命令

    用戶管理命令
          useradd    增加用戶
          usermod    修改用戶屬性
          userdel    刪除用戶
      組帳號維護命令
          groupadd    增加組
          groupmod    修改組屬性
          groupdel    刪除組

用戶創建

  • useradd

    useradd [options] login_name
      參數:
    
          -u UID:手動指定用戶UID,默認的話是上一個用戶的UID+1
              [root@localhost ~]# tail -2 /etc/passwd
              sarah:x:2009:2010::/home/sarah:/sbin/nologin
              haha:x:2010:2011::/home/haha:/bin/bash
              [root@localhost ~]# useradd haha2
              [root@localhost ~]# tail -2 /etc/passwd
              haha:x:2010:2011::/home/haha:/bin/bash
              haha2:x:2011:2012::/home/haha2:/bin/bash
    
    
          -o  配合-u  選項,不檢查UID 的唯一性
              [root@localhost ~]# useradd -ou 2011 haha3
              [root@localhost ~]# tail -2 /etc/passwd
              haha2:x:2011:2012::/home/haha2:/bin/bash
              haha3:x:2011:2013::/home/haha3:/bin/bash
    
    
          -g GID :指明用戶所屬基本組,可為組名,也可以GID
              [root@localhost ~]# useradd -g root haha4
              [root@localhost ~]# id haha4
              uid=2012(haha4) gid=0(root) groups=0(root)
              
          -c  "COMMENT" :用戶的注釋信息
              [root@localhost ~]# useradd -c "kuailederen haha4" haha5
              [root@localhost ~]# getent passwd haha5
              haha5:x:2013:2014:kuailederen haha4:/home/haha5:/bin/bash
    
    
          -d  HOME_DIR: 以指定的路徑( 不存在) 為家目錄
              [root@localhost ~]# useradd -d /home/hahatest/ haha6
              [root@localhost ~]# getent passwd haha6
              haha6:x:2014:2015::/home/hahatest/:/bin/bash
    
    
          -s  SHELL :  指明用戶的默認shell 程序可用列表在/etc/shells 文件中
              [root@localhost ~]# useradd -s /bin/csh/ haha7
              [root@localhost ~]# getent passwd haha7
              haha7:x:2015:2016::/home/haha7:/bin/csh/
    
          -G  GROUP1[,GROUP2,...] :為用戶指明附加組,組必須事先存在
              [root@localhost ~]# usermod -G bin haha6
              [root@localhost ~]# getent passwd haha6
              haha6:x:2014:2015::/home/hahatest/:/bin/bash
              [root@localhost ~]# groups haha6
              haha6 : haha6 bin
       
          -N  不創建私用組做主組,使用users 組做主組
              [root@localhost ~]# useradd -N haha8
              [root@localhost ~]# groups haha8
              haha8 : users
    
          -r:  創建系統用戶 CentOS 6: ID<500 ,CentOS 7: ID<1000
              [root@localhost ~]# useradd -r haha9
              [root@localhost ~]# groups haha9
              haha9 : haha9
              [root@localhost ~]# id haha9
              uid=991(haha9) gid=986(haha9) groups=986(haha9)
              [root@localhost ~]# getent passwd haha9
              haha9:x:991:986::/home/haha9:/bin/bash
  • 創建用戶是的默認值在文件:

    默認值設定:/etc/default/useradd 文件中
      顯示或更改默認設置:
          useradd -D
          useradd –D -s SHELL
  • 新建用戶相關的文件和命令

    /etc/default/useradd      /etc/skel/*  
          /etc/login.defs
          newusers passwd 格式文件 批量創建用戶
          chpasswd 批量修改用戶口令
批量創建用戶
newusers file (file 里是要批量創建的用戶的配置信息)
file
  (hehe1:x:2000:2000::/home/hehe1:/bin/bash
    hehe2:x:2001:2002::/home/hehe2:/bin/bash
    hehe3:x:2002:2002::/home/hehe3:/bin/bash
    hehe4:x:2003:2003::/home/hehe4:/bin/bash
    hehe5:x:2004:2004::/home/hehe5:/bin/bash
    )
批量修改用戶密碼
cat file |  chpasswd
file(用戶名 :密碼)
    (hehe :12345
    hehe2:redhat    hehe3:centos
    )
新創建的家目錄里面沒有配置文件登錄時候會出錯,恢復家目錄文件的方法是:
   (1) [root@localhost skel]# cp -r /etc/skel/.[^.]* /home/hehe2
    [root@localhost skel]# cd /home/hehe3
    [root@localhost hehe3]# ls -a 
    .  ..
    [root@localhost hehe3]# cd
    [root@localhost ~]# 
    [root@localhost ~]# cd /home/hehe2
    [root@localhost hehe2]# ls -a
    .  ..  .bash_logout  .bash_profile  .bashrc  .mozilla
    
    附加方法:
        (2)cp  -r `ls -A` /home/hehe3/
                此方法只能在進入到skel目錄里才行                  
                不能在其他目錄下操作此命令
        (3)cp -r /etc/skel/. /home/hehe3/

用戶屬性修改

usermod [OPTION] login_name 
    -u UID:  新UID
    -g GID:  新基本組
    -G GROUP1[,GROUP2,...[,GROUPN]]] :新附加組,原來的附加組將會被覆蓋;若保留原有,則要同時使用-a 選項,表示append; ;
    -s SHELL :新的默認SHELL;
    -c 'COMMENT' :新的注釋信息;
    -d HOME:  新家目錄不會自動創建,原家目錄中的文件不會同時移動至新的家目錄;若要創建新家目錄并移動原家數據,同時使用-m選項
    -l login_name:  新的名字;
    -L: lock 指定用戶, 在/etc/shadow  密碼欄的增加 !
    -U: unlock 指定用戶,將 /etc/shadow 的 密碼欄的 !  拿掉
    -e YYYY-MM-DD:  指明用戶賬號過期日期;
    -f INACTIVE:  設定非活動期限;   
                   
        [root@localhost ~]# getent passwd haha5
        haha5:x:2013:2014:kuailederen haha4:/home/haha5:/bin/bash
        [root@localhost ~]# id haha5
        uid=2013(haha5) gid=2014(haha5) groups=2014(haha5)
        [root@localhost ~]# groups haha5
        haha5 : haha5
        [root@localhost ~]# usermod -u 2345 -g root -G bin -s /bin/csh -c "nihaohaha" -d /home/testdir/newhaha5 -m -l newhaha5 haha5
        [root@localhost ~]# getent passwd newhaha5
        newhaha5:x:2345:0:nihaohaha:/home/testdir/newhaha5:/bin/csh
        [root@localhost ~]# id newhaha5
        uid=2345(newhaha5) gid=0(root) groups=0(root),1(bin)
        [root@localhost ~]# groups newhaha5
        newhaha5 : root bin

查看用戶相關id信息

id [OPTION]... [USER]
    -u: UID    -g: GID    -G: Groups    -n: Name
刪除用戶
userdel [option]... login_name
        -r 刪除用戶家目錄
用戶和組相關操作命令
pwunconv 密碼不轉換
        passwd unconv
    pwconv密碼轉換
        passwd conv
    chsh -s :改shell類型
    getent passwd 用戶名:看用戶信息
    getent shadow 用戶名:
    usermod -U tom:解鎖用戶密碼限制(創建用戶沒有設置密碼時)
    usermod -L tom鎖定,鎖定后禁止用戶登錄,但是可以切換
    openssl rand -base64 10(位數)自動生成指定位數密碼
    chage -d0 用戶名 修改距離1971年天數
    passwd -e 用戶名,將用戶距離1971年天數置零
    finger 
    gpasswd 組名:給組設置口令

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

su [options...] [-] [user [args...]]
切換用戶的方式:    
    su UserName :非登錄式切換,即不會讀取目標用戶的配置文件,不改變當前工作目錄    
    su - UserName:登錄式切換,會讀取目標用戶的配置文件,切換至家目錄,完全切換
    root su 至其他用戶無須密碼;
    非root用戶切換時需要密碼
換個身份執行命令:
su [-] UserName -c 'COMMAND'
        選項:
            -l --login_name:             
                su -l UserName 
                    相當于 su - UserName
設置密碼
passwd [OPTIONS] UserName:  修改指定用戶的密碼,僅root 用戶權限
        passwd:  修改自己的密碼;
  常用選項:
        -l: 鎖定指定用戶        
        -u: 解鎖指定用戶        
        -e: 強制用戶下次登錄修改密碼        
        -n mindays:  指定最短使用期限        
        -x maxdays :最大使用期限        
        -w warndays :提前多少天開始警告        
        -i inactivedays :非活動期限;        
        --stdin :從標準輸入接收用戶密碼;        
        echo " PASSWORD " | passwd --stdin USERNAME
修改用戶密碼策略
chage [OPTION]... LOGIN
    -d LAST_DAY    
    -E, --expiredate EXPIRE_DATE    
    -I, --inactive INACTIVE   
    -m, --mindays MIN_DAYS    
    -M, --maxdays MAX_DAYS    
    -W, --warndays WARN_DAYS    
    –l,顯示密碼策略

創建組

groupadd [OPTION]... group_name
    -g GID:  指明GID 號;[GID_MIN, GID_MAX],默認情況下是上一個組的GID+1
    -r:  創建系統組;
        CentOS 6: ID<500
        CentOS 7: ID<1000

修改和刪除組

組屬性修改;groupmod
    groupmod [OPTION]... group
        -n group_name:  新名字        
        -g GID:  新的GID組刪除:groupdel
    groupdel GROUP_NAME
更改組密碼
組密碼:gpasswd
         gpasswd [OPTION] GROUP
        -a user:  將user 添加至指定組中;
        -d user:  從指定組中移除用戶user
        -A user1,user2,...:設置有管理權限的用戶列表
    newgrp 命令:臨時切換基本組;
        如果用戶本不屬于此組,則需要組密碼

原創文章,作者:dxkboke,如若轉載,請注明出處:http://www.www58058.com/28164

(0)
dxkbokedxkboke
上一篇 2016-08-03 19:46
下一篇 2016-08-04 08:25

相關推薦

  • 網絡管理

    說起網絡,大家都不陌生,因為大家天天上網嘛,連路邊老大爺都會聊微信了,但是我們所了解的網絡只是茫茫網絡大海中的一葉扁舟,網絡的范圍其實有很大,里面涉及的東西也非常多,現在讓小編帶你一點一點去了解它吧,相信大家看了之后,會有不一樣的體會呢! 1、 什么是網絡? 網絡是由節點和連線構成,表示諸多對象及其相互聯系。在數學上,網絡是一種圖,一般認為專指加權圖。網絡除…

    2017-09-02
  • sed簡介及常見用法

    sed是一個文本流處理器,配合正則表達式用可以實現很多文本處理操作。 和grep一樣,sed是一行一行的處理的。sed處理文本時,首先會將源文件復制一份到內存中,然后將文本一行一行拿到模式空間內進行操作,最后輸出到標準輸出,即屏幕上。 在模式空間中,每一行都會根據用戶給的條件進行匹配,匹配到了進行編輯后輸出,沒有匹配到,直接輸出到標準輸出。sed除了模式空間…

    2018-01-04
  • 簡述計算機硬件組成,linux系統及簡單命令詳解

    1、計算機的硬件組成 (1)cpu(中央處理器):主要由運算器和控制器組成,它的運算器主要負責程序運算與邏輯判斷,控制器則主要協調組件與各個設備之間工作。 (2)存儲設備:存儲設備又分為外存儲設備,是用來存儲數據信息的設備,它包括,硬盤,u盤,光盤,軟盤。而其中內存(ram)和主板上的rom是屬于內存儲設備,內存是只讀存儲器,它用來暫時記錄數據信息供給cpu…

    2017-07-09
  • 學習筆記–文本處理工具

    Linux下有很多文本處理工具,本文將介紹幾款比較常用的文本處理工具,比如對文本查看的工具:cat和less,文本截取工具:head和tail,按列抽取文本工具:cut,按關鍵字查詢文本工具:grep,下面將具體介紹各種工具的使用。 1、文本查看命令cat 用法: cat [OPTION]… [FILE]… cat命令一次性…

    Linux干貨 2016-08-07
  • grep命令

    grep命令:grep(global search regular expression(RE) and print out the line,全面搜索正則表達式并把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹配的行打印出來;grep搜索的結果被送到屏幕,不影響原文件內容。Unix的grep家族包括grep、egrep和fgrep…

    Linux干貨 2016-08-08
  • 計算機基礎知識點

    說明:(僅僅記錄個人認為重要的內容) CPU的相關概念 主頻:主頻是cpu的時鐘頻率(cpu clock speed),是cpu運算時的工作頻率(1秒內發生的同步脈沖數) 的簡稱。單位是HZ,一般 來說,主頻越高,cpu的速度越快。由于內部結構的不同,并非所有的時鐘頻率 相同的cpu的性能都一樣  外頻:系統…

    Linux干貨 2017-02-14
欧美性久久久久