1、算法
3A認證: authentication:認證shell
Authorization :受權express
audition:審計centos
讀取、使用權限,對於本身的資源有所有的權限安全
兩級分配機制,管理功能薄弱app
屬主,通常是資源的擁有者,less
向文件標識他的屬主,屬組,和兩者以外的其餘用戶的對文件訪問權限,從而完成從用戶ssh
到資源兩者之間的權限的映射。tcp
每一個用戶對於資源經過認證,受權後,登陸後都會記錄在日誌中,爲審計提供證據。ide
組是什麼?用戶組的意義?
用戶組,用戶容器。多個用戶組織成邏輯組件,從而使咱們進行受權或者收回權限的時候比較容易操做。
用戶類別:
管理員
普通用戶:系統用戶,登陸用戶
用戶標識:UserID,UID
(開始是用16進制標識的,管理員:0 普通用戶:1:65635
CentOS5~6 CentOS7
系統用戶:1-499, 1-999
登陸用戶:500-60000, 1000-60000
名稱解析:名稱轉換
Username<-->UID
根據名稱解析庫進行 :/etc/passwd ,用戶其餘的附加信息。
組類別1:
管理員組
普通用戶組
系統組
登陸組
組標識:GroupID,GID
管理員組:0
CentOS5~6 CentOS7
系統用戶組:1-499, 1-999
登陸用戶組:500-60000, 1000-60000
名稱解析:groupname<-->gid
系統用戶組:/etc/group
組類別2:
用戶的主組(基本組)
用戶的附加組
組類別3:
用戶私有組:組名同用戶名,且只包含一個用戶;
用戶公共組:組內包含了多個用戶;
認證信息:
經過比對事先存儲的,與登陸時提供的信息是否一致,即驗證便可
password:早期,帳號和密碼都存放在/etc/passwd ,不安全,現單獨存放/etc/shadow
組的密碼 :/etc/gshadow
密碼的窮舉:
在不使用漢字的狀況下,一位的密碼128個,出去特殊字符,100個左右,
二位 100的平方
三位 100的立方
加密算法————解密算法、窮舉算法,
密碼不建議使用生日緣由:從公元前算,利用窮舉的算法,經過計算機很容易算出來,字典工具:羅列出經常使用組合機制。
咱們應該使用隨機數,隨機字符串。以文件保存在U盤中,
密碼使用1234,
惡意***破解密碼,一兩個月修改一下密碼
密碼的使用策略:
1、使用隨機密碼;
2、最短長度不要低於8位;
3、應該使用大寫字母、小寫字母、數字和標點符號四類字符中至少三類;
4、按期更換;
不能明文存放,是加密的,加密是不可逆的
加密算法:
1、對稱加密:(知道算法,可逆很難。加密都是一些科學難題。 )加密和解密使用同一密碼
2、非對稱加密:加密和解密使用一對密鑰;公鑰、私鑰。
3、單向加密:只能加密,不能解密:提取數據特徵碼;
定長輸出:
雪崩效應:
[root@localhost ~]# echo "how are you" | md5sum
5ea0b7cb299e8c26b2d9c87039f5e7ad -
[root@localhost ~]# echo "how are you?" | md5sum
ce55c98ac24d4c7764877fa58ab441ef -
算法:
1、md5: message digest,128bits
2、sha1:secure hash algorithm,160bits
3、sha224、sha256、sha384、sha512
[root@localhost ~]# useradd centos
[root@localhost ~]# useradd gentoo
[root@localhost ~]# passwd centos
更改用戶 centos 的密碼 。
新的 密碼:
無效的密碼: 密碼少於 8 個字符
從新輸入新的 密碼:
passwd:全部的身份驗證令牌已經成功更新。
[root@localhost ~]# passwd gentoo
更改用戶 gentoo 的密碼 。
新的 密碼:
無效的密碼: 密碼少於 8 個字符
從新輸入新的 密碼:
passwd:全部的身份驗證令牌已經成功更新。
[root@localhost ~]# tail /etc/shadow
pulse:!!:16778::::::
gdm:!!:16778::::::
rpcuser:!!:16778::::::
nfsnobody:!!:16778::::::
postfix:!!:16778::::::
sshd:!!:16778::::::
tcpdump:!!:16778::::::
mageedu:$6$1eWrOetY$DfLZgquGiOaNkwpEF4ItMipz.1kpn7Q.s6oXyoW2bALkWesRWHCCACICkJ.2zBXDbwEw0ibR.wxStLI41ZhfF1:16778:0:99999:7:::
centos:$6$T7u/drJk$kyYdkBmDJqbPuIfaxN1wZJtH8.nxIQS.pv5uoKjSMH.vIKmIn7PpxQK6Hp.SWA5OqYFsGwC9V9VeF8dCfOUJV.:16781:0:99999:7:::
gentoo:$6$xdzxBsIf$9fqZAiIYNFNUDbpaJ7RCz1Y14/8BxPn8Od0x8A2pUS3kChnnIa.Gfs5A8tx8xKIumO.n0RbipzUcMMfJL6JzP1:16781:0:99999:7:::
第2個」$「和第三個之間是」salt「|後面的是真正的密碼字符串。
在計算之時加入salt,上面新建的用戶的密碼同樣,加密算法同樣,因爲加入隨機數,密文不一樣,第二次隨機數再也不隨機,經過認證,確認登陸。
/etc/passwd:用戶的信息庫
name:用戶名
passwd:能夠是加密的密碼,也能夠是佔位符x
UID:
GID:用戶所屬的主組的Id號
GECOS:註釋信息
directory:用戶的家目錄;
Shell:用戶的默認shell,登陸時默認shell程序
/etc/shadow 密碼
九個字段:
登陸名
加密了的密碼
最後一次更改密碼的日期
密碼的最小使用期限
最大使用期限
密碼警告時間段
密碼禁用期
帳戶過時日期
保留字段:保留供未來使用
/etc/group:Group_name:password:GID:user_list
User_list:該組的用戶成員:以此組爲附加組的用戶的用戶列表。
2、
Linux用戶和組管理
1、groupadd命令:添加組
Groupadd [opition] group-name
系統用戶不用登錄,進程一某個普通用戶的身份運行,
進程對文件的訪問權限,取決於發起此進程的用戶的權限
爲了可以讓後臺進程或服務類進程以非管理員的身份進行,一般須要爲此建立多個普通用戶,這類用戶不用登錄系統
groupadd命令:添加組 groupadd [選項] group_name
-g GID :指定GID:默認是上一個組的GID+1;
-r :建立系統組;
2、groupmod命令:修改組屬性
groupmod [選項] GROUP
-g GID
-n new_name
3、 groupdel命令:刪除組
1、useradd命令:建立用戶
useradd [選項] 登陸名
-u,--uid UID :指定UID;
-g,--gid GROUP1[,GROUP2,…[,GROUPN]]]:指明用戶所屬的附加組,多個組用「,」隔開
-c,--comment COMMENT:指明註釋信息
-d,--home HOME_DIR:以指定的路徑爲用戶的家目錄;經過複製/etc/skel此目錄並重命名實現;指定的家目錄路徑若是事先存在,則不會爲用戶複製環境配置文件;
-s,--shell SHELL:指定用戶的默認shell,可用的全部shell列表存儲在/etc/shells文件;
-r,--system:建立系統用戶;
-m,若是不存在,則建立用戶主目錄。骨架目錄中的文件和目錄(可使用-k選項指定),將會複製主目錄。默認上,若是沒有指定此選項而且CREATE_HOME沒有啓用,不會建立主目錄。
-M:不建立主目錄,即便系統在 /etc/login.defs 中的設置(CREATE_HOME)爲yes。
-f:密碼過時後,帳戶被完全禁用以前的天數。0表示當即禁用,-1表示禁用這個功能。若是未指定,useradd將使用 /etc/default/useradd中的INACTIVE指定的默認禁用週期,或者默認爲-1.
注意:建立用戶是的諸多默認設定文件爲/etc/login.defs
useradd -D:顯示建立用戶的默認配置。
useradd -D 選項:修改默認選項的值。
修改的結果保存於/etc/default/useradd文件中;
2、usermod命令
usermod [選項] 登陸
-u,--uid UID:修改用戶的的ID爲此處指定的新UID;
-g,--gid GROUP:修改用戶所屬的基本組;
-G,--group1[,GROUP2,…[,GROUPN]]]:修改用戶所屬的附加組,原來的附加組會被覆蓋
-a,--append:與-G一同使用,用於爲用戶追加新的附加組;
-c,--comment COMMENT:修改註釋信息:
-d,--home HOME_DIR:修改用戶的家目錄,用戶原來的文件不會被轉移至新位置
-m,--move-home:只能與-d選項一同使用,用於將原來的家目錄移動爲新的家目錄
-l,--login NEW_LOGIN:修改用戶名
-s,--shell SHELL:修改用戶的默認shell;
-L,--lock:鎖定用戶密碼,即在用戶原來的媽媽字符串以前添加一個「!」
-U,--unlock:解鎖用戶的密碼
3、userdel
userdel [選項] 登陸
-r:刪除用戶時一併刪除其家目錄;
1、passwd命令:
Pass [-k] [-l] [-u] [-f] [-d][-e] [-n mindays] [-x maxdays] [-w warndays] [-I inactivedays] [-S] [--stdin] [username]
(1) passwd:修改用戶本身的密碼;(2)passwd USERNAME:修改指定用戶的密碼,但僅root由此權限;
-l,-u :鎖定和解鎖用戶,
-d,清除用戶密碼
-e DATE:過時期限,日期
-i DAYS:非活動期限
-n DAYS密碼的最短使用期限
-x DAYS:密碼的最長使用期限;
-w DAYS:警告期限
-- stdin:標準輸入 echo "PASSWORD" | passwd --stdin USERNAME
2、gpasswd命令
gpasswd [option] group
-a USERNAME 向組中添加用戶
-d USERNAME 從組中刪除用戶
newgrp 命令:登陸到一個新組
newgrp [-] [group]
-:會模擬用戶從新登陸以實現從新初始化其工做環境。
chage [選項] 登陸名
-d:
-d, --lastdayLAST_DAY
Set the number of days since January 1st, 1970 when the password was last changed. The date may also be expressed in the format YYYY-MM-DD (or the format more commonly used in your area).
-E:
-E, --expiredateEXPIRE_DATE
Set the date or number of days since January 1, 1970 on which the user's account will no longer be accessible. The date may also be expressed in the format YYYY-MM-DD (or the format more commonly used in your area). A user whose account is locked must
contact the system administrator before being able to use the system again.
EXPIRE_DATE 設置爲 -1 會移除帳戶的過時日期。
-W:
-W, --warndaysWARN_DAYS
Set the number of days of warning before a password change is required. The WARN_DAYS option is the number of days prior to the password expiring that a user will be warned his/her password is about to expire.
若是沒有選擇任何選項,chage 會進入交互模式,以全部字段的當前值提示用戶。輸入一個新值能夠更改這些字段,或者留空使用當前值。當前值出如今 [ ] 標記對裏。
-m:
-m, --mindaysMIN_DAYS
在密碼更改之間的最小天數設置爲 MIN_DAYS。此字段中的 0值表示用戶能夠在任什麼時候間更改其密碼。
-M:
-M, --maxdaysMAX_DAYS
Set the maximum number of days during which a password is valid. When MAX_DAYS plus LAST_DAY is less than the current day, the user will be required to change his/her password before being able to use his/her account. This occurrence can be planned for
in advance by use of the -W option, which provides the user with advance warning.
id命令:顯示用戶的有效id ,
id [option] … [USER]
id -g 基本組ID
id -u 僅顯示用戶的基本組ID;
id -G 僅顯示用戶所屬的全部組的ID;
id -n 顯示名字而非ID
Su命令:switch user
登陸式切換:會經過從新讀取目標用戶的配置文件來從新初始化
su - USERNAME
su -l USERNAME
非登陸式切換:不會讀取目標用戶的配置文件進行初始化
su USERNAME
注意:管理員可無密碼切換至其餘任何用戶;
-c 'COMMAND':僅以指定用戶的身份運行此處指定的命令
其餘幾個命令:
chsh - change your login shell,用法:chsh [-s shell] [-l] [-u] [-v] [username]
chfn - change your finger information,用法:
chfn [-f full-name] [-o office] ,RB [ -p office-phone] [-h home-phone] -u] [-v]
[username]
finger(yum install finger )
pwck - 檢查密碼文件的完整性 用法: pwck [選項] [passwd [ shadow ]]
grpck - 檢查組文件的完整性 用法:grpck [選項] [group [ shadow ]]
命令總結:groupadd,groupmod,groupdel,useradd,usermod, userdel passwd,gpasswd,newgrp,id,su,chage