目錄(持續更新)
基礎-第0章-安裝
基礎-第1章-基本操作
基礎-第2章-磁盤及文件系統管理
基礎-第3章-獲得幫助
基礎-第4章-用戶及權限基礎
基礎-第5章-網絡基本配置
基礎-第6章-管道,重定向及文本處理
基礎-第7章-系統啟動詳解
進階-第1章-日志服務
進階-第2章-DNS域名服務器
進階-第3章-FTP文件共享服務
進階-第4章-NFS文件共享服務
進階-第5章-SMB文件共享服務
進階-第6章-WEB服務Apache篇
進階-第7章-電子郵件服務
進階-第8章-Linux服務基礎及管理
高級-第1章-LVM邏輯卷
高級-第2章-高級權限ACL
高級-第3章-RAID提升速度及冗余
高級-第4章-高級網絡-網卡綁定,子端口
高級-第5章-SELinux安全系統基礎
高級-第6章-IPTable防火墻基礎
高級-第7章-Linux遠程管理-SSH、VNC
第4章 用戶及權限基礎
第一節 linux用戶基礎
-
用戶,組
當我們用linux是需要一個用戶的身份登入,
一個進程也需要一個用戶的身份運行,
希望根據用戶來限制使用或者進程可使用的資源 -
組用來方便組織管理用戶
每個用戶擁有一個userID,操作系統實際使用的是用戶ID,而非用戶名 每個用戶屬于一個主組,屬于一個或多個附屬組 每個組擁有一個GroupID 每個進程以一個用戶身份運行,并受到該用戶可訪問的資源限制 每個可登陸用戶擁有一個指定的shell
-
用戶
用戶ID為32位 從0開始,但是為了和老系統兼容 ID限制在60000一下 root用戶(ID為0的用戶就是root用戶) 系統用戶(1~499)為了進程服務創建的 沒有shell 普通用戶(500個以上) 系統中的文件都有一個所屬用戶及所屬組 使用id命令可以顯示當前用戶的信息 使用passwd命令可以顯示當前用戶的信息
-
相關文件
/etc/passwd 保存用戶信息 /etc/shadow 保存用戶密碼,加密的 /etc/group 保存組信息 passwd文件中 7個部分每個都用:隔開 第一個是用戶名 第二個是密碼x 表示保存在shadow當中 第三個是用戶ID號 第四個是組ID 第五個是用戶的描述信息 可能為空 第六個是用戶家目錄信息 第七個是用戶登錄的shell 1-499用戶使用sbin中的nologing shadow文件中 每個部分都用:隔開 第一個是用戶名 第二個是密碼 ??!為用戶沒有創建密碼 或加密后密碼 $ 分割 加密類型 加密加入 group文件中 每個部分都用:隔開 第一個是用戶名 第二個是組密碼 早期換組用 第三個是用戶ID號
-
查看登錄的用戶
命令whoami顯示當前用戶 命令who顯示有哪些用戶已經登錄系統 命令w顯示有哪些用戶已經登錄并且在干什么
-
創建一個用戶
命令useradd用來創建用戶 useradd 用戶名 這個命令會執行以下操作 在/etc/passwd中添加用戶信息 如果使用passwd命令創建密碼 則將密碼加密保存在/etc/shadow 為用戶建立一個新的家目錄/home/用戶名 將/etc/skel中的文件復制到家目錄 建立一個與用戶用戶名相同的組 并且新建用戶默認屬于這個組 useradd支持的參數 -d 指定家目錄 -s 登錄shell -u userID -g 主族 -G 附屬組(最多31個,用“,”分割) 也可以通過直接修改/etc/passwd的方式實現,
-
修改用戶信息
命令usermod用來修改用戶信息 usermod 參數 username 命令usermod支持一下參數 -l 新用戶名 -u 新userid -d 用戶家目錄位置 -g 用戶所屬主組 -G 用戶所屬附屬組 -L 鎖定用戶使其不能登錄 -U 解鎖用戶
-
刪除用戶
命令userdel用來刪除指定用戶 userdel 用戶名 但保留用戶家目錄 userdel -r 用戶名 同時刪除用戶的家目錄
-
組
用過部門職能和地理創建組每個組都有一個ID 組信息保存在/etc/group 每個用戶有一個主組 最多可以有31個附屬組
-
創建刪除修改組
命令groupadd用來創建組 groupadd 組名 命令groupmod用來修改組信息 groupmod -n 新組名 舊組名 groupmod -g 新組ID 舊組ID 命令groupdel用以刪除組 groupdel 組名
第二節 linux權限機制
-
權限
權限是操作系統用來限制對資源訪問的機制,權限一般分為 讀 寫 執行
每個文件都擁有特定的權限 有所屬用戶和組
每個進程都是以用戶身份來運行 -
linux三種權限
讀r 可讀取文件的內容 可可列出目錄內容 寫w 可以修改文件內容 可在目錄中創建刪除文件 執行x 可以作為命令執行 可訪問目錄內容 目錄必須有X權限,否則無法查看其內容
-
UGO模型
linux的權限基于UGO模型進行控制 U代表User,G代表Group,O代表Other 每個文件的權限基于UGO進行設置 權限三個一組rwx,對應UGO分別設置 每個文件擁有一個所屬用戶和所屬組,對應UG, 不屬于該文件所屬用戶據或者所屬組的使用O權限 命令 ls -l 可以查看當前目錄下文件的詳細信息 drwx-xr-- 2 sky testing 208 Oct 2 14:03 linux drwx-xr-- 表示UGO 2 表示連接數量 sky 表示所屬用戶 testing 表示所屬組 208 大小 Oct 2 14:03 建立時間 linux 文件名 d為文件類型 rwx 為U用戶權限 r-x 為G組權限 r-- 為其他權限
-
修改文件所屬用戶和組
命令chown用來改變文件的所屬用戶 chown 用戶名 要修改的文件名 -R 參數遞歸的修改目錄下所有文件的所屬用戶 命令chgrp用來改變文件的所屬組 chgrp 組名 要修改的文件名 -R 參數遞歸的修改目錄下所有文件的所屬組
-
修改權限
命令chmod用來修改文件的權限 chmod 模式 文件 模式為如下格式: u g o 分別代表用戶,組和其他 a可以代指ugo + - 代表加入或者刪除對應權限 r w x 代表三種權限 模式示例 chmod u+rw linux 要修改所屬用戶權限 加入rw權限 chmod g-x linux 為組刪掉X權限 chmod go+r linux 為組和其他加上r權限 chmod a-x linux 為所有組刪掉X權限 -R可以遞歸修改目錄下所有文件權限 也可以用數字的方式修改權限 r=4 2^2 w=2 2^1 x=1 2^0 使用數字權限表示 rw = 4+2 = 6 rwx = 4+2+1 = 7 所以以數字修改要三個都修改
第三節 linxu默認權限 特殊權限
-
默認權限
每個終端都有 umask 屬性 來確定文件默認權限 umask可查看 umask使用數字權限表示 (后三位) 如 022 777 目錄的默認權限是 777 - umask 文件的默認權限是 666-umask 普通用戶的默認umask是 002 root用戶的默認umask是 022
-
特殊權限
umask的第一位 三個特殊權限 suid 以文件命令的所屬用戶身份執行 對目錄無影響 而非執行文件的用戶 sgid 以文件所屬組身份執行 在該目錄中創建的任意性文件所屬組與該目錄的所屬組相同 所有子文件都繼承目錄的組 sticky 對文件無影響 對目錄擁有寫入權限的用戶僅可以刪除其擁有的文件 無法刪除其他用戶文件
-
設置特殊權限
設置suid chmod u+s linux 設置sgid chmod g+s linux 設置sticky chmod o+t linux 和普通權限一樣,特殊權限也可以使用數字方式表示 - SUID = 4 - SGID = 2 - STICKY = 1 所以我們可以通過以下命令設置 chmod 1755 linux