linux用戶和組linux
安全3A: 算法
Authentication:認證shell
Authorization:受權centos
Accouting|Audition:審計安全
用戶user:bash
用戶類別::管理員和普通用戶app
普通用戶又分爲:系統用戶和登陸用戶ide
用戶的標識:UID加密
管理員:0centos7
普通用戶:1-65535
系統用戶:1-499(centos6) 1-999(centos7)
登陸用戶:500-60000(centos6) 1000-60000(centos)
組類別1:管理員組和普通組
管理員組:root 0
普通用戶組:1-65535
系統用戶組:1-499(centos6) 1-999(centos7)
登陸用戶組:500-60000(centos6) 1000-60000(centos)
組類別2:
用戶的主要組,基本組,主組:
用戶必須屬於一個且只有一個主組
用戶的附加組,輔助組:
一個用戶能夠屬於0個或多個輔助組
組類別3:
私有組:組名同用戶名,且僅包含一個用戶
公共組:組內包含多個用戶
安全上下文:
運行的程序==>進程
root:/bin/cat
qiuwei: /bin/cat
當兩個用戶運行上面的程序時,進程可以訪問資源的權限取決於進程的運行者的身份,
用戶的權限有多大就能訪問多大的資源
passwd:
使用man命令看下passwd格式
name:登陸用戶名(qiuwei)
passwd:密碼(X)
UID:用戶的身份編號(1000)
GID:用戶默認所在組編號(1000)
GECOS:用戶全名或註釋
dierctory:用戶的家目錄(/home/qiuwei)
shell:用戶默認使用的shell
以sarah用戶爲例:
name:登陸用戶名(sarah)
passwd:密碼(X)
UID:用戶的身份編號(1241)
GID:用戶默認所在組編號(1241)
GECOS:用戶全名或註釋(無註釋信息)
dierctory:用戶的家目錄(/home/sarah)
shell:用戶默認使用的shell==>/sbin/nologin
從上面能夠看到passwd是沒有的,用戶的密碼不是存放在/etc/passwd下的,而是在專門存放在/etc/shadow中,且只有管理員用戶可以查看,由於是密碼,若是普通用戶能看那就有問題了
shadow文件格式:
仍是以sarsh用戶爲例:
登陸用戶名: sarah
用戶密碼碼:$6$wMPzucdS$G9lv.F1KtfHUyZYGLYgpCkHr7kVZCXI7Q.
B8VyMzM8OsFAfKqWMtiYuguFtdhUTliqdZXiQJzxW5dZwW8ckZ0.(如今通常是使用sha512加密)
從1970年1月1日期密碼最近一次被更改的時間:17014
密碼的最短使用期限:0
密碼的最長使用期限;9999
密碼過時前幾天提醒時間:7
密碼過時幾天帳號會被鎖定:
從1970年1月1日算起,多少天后帳號失效
密碼期限示意圖:
加密機制:
加密:明文-->密文
解密:密文-->明文
單項加密:哈希算法,原文不一樣,密文不一樣
相同算法定長輸出,得到密文不可逆推除原始數據
雪崩效應:初始條件的微小改變,引發結果的巨大改變
對稱加密:加密和解密使用同一個密碼
非對稱加密:加密和解密實用的一對兒密鑰
密鑰對兒:
公鑰:public key
私鑰 :private key
加密算法種類:
md5:128位
sha1:160位
sha224:224位
sha256:256位
sha384:384位
sha512:512位==>如今經常使用
更改加密算法: authconfig --passalgo=sha256 --update
將加密算法改成sha256後,而後再改回sha512,經過對比可知,sha512密碼複雜程度大大超過了sha256
在第二個$和第三個$中間有幾個字符,稱爲salt,是隨機數,因此就算你兩個用戶設置相同的密碼可是家裏salt後,shadow現實的密碼也是徹底不同的
給上a,b,c用戶設置密碼centos,可是shadow顯示密碼徹底不同
密碼的使用策略:
1.使用隨機密碼
2.最短長度不要低於8位
3.應該使用大寫字母,小寫字母,數字和標點符號四類字符中至少三類
4.按期更換
設置隨機數:
openssl rand -base64 20
group文件格式:
羣組名稱:羣組名稱
羣組密碼:一般不須要設置密碼,密碼在/etc/gshadow
GID:羣組的ID
以當前組爲附加組的用戶列表(用逗號爲分隔符)
羣組名稱:admins
密碼:x
GID:503
以admins爲附加組的用戶:natasha,harry
gshadow文件格式:
羣組名稱:羣組名稱
羣組密碼:一般不須要設置密碼,密碼在/etc/gshadow
組管理員列表:組管理員的列表,更改組密碼和成員
以當前組爲附加組的用戶列表(用逗號爲分隔符)
羣組名稱:admins
密碼:x
組管理員列表:
以admins爲附加組的用戶:natasha,harry
vipw:編輯用戶密碼文件
vigr:編輯組文件
pwck:檢查用戶密碼的完整性
grpck:檢查用戶組及密碼文件的完整性
用戶和組管理命令
用戶:
useradd:建立用戶
-u:指定用戶的UID
-o:配合-u選項,不檢查UID的惟一性(即兩個用戶可用同一個UID)
-g GID:指明用戶的基本組,組名或GID都行
-c:用戶的註釋信息
-G:指明用戶的附加值,能夠多個,用逗號隔開
-d:以指定路徑(不存在)爲家目錄
備註:-d選項時,父目錄必須存在,子目錄不要有
-s:指明用戶的默認shell程序
/etc/shells文件中
-N:不建立私有組作主組,使用users組作主組
-r:建立系統用戶centos6 ID<500 centos7 ID<1000
說明:
用戶名:bietianshen
UID:5000
基本組:root
附加組:bin qiuwei
註釋信息:yongrenzirao
默認shell:/bin/csh
家目錄:/qiuwei
默認值設定:/etc/default/useradd
useradd -D顯示或更改默認設置
useradd -D -s /bin/csh:建立新用戶時,默認shell爲csh
練習:
1 、建立 用戶gentoo ,附加組爲bin 和root ,默認shell爲 爲
/bin/csh ,註釋信息爲"Gentoo Distribution"
useradd -G bin,root -s /bin/csh -c "Gentoo Distribution" gentoo id gentoo getent passwd gentoo
2 、建立 下面的用戶、組和組成員關係
名字爲 爲admins 的組
用戶natasha ,使用admins 做爲附屬組
用戶harry ,也使用admins 做爲附屬組
用戶sarah ,不可交互登陸系統, 且 不是admins 的成員,
natasha ,harry ,sarah 密碼 都是centos
指令:
groupadd admins useradd -G admins natasha useradd -G admins harry useradd -s /sbin/nologin sarah echo centos |passwd --stdin natasha echo centos |passwd --stdin harry echo centos |passwd --stdin sarah
用戶屬性修改
usermod:
選項:
-u:新UID
-g GID :新的基本組
-G GROUP1[GROUP2,....]:新附加組,原來的組將會被覆蓋,若保留原有。則要同時
使用-a選項,表示append,追加
-s SHELL:新的默認shell
-c:新的註釋信息
-d:新家目錄不會自動建立,原家目錄中的文件不會同時移動至新的家目錄;若要 建立新家目錄並移動原家數據,同時使用-m
-l:新名字
-L:lock指定用戶,在/etc/shadow密碼欄的增長!
-U:unlock,將/etc/shadow密碼欄的!拿掉
-e yyyy-MM-DD:指定用戶帳號過時日期
-f 10:設定非活動期限10天
指令
usermod -u 4567 -g root -aG qiuwei -s /bin/bash -l dj gentoo
UID:4567
基本組:root
附加組:bin,qiuwei
默認shell:/bin/bash
用戶名:dj
刪除用戶
userdel:
-r選項:刪除用戶家目錄
查看用戶相關的ID信息:id
選項:
-u:查看UID
-g:
-G:
-n:name
UID:4567
gid:0
group:基本組root(0),附加組bin(1)和qiuwei(500)
su:用戶切換
su usernam:非登陸時切換,即不會讀取目標用戶的配置文件,不改變當前工做目錄
su - usernam:登陸時切換,會讀取目標用戶的配置文件,切換至家目錄,徹底切換
登陸式shell,配置文件及次序:
/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc
非登陸式shell:
~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh
設置密碼
passwd [options]username :修改指定用戶的密碼,僅root用戶權限
passwd:修改本身的密碼
選項:
-l:鎖定指定用戶
-u:解鎖指定用戶
-e:強制用戶下次登陸修改密碼
-n mindays:指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提早多少天開始警告
-i inactivedays:非活動期限
--stdin:從標準輸入接受用戶密碼
echo 「centos」|passwd -stdin username
建立組
groupadd [options]...groupname
-g:指明GID
-r:建立系統組
centos6:ID<500
centos7:ID<1000
修改和刪除組
groupmod [option]...group
-n groupname:更改組名
-g GID:更改組ID
groupdel:刪除組
groupdel groupname:刪除指定組
更改組密碼:
組密碼:gpasswd
gpasswd [option]group
-a user:將user添加至指定用戶中
-d user:從指定用戶中移除用戶user
-A user1,user2,...:設置有管理權限的用戶列表
newgrp:臨時切換基本組
若是用戶不屬於此組,則須要組密碼
groupmems:列出組成員
groupmems -a user_name | -d user_name | [-g group_name] | -l | -p
列出組成員 groupmems -l -g qiuwei 增長組成員 groupmems -a root -g qiuwei 刪除組成員 groupmems -d root -g qiuwei