用戶權限管理
一、Linux下用戶的角色分類
- 超級用戶:擁有最高管理權限,默認是root用戶
- 普通用戶:具有登錄系統的權限,只能對自己目錄下的文件進行訪問和修改。
- 虛擬用戶:也稱偽用戶,這類用戶最大的特點是不能登錄系統,它們的存在主要是方便系統管理,滿足相就的系統進程對文件屬主的要求,如系統統默認的bin,adm,nobody用戶等 。
二、用戶和組的關系:一對一、一對多、多對一、多對多
三、用戶配置文件概述
1.用戶和組相關的配置文件
(1)/etc/passwd文件,查看命令 more /etc/passwd
格式: 用戶名:密碼:用戶標識號:組標識號:註釋性描述:主目錄:默認shell
- 用戶名:代表用戶賬號的字符串
- 密碼:存放著加密後的用戶密碼
- 用戶標識號(UID):範圍0-65535.
0:root用戶的標識號;
1-99:系統保留,作為管理賬號;
500以後:普通用戶;
- 組標識號(GID):記錄用戶所屬的用戶組,對應etc/group文件中的一條記錄。
- 註釋性描述:對用戶的描述信息
- 主目錄:用戶登錄系統後默認所處的目錄,也叫根目錄
- 默認shell:用戶登錄後默認使用的命令解釋器。shell是用戶和linux內核之間的接口,用戶的所有行為都是通過shell傳遞組系統內核的。linux下常用的shell有sh,bash,csh等 。管理員可為用戶設置不同的shell。
(2)/etc/shadow文件 查看命令 more /etc/shadow
格式: 用戶名:加密密碼:最後一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:保留字段
由於/etc/passwd文件是所有用戶都可讀的,因此容易出現安全問題,於是,linux將用戶密碼單獨分享出來,存在shadow中。該文件只有root用戶擁有讀權限。
(3)/etc/group文件 查看more /etc/group
格式: 組名:密碼:組標識號:組內用戶列表
- 組名:由字母和數字構成,不能重復
- 密碼:密碼默認設置在/etc/shadow文件中,這裏用x代替。linux系統下默認的用戶組都沒有密碼,可以通過gpasswd來組用戶添加密碼。
- 組標識號(GID):與/etc/passwd中的組標識號對應
- 組內用戶列表:屬於這個組的所有用戶,用戶之間用逗號分隔
(3)/etc/login.defs文件
作用:用來定義創建一個用戶時的默認設置,比如指定用戶的UID和GID的範圍,用戶的過期時間,是否需要創建用戶主目錄等 。
(4)/etc/default/useradd文件 useradd -D不加任何參數,顯示當前設置
通過useradd命令創建一個用戶後,用戶默認的主目錄一般位於/home下,默認使用的shell是/bin/bash。改變此文件有兩種 方式:通過文本編輯器和useradd命令。
useradd命令後加 -D 參數後,可以修改文件,一般格式 如下:
useradd -D [-g group] [-b base] [-s shell] [-f inactive] [-e expire]
- -g default_group 表示新建用戶的起始組名或都GID。組名必須為已存在的用戶組名稱
- -b default_home 指定新建用戶主目錄的上級目錄
- -s default_shell 指定新建用戶默認使用的shell
- -f default_inactive 指定用戶賬號過期多長時間後就永久停用
- -e default_expire_date 指定用戶賬號的過期時間
(5)/etc/skel目錄
該目錄定義了新建用戶在主目錄下默認的配置文件,更改該目錄下的內容就可以改變新建用戶默認主目錄的配置文件信息
四、用戶管理工具
1.groupadd命令
作用:新建用戶組
格式:groupadd [-g -o] gid group
- -g:指定新建用戶組GID,唯一
- -o:一般與-g選項同時使用,表示新用戶組可以與已有用戶組的GID相同。
2.newgrp命令
作用:在多個用記組之間進行切換
格式:newgrp <用戶組〉
3.groupdel命令
作用:刪除用戶組
格式:groupdel [群組名稱]
需刪除組中用戶才能刪除組
4.useradd
- useradd建立用戶的過程:系統讀取用於添加用戶的配置文件/etc/login.defs和/etc/default/useradd,根據這兩個文件中的規則添加用戶--〉向/etc/passwd和/etc/group文件添加用戶和用戶組記錄,同時這兩個文件也會自動生成記錄--〉系統自動在/etc/default/useradd文件設定的目錄下建立用戶主目錄--〉復制/etc/skel目錄中的所有文件到 新用戶的主目錄中。用戶創建完成。
- useradd的語法
useradd -ugGdscfe name
- -u uid:用戶標識號,唯一
- -g group:用戶登陸時的默認組,該組必須已經存在
- -G group:附加組,也已經存在方可添加。
- -d home:默認主目錄
- -s shell:默認shell
- -c comment:新建用戶的說明信息
- -f inactive:指定賬號多長時間後永久停用。值為0時立刻被停用。值為-1時,代表該功能不啟用
- -e expire,指定賬號的過期時間,格式為MM/DD/YY
- name: 指定需要創建的用戶名
- usermod用法
作用:修改用戶的賬戶屬性信息
格式:usermod -ugGdmsclfeLU name
-l 修改用戶賬號為新的名稱
-L 鎖定用戶密碼,使密碼無效
-U 解除密碼鎖定
- userdel的用法
作用:刪除用戶
若指定-r參數,不但刪除用戶,還刪除主目錄及目錄下所有文件
格式:userdel -r 用戶賬號
五、文件權限設定
1.查看文件的權限屬性
命令: ls -al
作用:顯示文件或者目錄 的權限信息
(1)文檔類型及權限
- 文檔類型部分:d--表示目錄;l--青不軟鏈接;“-”表示文件;c-表示串行端口字符設備文件;b--表示可供存儲的塊設備文件
- 接下來的3個字符一組:r-read; w-write; x-execute;“-”表示無此權限;rwx的順序是不變的
- user部分是對文檔所有者權限的設定
- group部分是對文檔所屬用戶組權限的設定
- others部分是對所有者之外的其他用戶權限的設定
(2)鏈接數:硬鏈接的概念,即多少個文件指向同一個incode
(3)文檔所屬的用戶和用戶組,即為誰所有。如上面的文件,所屬用戶為oracle ,所屬的組為oinstall組。通過chown命令可以修改文檔的用戶屬性
(4)文檔大小,以字節為單位(字節是計算機的最小存儲單位,1Byte=8 bit)試一下ls -sh命令,對於目錄,只顯示文件系統默認塊的大小
(5)第五列顯示文檔最後一次修改的日期,顯示格式為月-日-時-分;如果修改時間較久遠,則使用月-日-年的方式顯示
(6)第六列是文檔名稱。“.”開頭的文件/目錄為隱藏文件/目錄。隱藏文檔只有通過ls -a命令才顯示。
2.chown 命令改變屬主和屬組(change owner)
語法:chown [-R] 用戶名稱:用戶組組名稱 文件或目錄
註意:操作前,確保指定的用戶及用戶組在系統中是存在的
3.利用chmod改變訪問權限
兩種用法:
(1)字符設定法。語法:chmod [who] [+ |-|=] [mode] 文件名
-who可以是如下字母中的一個或組合:
--u:用戶,即文件或目錄的所有者
-g:用戶組,即文件或目錄的用戶組
-o:其它用戶,
-a:所有用戶
--操作符:
+:添加某個權限
-:取消某個權限
=:賦予給定的權限,同時取消文檔以前的所有權限
--mode表示可以執行的權限,可是r.w.x以及他們的組合
--文件名可以是以空格分開的文件列表,支持通配符
(2)數字設定法
0:無權限
1:x-可執行
2:w-可寫
4:r-可讀
語法:chmod [屬主權限的數字組合] [用戶組權限的數字組合] [其他用戶權限的數字組合] 文件名
用戶權限管理