用戶和組

用戶和組

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
下一篇 2016-08-04

相關推薦

  • awk基本用法

    一、awk介紹     awk、sed&grep都可以匹配文本,但sed和awk可以對文本進行編輯,grep則不具有此功能;sed是非交互式的流編輯器,而awk則是一門模式匹配的編程語言。awk主要用于處理匹配的文本,同時awk還支持編程語言的一些特性,如變量、函數、循環語句等。  &nbs…

    Linux干貨 2016-09-21
  • Linux bash中命令執行狀態返回值

    Linux bash中命令執行狀態返回值 在操作系統中,命令的執行后輸出的內容為命令執行結果輸出,而這個命令本身是否執行成功,它是通過命令執行狀態返回值來標識的。 常用的值: 0 表示命令執行成功非0 表示命令執行失敗 bash中獲取命令執行狀態返回值的方法 在剛執行完一條指令后,使用echo $?取得上一條指令的命令執行狀態返回值,示例如下:  …

    Linux干貨 2016-11-06
  • LAMP 基于httpd 2.4

    一 安裝前準備 說明 操作系統:CentOS 7 64位 Apache 版本:httpd-2.4.6-40.el7.centos.x86_64 httpd服務器ip:192.168.1.4   1.  配置好IP、DNS 、網關,確保使用遠程連接工具能夠連接服務器 2.     &nbsp…

    Linux干貨 2016-04-05
  • systemd

    1、systemd (1)CentOS 7 使用systemd替換了SysV。Systemd目的是要取代一直在使用的init系統,兼容SysV和LSB的啟動腳本,負責在系統啟動或運行時,激活系統資源、服務器進程和其它進程。 (2)systemd的新特性: 系統引導是實現服務并行啟動 按需啟動守護進程 自動化管理各服務間的依賴關系 同時采用sockets式與D…

    Linux干貨 2016-09-21
  • 第一周 Linux基礎知識

    Linux基礎

    2018-03-18
欧美性久久久久