linux帳號管理

用戶的標識碼:UID和GID
登陸linux的時候輸入的是帳號,可是電腦僅認識0 與1,因此每一個用戶
都有一組ID。
由於每一個文件都有它的全部者和全部組,因此每一個用戶至少有兩個ID
分別是UID和GID。
文件就是利用UID和GID來判斷它的全部者和全部組的,系統會根據/etc/passwd 與/etc/group 的內容, 找到UID / GID 對應的全部者與全部組名稱再顯示出來
用戶帳號
用戶是經過電腦前tty1~tty6 的終端提供的登錄界面而後輸入密碼登陸的
輸入密碼後系統會:
先找/etc/passwd 文件裏是否有你輸入的賬號?若是沒有則跳出,若是有的話就將該賬號對應的 UID 與GID (在/etc/group 中) 讀出來,另外,該賬號的家目錄與shell 設置也一併讀出;
接着就是覈對密碼錶了,這時Linux 會進入/etc/shadow 裏面找出對應的賬號與 UID,而後覈對一下你剛剛輸入的密碼與文件裏的密碼是否相符?
若是一切都正確的話,就進入Shell 控管的階段.
/etc/passwd 文件的結構
每一行都表明一個賬號,有幾行就表明有幾個賬號在你的系統中。不過須要特別注意的是裏面不少賬號原本就是系統正常運做所必需要的,咱們能夠簡稱他爲系統賬號,例如bin, daemon, adm, nobody等等,這些賬號請不要隨便刪掉他。
文件內容是這樣的:linux

[root@localhost ~]# cat /etc/passwd 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync

以:分隔;
帳號名稱:用戶登錄的名稱;
密碼:由於這個文件全部程序均可以讀取,容易形成密碼被竊,後面移到了/etc/shadow文件中,因此只能看到一個x;
UID :0管理員 1~999系統帳號 1000~60000普通帳號
GID:與/etc/group有關,/etc/passwd 與/etc/passwd相似,用來規範組名稱和GID;
用戶信息說明:描述用戶的信息
家目錄: root的家目錄在/root,普通用戶的家目錄在/home/username
Shell:當登入用戶登陸系統後就會取得一個Shell來與系統的核心溝通以進行使用者的操做任務
/etc/shadow文件結構
由於/etc/passwd這個文件全部程序均可以讀取,容易形成密碼被竊,後面移到了/etc/shadow文件中, 並且還加入不少的密碼限制參數在/etc/shadow 裏面,
/etc/shadow 文件是這樣的:shell

[root@localhost ~]# cat /etc/shadow
root:$6$Ej2yxmxbBnXiOduv$isb7LBGtOl9ezWF7Wv2JI6AW3BGLqnqL.MxjG72tC35fJN95AVK.cfqpItexMhRQ3HUbfb1rkzBao619f4iXb.::0:99999:7:::
bin:$6$/sM9Hxri$R5XShyU8gDAup6NrIwcSBgvFtxc/ctSlMa5YcjgVuVVzNCbmIY34yFpKV5idfcke8N1JYKCAUckwG/zOSEwEb0:18115:0:99999:7:::
daemon:*:17834:0:99999:7:::
adm:*:17834:0:99999:7:::
lp:*:17834:0:99999:7:::
sync:*:17834:0:99999:7:::
shutdown:*:17834:0:99999:7:::

以:分隔;
帳號名稱:用戶登錄的名稱;
密碼 :通過編碼加密的密碼 密文;
最近更改密碼的日期 :1970-1-1開始累加到今天的天數;
密碼不可被改動的天數 : 列如設置的天數爲3,那麼今天改了密碼,3天以內都不能夠更改;
密碼須要從新更改的天數:列如設置的天數爲42天,那麼必須在42天以內從新設置密碼,若是不設置的話這個帳號的密碼將會過時。 99999至關於永久不過時;
密碼須要更改期限前的警告天數 :例如設置爲7天,那麼就會在密碼須要從新更改天數期限的前7天提醒你修改密碼;
密碼過時後的帳號寬限時間:過了密碼從新修改的天數後寬限的天數,在寬限時間內密碼會過時,從新登陸會強制你修改密碼,若是超過寬限時間密碼就會失效
帳號失效日 在這個規定的日期以後帳號將沒法使用;
保留 bash

Linux用戶和組管理命令
用戶管理:useradd,usermod,userdel
組管理:groupadd,groupmod,groupdel
密碼管理:passwd,gpasswd
其它相關命令:newgrp,chage,id,suapp

useradd命令
新建用戶或修改新建用戶時的默認屬性
useradd 選項 名字ide

  • -u UID:--uid UID:指定UID,默認是上一個用戶UID+1
  • -g GROUP:--gid GROUP:指定用戶的基本組,此組必須事先存在
  • -G:--groups GROUP1,GROUP2...,指定用戶的附加組,這些組必須事先存在
  • -c COMMENT:--comment COMMENT:添加註釋
  • -d:--home HOME_DIR:指定用戶家目錄,經過複製/etc/skel並重命名實現的,指定的家目錄路徑若是事先存在,則不會爲用戶複製環境初始化配置文件(如.bashrc等)
  • -s:--shell SHELL:指定用戶默認shell,可用的全部shell列表存儲在/etc/shells文件中
  • -r:--system:建立系統用戶

