linux基礎入門---用戶和組管理命令

    計算機中用戶的作用:主要實現資源分享,在分享資源同時涉及到資源安全,又新增用戶密碼認證,使其資源由特定權限的用戶或用戶組纔可訪問。

 linux系統中用戶和組分類:

    用戶分爲:管理員用戶(root)、普通用戶和系統用戶(對守護進程獲取資源進行權限分配,也就是在系統啓動時或需要啓動某進程服務時需要的用戶,也稱爲“僞用戶”)

用戶組分爲:管理員組、普通用戶組,當然在創建用戶時會同時創建一個同用戶名的基本組,因此僞用戶也有着自己的基本組。另外用戶組針對用戶來說還有一個“附加組”,當然也是普通用戶組

    並且同時在創建用戶後會生成唯一標識用戶的uid號,當然用戶組也是有gid,管理員uid和gid爲“0",因此如果在將一個用的uid和gid改爲"0"那麼這用戶即可提升爲系統管理員。在centos6中一般uid從1-499區間表示爲"系統用戶",uid爲500+的用戶爲普通用戶‘。

useradd命令:create a new user or update default new user information

【功能】創建一個新的用戶或更新用戶原來的信息

【語法】

useradd [option] USERNAME

【常用選項】

-u: [UID_MIN,UID_MAX]  定義在/etc/login.dnfs/
-g:指定用戶的基本組,可爲組名,也可以是GID
-c:指定用戶的屬性信息
-d:指定用戶的家目錄,但是如果指定與用戶名不同的家目錄,指定時該目錄應該不事先存在
-s:指定用戶登錄系統默認shell
-G:指定用戶的附加組,不同附加組用逗號隔開即可,一個用戶可以屬於多個附加組,組必須事先存在
-r:創建系統用戶  centos6: 1-499  centos7:1-999

【配置文件】/etc/passwd 和 /etc/shadow  

/etc/passwd文件以":"做分隔符將文件每行數據分爲"7"段,而每行代表一個用戶信息。
root:x:0:0:root:/root:/bin/bash  這些信息分別表示:
用戶名:密碼佔位符:uid:gid:用戶資料(電話號碼,年齡等):用戶屬主目錄:用戶登錄系統默認shell

/etc/shadow:文件以":"做分隔符將文件每行數據分爲"9"段,每行代表一個用戶密碼安全信息
root:$6$tlIcIKYX0qGDqZF5$QtTrzgTGF1cSp2Gf5.tWUGh7mR9JLNE32OJVcNVctD0x3Lv/YEqua8YY.En5xuEp4LiJAYdQ2i6FQahVuEynq.:16912:0:99999:7:::
1)用戶名
2)加密的密碼
3)上次更改密碼的日期(從1970-1-1開始)
4)最短密碼期限(按天計算,0 = 無最短期限)
5)最長密碼期限(按天計算)
6)密碼警告期限(按天計算,0 = 未指定警告)
7)密碼非活動期限(按天計算)
8)賬號到期時間(從1970-1-1開始)
9)保留域

【實例】useradd創建用戶

[root@perthon50 ~]# useradd -u 505 -c "this is testuser" testuser1          
[root@perthon50 ~]# tail -n 1 /etc/passwd
testuser1:x:505:505:this is testuser:/home/testuser1:/bin/bash
[root@perthon50 ~]# tail -n 1 /etc/shadow  
testuser1:!!:16913:0:99999:7:::    //密碼加密爲顯示爲"!!"表示無法登錄系統,沒設置密碼

 

usermod命令:modify a user account

【功能】修改用戶基本信息,

【語法】

usermod [options] USERNAME

【常用選項】

當然可以直接改/etc/shadow文件,不建議
-e:修改用戶賬號有效期限
-u:修改用戶uid
-g:修改用戶基本組
-c:修改用戶的屬性信息
-d:修改用戶的家目錄,但是如果指定與用戶名不同的家目錄,指定時該目錄應該不事先存在
-s:修改用戶登錄系統默認shell
-G:修改用戶的附加組,不同附加組用逗號隔開即可,一個用戶可以屬於多個附加組,組必須事先存在
-l:修改用戶名稱,
-L:鎖定用戶密碼,使其用戶密碼無效,無法登錄系統
-U:解除用戶密碼鎖定

【實例】修改用戶名稱、默認shell、用戶屬性信息

