Linux基礎知識(四)

寫在前面:

    博客書寫牢記5W1H法則:What,Why,When,Where,Who,How。


用戶、組和權限:

◆ 用戶類別與用戶標識

◆ 組類別與組標識

◆ 認證機制與密碼存儲

    加密算法

    隨機數簡介

◆ 安全上下文

◆ 用戶和組管理

    groupadd

    groupmod

    groupdel

    /etc/passwd

    useradd

    /etc/login.defs與/etc/default/useradd

    /etc/shadow

    usermod

    userdel

    passwd

    id

    su

    gpasswd

    newgrp

    chage

    chfn

    finger

    chsh

    pwck

    grpck



linux是多用戶多任務的系統

    多用戶:多人同時使用系統資源;

    多任務:同時運行多個進程;

linux AAA機制

    Authentication #認證

    Authorization  #授權

    Account #賬號

用戶類別與用戶標識:

    管理員:root

    普通用戶:

        系統用戶:僅用戶運行系統程序;

        登錄用戶:系統資源的正常使用者;

    用戶標識(UID):

    linux系統一般用16bits的二進制數字表示,即0-65535。也有些系統用32bits的二進制數字表示。

    管理員:0

    普通用戶:

        系統用戶:

            centOS5,6:1-499

            centOS7:1-999

        登錄用戶:

            centOS5,6:500+

           centOS7:1000+

    補充:linux系統存儲二進制數字更加高效,所有用戶都是以UID來標識的,但對於用戶來說,這樣的數字並不好記憶,所以linux對用戶和UID做了關聯文件(/etc/passwd),以使用戶和系統都能快速識別用戶。


組類別與組標識:

    管理員組

    普通用戶組:

        系統組

        登錄組

    組標識(GID):

        管理員組:0

        普通用戶組:

            系統用戶組:

                centOS5,6:1-499

                centOS7:1-999

            登錄用戶組:

                centOS5,6:500+

                centOS7:1000+

    補充:與用戶類似,組同樣有一個組名與GID對應的文件:/etc/group


認證機制與密碼存儲:

    通過對比登錄時提供的信息與事先存儲的信息是否一致來判斷。

    用戶認證信息文件:/etc/shadow

    組認證信息文件:/etc/gshadow

    密碼存儲方式:

        加密存放,單向加密。僅加密,無法解密,通過提取數據特徵碼計算,具有以下特徵:

        數據相同,加密結果相同;

        定長輸出;

        雪崩效應;(數據中有一點兒改變,則計算結果大不相同)

    加密算法:(以下加密算法在/etc/shadow文件的密碼字段分別以1-6表示)

        md5:128bits

        sha1:160bits

        sha224

        sha256

        sha384

        sha512

    補充:

        /etc/shadow和gshadow文件存儲加密密碼時,並不是通過密碼字符串直接使用加密算法計算結果來存儲,而是先在密碼字符串中添加不定長隨機數(salt),然後再進行計算並將salt與加密結果一併存儲。

    隨機數簡述:

        熵池:真正隨機產生的隨機數

        僞隨機數:軟件模擬產生

        /dev/random:僅從熵池返回隨機數,隨機數耗盡時會阻塞進程;

        /dev/urandom:先從熵池返回隨機數,熵池耗盡時,則從僞隨機數生成器返回隨機數;


安全上下文:

    進程:以某個用戶的身份運行,進程對資源的操作權限取決於它所代表的用戶;

    文件:權限模型

    屬主:owner

    屬組:group

    其它:other

    權限模型生效的機制:

        進程的運行者:

    是否與文件的屬主相同,如果是,則以文件屬主的身份來訪問此文件;否則

            是否屬於文件的屬組,如果是,則以文件屬組的身份來訪問此文件;否則

            以文件的其它用戶的身份來訪問此文件;


