unix的元年爲1970年的1月1日linux
現行的各個版本的系統,不管是win仍是linux大都遵循3A用戶及權限管理機制即(Authencattion 身份認證機制、Authorzation 受權、Accounting 審計)sql
如圖,當用戶輸入用戶名密碼後,系統經過查找passwd文件中相對應的UID,GID,以及所屬組的信息,確認用戶存在與否,若是存在,那麼登錄帳戶,執行操做,若是沒有,那麼從新登錄。
shell
[root@test1 ~]# cat /etc/passwdcentos
root:x:0:0:root:/root:/bin/bashbash
以上內容爲我passwd中相關root的信息,其從左至右依次爲username,password,uid,gid,GECOS,homefile,shell。ide
username 不用多說,基本上都知道,根據角色,權限都會用不一樣的usernameui
password 通過加密的密碼文件信息,在Centos5.x及如下用到的加密方式爲md5,但在Centos6及 以上好像用的加密方式是sha512,並保存在/etc/shadow文件下加密
UID 用戶的ID號碼,機器經過ID號碼查找你的用戶名及密碼信息是否正確,個數爲0-65535個spa
其中普通用戶:1-60000unix
系統用戶:
CentOS6: 1-499
CentOS7:1-999
登陸用戶:
CentOS6: 500+
CentOS7: 1000+
GID GroupName組ID,用於分配用戶的權限及角色,它的主要配置文件爲/etc/gshadow 和/etc/group,一些公司的郵件系統基本上都是使用的這個來區分職能,linux對於組的分 配:
管理員組:0
普通組:
Centos6.X:1-499
Centos7.X:1-999
登錄用戶:
Centos6.X:500+
Centos7.X:1000+
GECOS 用戶的一些詳細信息
HOMEFILE 家目錄,存放一些我的角色用戶的文件
SHELL 用戶默認shell
注:/etc/shadow文件管理的是用戶的密碼信息,爲單向不可逆文件,如如下代碼文件:
login name:encrypted password:date of last password change:minimum password age:maximum password age:password warning period:password inactivity period:account expiration date:reserved field
他的數據分別以":"或者"$"間隔開來
用戶和組管理的相關命令:
useradd、usermod、passwd、userdel
groupadd、groupmod、gpasswd、groupdel
chage, chsh, chfn
id, w, who, whoami
su
useradd:建立用戶
useradd [options] LOGIN
useradd -D [options]
-r: 建立系統用戶
-u UID: 指定UID;
-g GID: 指定用戶所屬基本組,此組必須事先存在
-c 'COMMENT':
-d /PATH/TO/SOMEWHERE:指定用戶的主目錄路徑;此位置不能事先 存在,不然,其用戶相關配置文件將被 複製;/etc/skel
-s SHELL:設定用戶的默認shell;
cat /etc/shells
-G GID,...:指定所屬的附加組;
-M: 不給用戶建立家目錄;
groupadd:建立組
groupadd [OPTIONS] GROUPNAME
-g GID: 指明組ID;
-r: 建立系統組;
[root@test1 ~]# groupadd database
[root@test1 ~]# groupadd sql
id:查看用戶相關的id信息;
id [OPTION]... [USER]
-u: UID
-g: GID
-G: Groups
-n: NAME
[root@test1 ~]# id -G Oracle
3000 501 502
su:switch user, 切換用戶或以其它用戶的身份執行命令;
切換方式:
su USERNAME: 非徹底切換;非登陸式切換
su - USERNAME或su -l USERNAME: 徹底切換;登陸式切換
僅以指定用戶的身份執行指定的命令:
su - USERNAME -c 'COMMAND'
usermod:用戶屬性修改
usermod [OPTION]... LOGIN
-u UID
-g GID
-G GID[,GID,...]:修改用戶所屬的附加組;同時使用-a選項;
-s SHELL
-c 'COMMENT'
-d HOME: 修改用戶的家目錄爲新位置時,用戶原來的文件是不會被 移動至新家;-m選項可實現同時將其遷至新的家目錄;
-l LOGIN:
-L:lock user
-U: unlock user
[root@test1 ~]# useradd nicai
[root@test1 ~]# usermod -l Oralce nicai
[root@test1 ~]# cat /etc/passwd
Oracle:x:3000:3000::/home/database:/bin/bash
Oralce:x:3001:3001::/home/nicai:/bin/bash
passwd:給用戶添加密碼
passwd [OPTION] [UserName]
-l: lock user
-u: unlock user
-n mindays: 最短使用期限;
-x maxdays:默認爲99999天;
-w warndays:
-i inactivedays:
--stdin:從標準輸出接收用戶密碼;
echo 'centos' | passwd --stdin centos
userdel:刪除用戶
userdel [-r] USERNAME
-r:刪除用戶的同時刪除其家目錄;
groupmod: 組屬性修改
groupmod [OPTION] GROUPNAME
-n GROUP_NAME
-g GID
gpasswd:設定組密碼
newgrp:切換基本組爲指定的組
groupdel:刪除組
chage:修改用戶帳號及密碼的屬性
chage [OPTION]... LOGIN
其它命令:chfn, chsh, finger, whoami, who
例如:
建立用戶Oracle,所屬附加組database和sql,ID號爲3000, 家目錄爲/home/database;
[root@test1 ~]# useradd Oracle -G database,sql -u 3000 -d /home/database