[root@perthon50 ~]# tail -n 2 /etc/passwd
gentoo:x:504:504:xxxxxxxxxxxxx:/home/gentoo:/bin/bash  //原來用戶信息
testuser1:x:505:505:this is testuser:/home/testuser1:/bin/bash
[root@perthon50 ~]# usermod -s "/bin/tcsh" -l user1 -c "tell 110" testuser1
[root@perthon50 ~]# tail -n 2 /etc/passwd                                  
gentoo:x:504:504:xxxxxxxxxxxxx:/home/gentoo:/bin/bash
user1:x:505:505:tell 110:/home/testuser1:/bin/tcsh    //修改後用戶信息


passwd命令:update user's authentication tokens

【功能】對用戶/etc/shadow文件管理,類似usermod命令

【語法】

passwd [options] USERNAME

【常用選項】

-l:鎖定用戶
-u:解鎖用戶
-n mindays:指定用戶密碼最短使用期限,表示用戶修改密碼後 必須#天后才能再次修改密碼
-x maxdays:最大使用期限,表示用戶修改密碼#天后必須修改密碼,否則不可以登錄系統
-w warndays:提前多少天前警告  表示用戶密碼最大期限到期的前#天提醒用戶修改密碼
-i inactivedays:非活動期限,表示用戶還可以登錄系統
-e expire:YY-MM-DD 設置密碼過期期限
--stdin: 從標準輸入接收用戶密碼
   echo "PASSWORD" | passwd --stdin USERNAME 表示echo出來的直接輸入給passwd --stdin 設置USERNAME 密碼,但是必須顯示的
    可以使用 管道送給/dev/null    bit buckets黑洞
    於此對應的有        /dev/zero  一直吐零

【實例】爲用戶添加登錄認證密碼

//爲用戶添加密碼方法一
[root@perthon50 ~]# tail -n 2 /etc/shadow
gentoo:!!:16913:0:99999:7:::   //密碼加密位顯示"!!"表示無密碼並不可登錄系統
user1:!!:16913:0:99999:7:::
[root@perthon50 ~]# passwd gentoo
Changing password for user gentoo.
New password:                //輸入自己需要的密碼即可,普通用戶爲自己設置密碼要求複雜性
BAD PASSWORD: it is based on a dictionary word
Retype new password:         //再次輸入密碼,
passwd: all authentication tokens updated successfully.

//爲用戶設置密碼方法二,並查看剛纔設置密碼是否成功
//不建議除非是批量新建用戶時,並寫腳本自動生成時,否則建議別使用,萬一誰查看過你的歷史命令或者是站在你後面可怎麼辦哦,
[root@perthon50 ~]# echo "linux@123" | passwd --stdin user1  
Changing password for user user1.
passwd: all authentication tokens updated successfully.
[root@perthon50 ~]# tail -n 2 /etc/shadow
gentoo:$6$JQGxgi3e$XZiFTUa1lQVrCrwfHw6m4cWVJQ4ktmH7QKu8aXnsAJyNzdikosrGQxT4pMilsmVo1BDlXw0aLgQBcJJL9/sYI1:16913:0:99999:7:::
user1:$6$b5rZKPL1$3aWfNwGVPz.VWN67SZN58sHLt4.j/RPnk7C/eXGL0qFHPxwqYJTYA0p2scr6zdTi7cpfiIhqkAmRqUNFMvLZE1:16913:0:99999:7:::

userdel命令: delete a user account and related files

【功能】常用刪除用戶

【語法】

userdel [option] USERANME

【常用選項】

-r:表示在刪除用戶時,同時刪除用戶屬主目錄(小心謹慎)

【實例】在系統中刪除gentoo用戶並且刪除gentoo的屬主目錄

[root@perthon50 ~]# ls /home
gentoo  lisi  testuser1  zhangsan   //在home目錄下有gentoo的屬主目錄
[root@perthon50 ~]# tail -n 2 /etc/passwd
gentoo:x:504:504:xxxxxxxxxxxxx:/home/gentoo:/bin/bash   //gentoo的用戶
user1:x:505:505:tell 110:/home/testuser1:/bin/tcsh
[root@perthon50 ~]# userdel -r gentoo               //刪除gentoo用戶並屬主目錄
[root@perthon50 ~]# !ls
ls /home
lisi  testuser1  zhangsan                         //無gentoo屬主目錄
[root@perthon50 ~]# tail -n 2 /etc/passwd         //也無gentoo用戶
lisi:x:503:503::/home/lisi:/bin/bash
user1:x:505:505:tell 110:/home/testuser1:/bin/tcsh


groupadd命令:create a new group 

【功能】在用戶需要指定附加組時,而附加組是必須事先存在纔可指定,那麼在創建用戶指定用戶附加組之前就必須先創建"組"。

【語法】

groupadd [options] GROUPNAME

【常用選項】

-g:創建組時指定gid
-r:創建系統工作組,gid位於1-499區間

【實例】創建新組

