用戶及用戶組管理(week1_day4)--技術流ken

 

本節內容

 

useraddjava

userdelpython

usermodlinux

groupaddshell

groupdelbash

 

用戶管理

 

爲何須要有用戶?ui

 

1. linux是一個多用戶系統加密

2. 權限管理(權限最小化)spa

 

用戶:存在的目錄是爲了對系統中的資源作歸屬code

密碼:存在的目的是爲了對用戶作身份認證blog

 

 

用戶和用戶組

用戶組,在用戶組中能夠包含一個或者多個用戶

方便對多個用戶進行受權操做

 

用戶管理相關文件

 

/etc/passwd:用戶基本信息

/etc/shadow:用戶密碼信息、過時時間等

/etc/group:用戶組信息

/etc/gshadow:用戶組密碼

/etc/default/useradd:建立用戶的默認配置信息

/etc/skel/:用戶家目錄模板

/etc/login.defs:全局用戶設定信息

/etc/passwd: 每行是一個用戶,用來記錄用戶的基本信息,每行的格式

account:password:UID:GID:GECOS:directory:shell

 

accout:用戶名

password:用戶密碼,密碼位置默認是x

UID:用戶身份id,用來惟一的標識一個用戶

GID:用戶組id,用來在系統中惟一的標識一個用戶組(這裏指的是其基本組的組ID)

GECOS:用戶描述信息,能夠空白,也能夠隨意寫(useradd -c )

directory:用戶家目錄

shell:用戶所使用的shell類型

/bin/bash-->能夠登陸系統

/sbin/nologin-->該用戶必定沒法登陸系統

 

好比

 root   :   x   :    0    :       0       :   newuser  :  /root  :  /bin/bash

用戶名    密 碼    用戶id   用戶所在組的id  描述信息    家目錄    shell類型   

 

 

 

/etc/group

用戶組信息

linux,用戶必定是屬於一個組的

在linux中,建立用戶的時候,

會自動建立一個組,組名和組id都和所建立的用戶相同

並且,該用戶會自動加入到這個組中

 

 

c:x:1007:

組成:groupname:password:GID: [user1, user2.....]

groupname:組名

password:組密碼

GID:組id

[user1, user2.....]:改組中的用戶列表

 

 

概念

用戶的基本組(主組):當前用戶具備哪一個組的權限

用戶的附加組:用戶額外屬於的組

 

zx

主組:gp02

附加組:gp0一、gp03

 

/etc/default/useradd

 定義建立用戶默認選項的文件

# useradd defaults file       # useradd默認文件

GROUP=100               #表示可建立普通組

HOME=/home             #用戶的家目錄建在/home中;用戶家目錄的默認建立地

INACTIVE=-1               #是否啓用賬號過時停權,-1表示不啓用;寬限天數,0及如下數皆爲無效數字

EXPIRE=                   #賬號終止日期,不設置表示不啓用;賬號失效日期(如:20081212)

SHELL=/bin/bash            #所用SHELL的類型;登陸後執行的程序

SKEL=/etc/skel              #用戶家目錄中的環境文件,默認添加用戶的目錄默認文件存放位置;也就是說,當咱們用adduser添加用戶時,用戶家目錄下的文件,都是從這個目錄中複製過去的;

CREATE_MAIL_SPOOL=yes    #是否建立用戶郵件緩衝,yes表示建立

 

Linux中的用戶類別

 

能夠登陸系統的用戶

管理員用戶:uid爲0的用戶

普通用戶:就是能夠登陸系統,可是沒有管理員權限的用戶

不能登陸系統的用戶:

系統用戶:用來運行一個程序,而不是用來登陸系統

 

 

各種用戶的id

管理員用戶:0

系統用戶:1-999

普通用戶:1000-60000(自定義uid最大4294967294)

 

系統用戶的特色

1. 由於不須要登陸,因此shell類型一般爲/sbin/nologin

2. 系統用戶沒有家目錄

3. 系統用戶id一般是小於1000

 

Useradd命令

 

useradd [options] username

options:

-d, --home HOME_DIR:指定用戶家目錄

-c, --comment COMMENT:用戶說明信息

-e, --expiredate EXPIRE_DATE:指的帳號的過時時間,時間格式 YYYY/MM/DD

-g, --gid GROUP:指的用戶的基本組的組id

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:指的用戶的附加組列表

-u,--uid UID:指的用戶的uid

-m, --create-home:建立用戶的時候自動建立用戶家目錄(默認就已經使用)

-M:不自動建立用戶家目錄

-o, --non-unique:一般和-u一塊兒使用,用來讓兩個用使用相同的uid

-r, --system:建立一個系統用戶

-s, --shell SHELL:在建立用戶的時候,指定用戶的shell類型

(/bin/bash/,/sbin/nlogin)

 

建立一個系統用戶

# useradd -s /sbin/nologin -M -r ken

 

passwd命令

 

passwd [[options] username]

(若是不指定用戶名,那麼就是修改當前用戶的密碼)

options:

--stdin

-l:鎖定用戶

-u:解鎖用戶

-d:刪除用戶密碼