用戶和組管理:

    主要命令如下:

        組:groupadd、groupmod、groupdel

        用戶:useradd、usermod、userdel

        密碼認證:passwd

    組管理:

        組文件:/etc/group

        文件格式:

            group_name:password:GID:user_list

            密碼行只是密碼佔位符,密碼真實存儲位置在/etc/gshadow

    groupadd:

        create a new group

        groupadd [options] group

            -g, --gid GID:設置GID

            -r, --system:創建系統組

    groupmod:

        modify a group definition on the system

        groupmod [options] GROUP

            -g, --gid GID:修改GID

            -n, --new-name NEW_GROUP:修改組名

    groupdel:

        delete a group

        groupdel group

    用戶管理:

        用戶文件:/etc/passwd

        文件格式:

            account:password:UID:GID:GECOS:directory:shell

            GECOS:用戶註釋信息

    useradd:

        create a new user or update default new user information

        useradd [options] LOGIN

            -c, --comment COMMENT:用戶註釋信息

            -d, --home HOME_DIR:家目錄

            -g, --gid GROUP:設置基本組

            -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:設置附加組

            -m, --create-home:強制創建家目錄

            -M:不創建家目錄

            -r, --system:創建系統用戶

            -s, --shell SHELL:用戶登錄的shell名

            -u, --uid UID:設置UID

        useradd -D

            顯示創建用戶時的默認設置;

        useradd -D [options]

            設置默認選項;

            -e, --expiredate  EXPIRE_DATE:用戶賬號的過期期限;過期後會被鎖定;日期以 YYYY-MM-DD 格式指定

            -f, --inactive INACTIVE:密碼過期後,賬戶被徹底禁用之前的天數。0 表示立即禁用,-1 表示禁用這個功能

        補充:/etc/login.defs文件設置了新建用戶的默認控制信息(郵箱目錄、密碼過期設置、UID及GID默認取值範圍、家目錄、umask、密碼加密方式);

         /etc/default/useradd文件設置了新建用戶的默認家目錄、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

    登錄名:密碼:密碼最近一次的修改時間:密碼最短使用期限:密碼最長使用期限:警告天數:非活動期限:賬號禁用日期:保留字段

    密碼是以“$加密算法$salt$加密的密碼字符串”格式存儲的


    用戶密碼過期圖示:

wKiom1bdbSTiqfo2AAA2p3sraLU100.png

    usermod:

    modify a user account

    usermod [options] LOGIN

        -d, --home HOME_DIR

            usermod -m -d HOME_DIR修改家目錄的同時,將原家目錄文件複製到新目錄

        -g, --gid GROUP

        -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:設置附加組,會覆蓋原有附加組!與-a選項一起使用,添加附加組而不覆蓋

        -l, --login NEW_LOGIN:修改用戶名

        -s, --shell SHELL

        -u, --uid UID

        -L, --lock:鎖定用戶,會在密碼文件/etc/shadow密碼字段前加“!”

        -U, --unlock:解鎖用戶,去掉密碼字段前!

    userdel:

    delete a user account and related files

    userdel [options] LOGIN

        -r, --remove:一併刪除用戶家目錄和用戶郵箱

    passwd:

    update user’s authentication tokens

    passwd   [-l]  [-u  [-f]]  [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [--stdin] [username]

    (1)passwd:修改自己的密碼;

    (2)passwd USERNAME:修改其他用戶密碼,僅root用戶可用

        -l:鎖定密碼

        --stdin:從標準輸入讀取密碼

        -u:解除鎖定

        -d:快速清除密碼;

    密碼複雜度:

        不少於8位字符

        不可與舊密碼太相似

        應該包含4類字符(小寫字母、大寫字母、數字、特殊符號)中的3種

    id

    print real and effective user and group IDs

    id [OPTION]... [USERNAME]

        -u:僅查看uid

        -g:僅查看gid

        -G:查看所屬的所有組的ID;

        -n:顯示名稱,而非ID

    su

    run a shell with substitute user and group IDs

         -, -l, --login:以登錄方式切換,完全切換

        -c, --command=COMMAND:僅以指定用戶身份運行此命令,而不切換用戶

    gpasswd

    administer /etc/group and /etc/gshadow

    gpasswd [option] group

        -a, --add user:添加用戶到組

        -d, --delete user:從組中將用戶移除

    newgrp

    log in to a new group

    newgrp [-] [group]

    臨時切換登錄用戶的基本組,使用exit退出

    chage

    change user password expiry information修改用戶密碼終止信息

    chage [options] [LOGIN]

        -d, --lastday LAST_DAY:設置密碼最近一次修改時間。使用距1970年1月1日的天數或設置YYYY-MM-DD格式的日期

        -E, --expiredate EXPIRE_DATE:設置賬號禁用日期,設置-1移除禁用日期功能

        -I, --inactive INACTIVE:設置非活動期限,設置-1移除非活動期限

        -l, --list:顯示密碼信息

        -m, --mindays MIN_DAYS:密碼最小改動期限

        -M, --maxdays MAX_DAYS:密碼最大使用期限

        -W, --warndays WARN_DAYS:密碼過期前提醒天數

    chfn

    change your finger information

    chfn  [-f full-name] [-o office] ,RB [ -p office-phone] [-h home-phone] [-u] [-v] [username]

    修改用戶附加信息,即/etc/passwd文件的第5字段

    finger

    user information lookup program

    finger [-lmsp] [user ...] [user@host ...]

    chsh

    change your login shell

        -s, --shell shell:修改登錄shell

        -l, --list-shells:顯示/etc/shells列出的shell

    pwck

    (passwd chack)verify integrity of password files

    檢查/etc/passwd和/etc/shadow文件格式及信息可用

    grpck

    (group check)verify integrity of group files

    檢查/etc/group和/etc/gshadow文件格式及信息可用


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