//創建一個組名爲testgroup,gid爲534,
[root@perthon50 ~]# groupadd -g 534 testgroup
[root@perthon50 ~]# tail -n 2 /etc/group
test:x:555:
testgroup:x:534:

//創建默認系統工作組,gid位於1-399區間
[root@perthon50 ~]# groupadd -r systemgroup
[root@perthon50 ~]# tail -n 2 /etc/group
testgroup:x:534:
systemgroup:x:498:


gpasswd命令:administer /etc/group and /etc/gshadow

【功能】管理/etc/group,/etc/gshadow文件,當對組設置密碼時,可實現當用戶不屬於改組的成員,可通過gpasswd設置的密碼,進行組切換,操作完成退出即可,不常用

【語法】

gpasswd [options] GROUPNAME

【常用選項】

-a user: 將user添加至指定組中,附加組

-d user:刪除用戶user從附加組中移除

-A user1,user2……,設置有管理權限的用戶列表

newgroup:臨時切換組

pwck:檢查用戶認證信息完成性問題


【實例1】添加刪除用戶附加組

[root@perthon50 ~]# id user1
uid=505(user1) gid=505(testuser1) groups=505(testuser1)
[root@perthon50 ~]# gpasswd -a user1 test   //添加test組爲用戶user1的附加組
Adding user user1 to group test
[root@perthon50 ~]# id user1
uid=505(user1) gid=505(testuser1) groups=505(testuser1),555(test)
[root@perthon50 ~]# gpasswd -d user1 test   //移除user1的附加組test
Removing user user1 from group test
[root@perthon50 ~]# id user1
uid=505(user1) gid=505(testuser1) groups=505(testuser1)

groupdel命令: delete a group

【功能】刪除系統中用戶組

【語法】

groupdel GROUPNAME

【實例】刪除系統中組

[root@perthon50 ~]# tail -n 2 /etc/group
testgroup:x:534:
systemgroup:x:498:
[root@perthon50 ~]# groupdel systemgroup
[root@perthon50 ~]# tail -n 2 /etc/group
test:x:555:
testgroup:x:534:

chage命令:change user password expiry information

【功能】修改用戶/etc/shadow文件字段信息

【語法】

chage [options] USERNAME

【常用選項】

-d, --lastday LAST_DAY 修改最近一次修改密碼時間
-E, --expiredate EXPIRE_DATE  有效時間
-I, --inactive INACTIVE  非活動期限
-m, --mindays MIN_DAYS 最小使用天數
-M, --maxdays MAX_DAYS 最大使用天數
-W, --warndays WARN_DAYS 提前警告時間


【實例】修改用戶密碼過期"提前警告天數"

[root@perthon50 ~]# tail -n 1 /etc/shadow
user1:$6$b5rZKPL1$3aWfNwGVPz.VWN67SZN58sHLt4.j/RPnk7C/eXGL0qFHPxwqYJTYA0p2scr6zdTi7cpfiIhqkAmRqUNFMvLZE1:16913:0:99999:7:::   //默認爲7天
[root@perthon50 ~]# chage -W 6 user1
[root@perthon50 ~]# tail -n 1 /etc/shadow
user1:$6$b5rZKPL1$3aWfNwGVPz.VWN67SZN58sHLt4.j/RPnk7C/eXGL0qFHPxwqYJTYA0p2scr6zdTi7cpfiIhqkAmRqUNFMvLZE1:16913:0:99999:6:::  //已經修改爲6天


以下爲筆記本

Linux用戶管理


用戶創建:useradd USERNAME

#useraddUSERNAME

#tail -1 /etc/passwd  查看最後一個創建用戶的用戶名

#tail -1 /etc/group

#tial -1 /etc/shadow  查看到用戶有!!表示該用戶沒有設置密碼無法登錄系統

 

 

[option]

-u UID:指定用戶的UID /etc/login.defs定義默認+1

-g GID:指定基本組,可使用組名、GID號指定,但是在創建用戶時,如果需要指定基本組,組必須事先存在

-c comment :通常是用戶的簡短信息簡要說明,如果有空格需要引號

-d 指定用戶家目錄 #useradd -d /home/balir user5,如果該目錄已經存在的情況,不會複製默認文件  (默認配置文件在 /etc/skel)

-s 指定用戶默認shell

-G GROUP1GROUP2 指明用戶的附加組,使用逗號隔開,組必須事先存在

 

-D 表示修改用戶默認值設定,/etc/default/useradd文件中,以後新增的用戶就會按照默認值來設置默認

-r 創建系統用戶

Centos6 ID<500

Centos7 ID<1000

 

 

 

定義用戶的創建時的默認信息