useradd -D :顯示建立時的默認配置屬性
GROUP:是否建立用戶私有組,默認100,是
HOME:家目錄起始位置,默認/home
INACTIVE:密碼過時到用戶註銷的時間,默認-1,不註銷
EXPIRE:空
SHELL:默認shell,默認爲/bin/bash
SKEL:從哪裏複製用戶家目錄信息,默認/etc/skel
CREATE_MAIL_SPOOL:是否建立郵件目錄,默認yes,(在/var/spool/mail/)ui

useradd -D 顯示的內容:編碼

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

usermod命令

usermod修改用戶屬性
與useradd的選項大體相同加密

  • -u UID:--uid UID:修改UID
  • -g GROUP:--gid GROUP:修改用戶的基本組,此組必須事先存在
  • -G:--groups GROUP1,GROUP2...,修改用戶的附加組,這些組須事先存在。
  • 注意,原來的附加組會被覆蓋。
  • 若是隻添加不覆蓋,則配合使用-a選項。
  • -a:--append:與-G一同使用,添加用戶的附加組
  • -c COMMENT:--comment COMMENT:修改註釋
  • -d:--home HOME_DIR:修改用戶家目錄
  • 用戶原有的文件不會被轉移至新位置。
  • 若是須要轉移,則配合使用-m選項。
  • -m:--move-home:只能與-d選項一同使用,用於將原來的家目錄移動爲新的家目錄。
  • -l:--login NEW_LOGIN:修改用戶登陸名
  • -s:--shell SHELL:修改用戶默認shell
  • -L:--lock:鎖定用戶的密碼,即禁止用戶登陸。
  • 其實就是在/etc/passwd文件中用戶原來的密碼字符串前添加一個「!」,使其不能匹配。
  • -U:--unlock:解鎖用戶的密碼

userdel命令code

userdel -
刪除用戶帳戶和相關文件字符串

  • -r:刪除用戶時一併刪除用戶家目錄

passwd命令
passwd:不帶任何選項:修改當前登陸用戶本身的密碼
passwd USER:修改指定用戶的密碼,默認僅root用戶有此權限

  • -l:--lock:鎖定用戶
  • -u:--unlock:解鎖用戶
  • -d:--delete:清除用戶密碼
  • -e:--expire DATE:過時期限(日期)
  • -i:--inactive DAYS:非活動期限(時長)
  • -n:--minimum DAYS:密碼的最短使用期限
  • -m:--maximum DAYS:密碼的最長使用期限
  • -w:--warning DAYS:警告期限

groupadd命令
新建組
groupadd 選項 groupname

  • -g GID:指定GID:默認是上一個組的GID+1
  • -r:建立系統組
    gourpmod命令
    更改用戶組屬性
    groupmod 選項 groupname
  • -g GID:--gid GID:修改GID
  • -n NEW_NAME,修改組名

groupdel命令
刪除組
groupdel 選項 groupname
當某user以某group爲主組時,是沒法使用groupdel命令刪除該group的,但附加組不受影響
gpasswd命令
gpasswd 選項 groupname

  • -a:--add USER:向組中添加用戶
  • -d:--delete USER:從組中移除用戶
    newgrp GROUP:
    臨時切換當前用戶的基本組(exit:切換回以前的基本組)
    chage命令
    修改密碼的各種過時信息
    chage 選項 USER
  • -d 後面接日期,修改 shadow 第三字段(最近一次更改密碼的日期),格式 YYYY-MM-DD
  • -E後面接日期,修改 shadow 第八字段(帳號失效日),格式 YYYY-MM-DD
  • -W後面接天數,修改 shadow 第六字段(密碼過時前警告日期)
  • -m後面接天數,修改 shadow 第四字段(密碼最短保留天數)
  • -M後面接天數,修改 shadow 第五字段(密碼多久須要進行變動)
    chage命令用的很少,由於passwd命令中也能夠修改密碼的各種過時信息。
    id命令
    id 選項 USER
    id:不帶任何選項:顯示當前登陸用戶本身的信息
  • -u:--user:僅顯示UID
  • -r:--real:僅顯示實際的ID
  • -g:--group:僅顯示用戶的基本組ID
  • -G:--groups:僅顯示用戶所屬的全部組的ID
  • -n:--name:顯示名稱,而非ID
    su命令su 選項 USER登陸式切換:會經過從新讀取目標用戶的配置文件來從新初始化su - USER或su -l USER非登陸式切換:不會讀取目標用戶的配置文件進行初始化su USER-c COMMAND:僅以指定用戶的身份運行此處指定的命令
相關文章
相關標籤/搜索