用戶標識、密碼:
Authentication 認證
Authorzation 授權
Audition 審計
這就是3A機制,
用戶類別:分爲管理員和普通用戶;普通用戶又可分爲系統用戶和登錄用戶
用戶標識:系統按照UID來區分用戶的,它的取值範圍是16bits二進制數字:0-65535
管理員:用0表示
普通用戶:1-65535
系統用戶:1-499,是centos6;1-999 是centos7;
登錄用戶:500-60000centos6 ;1000-60000centos7
名稱解析:名稱轉換
計算機指認二進制的數字
根據名稱解析庫進行:/etc/passwd
用戶組類別1:分爲管理員組和普通用戶組;普通用戶組又可分爲系統用戶組和登錄用戶組
用戶組標識:系統按照GID來區分用戶的,它的取值範圍是16bits二進制數字:0-65535
管理員組:用0表示
普通用戶組:1-65535
系統用戶組:1-499,是centos6;1-999 是centos7;
登錄用戶組:500-60000centos6 ;1000-60000centos7
名稱解析:名稱轉換
計算機指認二進制的數字
根據名稱解析庫進行:/etc/group
組類別2:用戶的基本組 用戶的附加組
組類別3:私有組,同用戶名,且只包含一個用戶;公共組,組內包含多個用戶;
認證信息:
通過比對事先存儲的,與登錄時提供的信息是否一致;
password: /etc/shadow /etc/gshadow
密碼的使用策略:
1,使用隨機密碼;
2.最短長度不要低於8位
3.應該使用大寫字母、小寫字母、數字、標點符號中的至少三種
4.定期更換
plain text--> cipher text
銘文 密文
加密的算法:
對稱加密:加密和解密使用同一個密碼:
非對稱加密:加密和解密使用的一對兒祕鑰:
祕鑰對兒:
公鑰:public key
私鑰:private key
單項加密:只能加密,不能解密:提出數據特徵碼:
定長輸出:與原來的數據量沒關係
算法:
md5sum:message digest 128 bits
sha1sum:secure hash algorithm 126 bits
sha224sum:secure hash algorithm 224 bits
sha256sum:secure hash algorithm 256 bits
sha384sum:secure hash algorithm 384 bits
sha512sum:secure hash algorithm 512 bits
在計算之時加salt,添加隨機數
/etc/passwd:用戶的信息庫
以冒號分開的7個字段
用戶名 密碼佔位符 UID GID 註釋 家目錄 shell
/etc/shadow:用戶密碼
以冒號分隔的9個字符段
登錄名 :加密了密碼: 最後一次修改密碼的時間:密碼的最小年齡:最大密碼年齡:密碼警告時間:密碼禁用時間:賬戶過期日期:保留字段
/etc/group
四個字段
組名:密碼佔位符:GID:用戶列表
Linux用戶和組管理
安全上下文;
進程以發起者非身份運行:
進程對文件的訪問權限,取決去發起此進程的用戶的權限;
系統用戶:爲了能夠讓那後臺進程或服務進程以非管理員的身份運行,通常創建普通用戶,這類用戶從不登錄系統;
用戶管理命令
useradd usermod userdel
useradd [options] LOGIN
-u UID: [UID_MIN, UID_MAX]定義在/etc/login.defs
-o 配合-u 選項,不檢查UID的唯一性
-g GID:指明用戶所屬基本組,可爲組名,也可以GID
-c "COMMENT":用戶的註釋信息
-d HOME_DIR:以指定的路徑(不存在)爲家目錄
-s SHELL: 指明用戶的默認shell程序
可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,...]:爲用戶指明附加組,組必須事先存在
-N 不創建私用組做主組,使用users組做主組
-r: 創建系統用戶CentOS 6: ID<500,CentOS 7: ID<1000
例題:1、創建用戶gentoo,附加組爲bin和root,默認shell爲/bin/csh,註釋信息爲"Gentoo Distribution"
useradd -G root,bin -s /bin/csh -c "Gentoo Distribution" gentoo
例題:
2、 創建下面的用戶、組和組成員關係
名字爲admins 的組
用戶natasha,使用admins 作爲附屬組
用戶harry,也使用admins 作爲附屬組
用戶sarah,不可交互登錄系統,且不是admins 的成員,natasha,harry,sarah密碼都是centos
[root@localhost ~]# groupadd admins
[root@localhost ~]# useradd -G admins natasha
[root@localhost ~]# useradd -G admins harry
[root@localhost ~]# useradd -s /sbin/nologin sarah
[root@localhost ~]# echo "centos" | passwd --stdin natasha
Changing password for user natasha.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# echo "centos" | passwd --stdin harry &> /dev/null
[root@localhost ~]# echo "centos" | passwd --stdin sarah &> /dev/null
usermod命令:
usermod[OPTION] login
-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: 設定非活動期限;
useradd命令:
-r:刪除家目錄;
例題:
5、file1文件的內容爲:”1 2 3 4 5 6 7 8 9 10” 計算出所有數字的總和
[root@localhost ~]# echo {1..10} | tr " " "+" |bc
55
6、處理字符串“xt.,l 1 jr#!$mn2 c*/fe3 uz4”,只保留其中的數字和空格
7、將PATH變量每個目錄顯示在獨立的一行
8、刪除指定文件的空行
9、將文件中每個單詞(字母)顯示在獨立的一行,並無空行
[root@localhost ~]# echo "aa bb cc dd ee ff" | tr ' ' '\n'
aa
bb
cc
dd
ee
ff
us
passwd命令:
-l:鎖定用戶
-u:解鎖用戶
-d:刪除用戶密碼
-e:過期期限,日期
-i:非活動時間
-n:密碼的最短使用期限
-x:密碼的最長使用期限
-w:警告期限
--stdin:
echo " passwd" | passwd --stdin name
gpasswd 命令
組密碼文件:/etc/gshadow
gpasswd [選項] group
-a USERNAME:向組中添加用戶
-d USERNAME:從組中移除用戶
newgrp 命令:
登錄到一個新組
newgrp [-] [group]
-:會模擬用戶重新登錄此組
chage命令:
更改用戶密碼的過期信息
chage
-d:上一次更改的日期
-E:賬號到期日期:到了這天賬號不可用1
-m:改密碼最小時間
-M:密碼能保留多少天cha
id命令:顯示用戶的真實和有效信息
id neme 其他用戶的
id 顯示自己
-u: 僅顯示有效的uid
-g:僅顯示基本gid
、
-G:顯示所有的組的id
-n:顯示名字而非id
su 命令:swith user
登錄式切換:會通過讀取用戶的配置文件來重新初始化
su - name
su -l name
不登錄式切換:不會讀取用戶的配置文件進行初始化
su name
注意:管理員可以不用密碼切換到其他用戶;其他用戶切換到root 就要密碼
su name -c`COMMAND`:僅以指定用戶的身份運行此處指定的命令;