-e:讓用戶密碼過時

echo 「 123「 | passwd --stdin ken

表示給ken用戶設置密碼123 (ken用戶必須存在)

設置密碼的原則

1. 長度要夠

2. 密碼複雜度(數字+字母+特殊符號)

 

Userdel命令

 

刪除用戶 userdel

userdel [options] username

options:

-r:在刪除用戶的時候,連同用戶數據一併刪除

 

 

建立用戶組 groupadd

 

groupadd [options] groupname

options:

-g GID:

-o:

 

 

刪除用戶組 groupdel

 

groupdel groupname

 

Shadow文件詳解  

 

  zxhk:  $6$dgnPoZ0s$6xNKEWz : 17729 : 0 : 99999 :  7  :   :   :   

 

第一段:用戶名:  

第二段:加密後的密碼      

第三段:上次修改密碼舉例元年通過的天數1970年1月1日(若是該字段空,意味着該用戶密碼被禁用)

第四段:密碼最短使用時間(0表示不限制)

第五段:密碼最長有效期(99999表示不限制)(若是第5的值小於第四段,那麼用戶沒法修改本身的密碼)

第六段:密碼到期前幾天開始發送告警,提示密碼即將過去,請當即修改

第七段:非活動期間,密碼到期後的寬限時間(登陸系統的時候必須先修改密碼,才能登陸)

第八段:密碼過時時間(也是舉例計算機元年通過的天數)(這裏和前面的幾個時間沒有聯繫)

第九段:保留字段

經常聽到:個人密碼忘記或者被更動了?怎麼辦?
 
  有的時候會發生這樣的狀況,就是說,你的 root 密碼忘記了!要怎麼辦?從新安裝嗎?另外, 有的時候是被入侵了, root 的密碼被更動過,該如何是好?
 
  這個時候就必需要使用到 /etc/shadow 這個資料了!咱們剛剛知道密碼是存在這個檔案中的, 因此只要你可以以各類可行的方法開機進入 Linux ,例如單人維護模式,或者是以 live CD (KNOPPIX) 來進入 Linux 系統。以後,將硬碟順利掛載,而後進入 /etc/shadow 這個檔案中,將 root 的密碼這一欄所有清空!而後再登入 Linux 一次,這個時候 root 將不須要密碼 (有的時候須要輸入空白字元) 就能夠登入了!這個時候請趕快以 passwd 設定 root 密碼便可。 

 

 

Usermod命令

 

usermod [options] username

 

options

-g, --gid GROUP: 更 新 使 用 者 新 的 起 始 登 入 羣 組 。 羣 組 名 須 已 存 在 。

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]: 定  義  使 用 者 爲 一 堆 groups 的 成 員 。 每 個 羣 組 使 用 ,區 格 開 來

-u, --uid UID: 用 者 ID 值 。必 須 爲 惟 一 的 ID 值 

-s, --shell SHELL: 指 定 新 登 入 shell 。 如 此 欄 留 白 , 系 統 將 選 用 系 統 預 設 shell 。

-L, --lock: 鎖定用戶的密碼

-U : 解鎖用戶的密碼

-l, --login NEW_LOGIN : 變 更 使 用 者 login 時 的 名 稱 爲 login_name 。

-e, --expiredate EXPIRE_DATE:加 上 使 用 者 賬 號 停 止 日 期 。 日 期 格 式 爲 MM/DD/YY.

 

-d, --home HOME_DIR:更 新 使 用 者 新 的 登 入 目 錄 。

-m, --move-home:移動用戶家目錄至新的位置

 

id命令

 

做用:用來查看指定的用戶的信息(或判斷用戶是否存在)

格式:id [-u|-g|-G] username

選項

-u:僅僅顯示用戶uid

-g:僅僅顯示用戶gid

-G:僅僅顯示用戶所有組id

 

su命令(switch user)

 

做用:進行切換用戶

格式:su - 目標用戶

 

su命令和su -命令最大的本質區別就是:

前者只是切換了root身份,但Shell環境仍然是普通用戶的Shell;然後者連用戶和Shell環境一塊兒切換成root身份了。只有切換了Shell環境纔不會出現PATH環境變量錯誤。su切換成

root用戶之後,pwd一下,發現工做目錄仍然是普通用戶的工做目錄;而用su -命令切換之後,工做目錄變成root的工做目錄了。用echo $PATH命令看一下su和su -之後的環境變量有

何不一樣。以此類推,要從當前用戶切換到其它用戶也同樣,應該使用su -命令

 

練習

 

1. 建立用戶java,uid 1000 基本組是gp001 附加組 gp002 gp003

 

2. 修改用戶java,

將名稱修改成python,

將uid修改成 2000,

修改主組是cats,

shell類型改成 /sbin/nologin

讓該用戶在10月1號到期

 

 

 

答案:

1. 

[root@ken ~] # useradd -u 1000 -g gp001 -G gp002,gp003  java

 

2.

[root@ken ~]# usermod -l python -u 2000 -g cats -s /sbin/nologin -e 10/01 java
相關文章
相關標籤/搜索