#cat /etc/login.defs   例如默認UID  GID等等

#cat /etc/default/useradd 表示創建用戶默認指定的用戶信息 例如家目錄、bash等等

 

【練習】

1.創建用戶gentoo,附加組爲distrolinux ,默認shell/bin/csh,註釋信息爲"Gentoo Distribution"

 

#groupadd distro

#groupadd linux

#useradd -c "Gentoo Distribution" -s /bin/csh -G distro,linux gentoo

Linux組管理


組創建:groupadd GroupNAME

#groupadd GROUPNAME

 

-g GID 指明GID號,

-r 創建系統組

Centos6 ID<500

Centos7 ID<1000

 

創建系統組

#groupadd -r mysql

#tail -l /etc/group

 

指定組id

#groupadd -r -g 121 mysql

#tail -1 /etc/group

idsu命令


查看用戶的相關ID信息  id命令

#id

查看指定用戶的id

#id -u  USERNAME

查看指定用戶的基本組

#id -g USERNAME

查看指定用戶的附加組

#id -G USERNAME

#id -n Name

 

 

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

su [option…][-] [user [args…..]]

 

切換用戶的方式

su UserName 非登錄試切換,即不會讀取目標用戶的配置文件

su - UserName 登錄試切換,會讀取目標用戶的配置文件,完全切換

 

Note : root 使用su命令其他用戶無須密碼,非root用戶切換時需要密碼

 

 

su使用其他用戶只需命令

#su - UserName -c 'COMMAND'

 

命令只需結束後回到當前用戶

 

選項

-l : "su -l UserName"表示登錄試切換

usermod命令用戶屬性修改


usermod命令

-u UID 指定新UID

-g GID 指定新GID

-G 指定新的附加組,但是原來的附加組會被覆蓋,如果需要保留原來的附加組,需要-a選項表示追加

-s SHELL 修改默認shell

-c 'COMMENT' ,修改註釋信息

-d HOME:修改新的家目錄,原有的家目錄中的文件不會移動到新的家目錄下,如果需要同時移動到新的家目錄下,需要同時使用-m選項

-l 表示修改用戶的用戶名

-L 鎖定指定用戶  只有管理員有權限

-U 解鎖指定用戶  只有管理員有權限

 

-e YYYY-MM-DD 指定用戶賬號過期日期

-f INACTIVE  指定非活動期限

 

#usermod -d /home/newhome  UserName

#usermod -L UserName  查看結果是密碼之前加!號cat /etc/shadow

passwd命令


給用戶添加密碼:passwd

#passwd UserName 修改指定用戶的密碼,只有root有權限

#passwd    修改當前用戶的密碼,任何用戶如果沒有密碼是無法修改密碼

 

常用選項

-l 鎖定指定用戶

-u 解鎖指定用戶

 

 

-n mindays  指定最短使用期限

-x maxdays 指定最大使用期限

-w warndays 提前多少天警告

-i  inactivedays 非活動期限

 

--stdin 從標準輸入接手用戶密碼

#echo"redhat" | passwd --stdin UserName

 

Note: /dev/null ,bint buckets 特殊設備,無限吞

/dev/zero   無限吐

userdel刪除用戶


userdel命令

userdel [option…] UserName

 

#userdel UserName  不刪除用戶家目錄

#userdel UserName   同時刪除用戶家目錄

groupmodgroupdelgpasswd,newgrp


groupmod命令修改組屬性

groupmod

-n  group_name  修改組的新名字

-g  GID 修改新的GID

 

groupdel命令

#groupdelGroup_name

 

 

 

給組新增密碼

gpasswd命令

gpasswd [option…]

 

#gpasswd Group_Nanme

 

-a 添加用戶至指定組

#gpasswd -a UserName  Group

 

-d 將用戶移除指定組

#gpasswd -d UserName Group

 

-A UserName1,UserName2……設置有管理權限的用戶列表,設置某個用戶在改組有管理員權限

 

newgrp命令

如果用戶本屬於此組,則需要組密碼

newgrp Group_Name

 

 

pwck 命令檢查用戶是否有效

#pwck   /etc/shadow

chage命令更改用戶密碼過期信息


chage命令

-d 設置用戶最近一次修改密碼的時間

-E 修改用戶賬戶號的過期期限

-I 修改用戶的非活動期限

-m 修改密碼的最小使用天數

-M 修改密碼的最大使用天數

-W 修改用戶的警告期限

 

 

 

其他命令

chfn chsh  finger

 

#chfn User_Name 設置用戶的註釋信息

#finger  User_Name  查看用戶的註釋信息,需要安裝

#chsh  User_Name   修改用戶的默認shell


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章