一 、Linux用戶、組和權限管理
簡介Linux:
- 多任務,多用戶 (Multi-tasks,multi-Users)
- 每一個使用者: 用戶 (user)
- 登陸需有系統認證:用戶標識(密碼),
- 3A:
- 認證:(Authentication)
- 受權(Authorization)
- 審計(Audition)
- 每個用戶登陸都要經過認證,使用受權,以及行爲審計。
用戶類別:
管理員算法
普通用戶 :系統用戶 , 登陸用戶shell
用戶標識: UserID ,UID
通常默認16bits 二進制數字: 0-65535centos
管理員標識:0 不會改變安全
普通用戶: 1-65535加密
系統用戶:1-499, 1-999 (centos6 ,centos7) centos7
登陸用戶:500-60000 , 1000-60000spa
- 當每一個用戶登陸系統會自動將其轉換爲用戶標識.
- 名稱解析(轉換): Username <->UID
- 根據名稱解析庫進行轉換(對照:用戶名及ID)爲系統可識別的用戶標識:UID,存放在/etc/passwd
組類別:
管理員組對象
普通用戶組: 系統組 ,登陸組遞歸
組標識: Groupname, GID進程
同用戶: 名稱解析:groupname < -> gid
解析庫: /etc/group
組類別2 : 用戶的基本組
用戶的附加組
組類別3:
- 私有組: 組名同用戶名,且只包含一個用戶:
- 公共組: 組內包含了多個用戶:
- 認證信息:經過對比事先存儲的,與用戶登陸時所提供的的信息是否一致:其爲密碼:password:
- /etc/shadow:用戶密碼庫文件 (影子化了的密碼)
-
- 用戶密碼:/etc/shadow
- 用戶名:加密的密碼:最近一次修改的時間(1970.1.1)最短使用期限:警告期段:過時階段:保留階段:
- /etc/gshadow :組密碼庫文件
- 組的信息庫:/etc/group
- group_name:password:GID:user_list
- user_ list :改組的用戶成員:以此組爲附加組的用戶的用戶列表
- 其密碼以密文形式存放,
- 加密算法 .
- 用戶的信息庫 :/etc/passwd
- name:password:UID:GID:GECOS:directory:shell :密碼存放格式
- name :用戶名
- password: 能夠是加密密碼 ,也能夠是佔位符
- UID:
- GID:用戶的所屬的主組ID號
- GECOS:註釋信息
- direcatdory:用戶的家目錄:
- shell :用戶的登陸環境及用用戶默認shell,登陸時默認shell程序:
2、Linux用戶和組管理:
安全上下文:
進程以其發起者的身份運行,:進程對文件的訪問,取決去發起此進程的用戶權限:
建立組: groupadd
語法格式: groupadd [option] group_name
-g GID: 指定gid:默認
-r :建立系統組
修改組 : groupmod
語法格式: groupmod [option] group
-g : 修改GID
-n new_name :修改組名稱
刪除組: groupdel
語法格式:groupdel【option】group
建立用戶:useradd
語法格式:useradd 【option】LOGIN
-u : 指定UID
-g: 指定GID 基本組
-G : 指定用戶所屬的附加組
-c : 指明註釋信息
-d : 以指定的路徑爲用戶的家目錄:經過複製/etc/skel,此目錄並重名重現,
若是指明家目錄路徑事先存在,則不能被複制配置環境文件。
-s : 指定用戶默認shell ,可用的shell存放在 /etc/shells
-r : 建立系統用戶
useradd -D : 顯示用戶登陸默認信息 及修改 :useradd -D [選項] :
修改默認配置信息存放於/etc/defaunlt/useradd文件中,
默認信息存放於/etc/login.defs文件中.
修改用戶:usermod
語法格式:usermod【option】LOGIN
-u :修改用戶UID,
-g: 修改用戶gid jibenzu
-G: 修改用戶所屬附加用戶原來的被覆蓋
-a: 與-G一塊兒使用代表爲追加用戶新的附加組
-d: 修改用戶家目錄:用戶原來的文件不會隨其轉移到新的位置
-m:只可以與-d一塊兒使用,用於講文件和用戶家目錄一塊兒移動帶新的位置
-l : 修改用戶名
-s:修改用戶默認shell
-L:鎖定用戶密碼:在原來的密碼字符串以前加「!」
-U: 解鎖用戶密碼
刪除用戶:userdel
語法格式:userdel 【option】LOGIN
-r: 刪除用戶時一併刪除其家目錄:
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays]
[-w warn‐ days] [-i inactivedays] [-S] [--stdin] [username]
修改本身及 用戶密碼:修改指定用戶的密碼,僅root有權限
-l,-u:鎖定 用戶密碼
-d:清除用戶密碼
-e: 過時期限,日期
-i:活動期限
-n:密碼最短使用時間
-x:密碼最長使用時間
-w: 警告期限
-s:帳號無效
gpasswd:建立組密碼
文件存放於/etc/gshadow
gpasswd 【option】group
-d :
爲組建立其做用避免其餘不屬於本組的隨意切換基本組
newgrp :切換組
newgrp【-】group
-:模擬用戶從新登陸以從新初始化其工做環境
chage :更改用戶密碼過時信息
chage【option】LOGIN
id:顯示用戶真實有效ID信息:
id [OPTION]... [USER]
su: switch user
su [options...] [-] [user [args...]]
登陸式切換:會經過讀取目標用戶的環境配置文件來從新初始化
su- USERNAME
su-l USERNAME
非登陸式切換:不會讀取目標用戶的配置文件進行從新初始化
su USERNAME
管理員可無密碼切換至其餘用戶,非管理員切換需輸入其目標用戶密碼。
-c ‘COMMAND’’僅以指定用戶的身份運行此處指定的命令:
3、權限管理:
rwxrwxrwx:
左三位:定義user(owner)的權限
中三位:定義group的權限
右三位:定義other的權限
進程的安全上下文:
進程對文件的訪問權限應用模式模型:
進程的屬主與文件的屬主是否相同若是相同:則應用屬主權限:不然,則檢查進程屬主是否屬於文件的屬組:若是相同則應用屬組權限:不然屬於其餘(other)權限:
權限:
r:read 讀
w:write,寫
x :excute執行
文件:
r:readble可獲取文件的數據
w:writeble可修改文件的數據
x:excutable可將此文件運行爲進程
目錄:
r:可以使用ls 命令獲取期目錄下的文件列表:
w: 可修改此目錄下的文件列表,建立或刪除
x: 可cd到此目錄下,執行命令
對於目錄執行權限必需要有: rwxrwxrwx (mode)
ownership:文件從屬(user,group)
權限組合機制:
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw-110 6
rwx111 7
八進制組合權限表示 法 例:rw-rw-rw- 666, rwx-wxr-x 735
權限命令管理:
-
-
從屬管理命令:chmod ,chown
chmod 命令:修改權限
1. chmod [OPTION]... MODE[,MODE]... FILE...
2. chmod [OPTION]... OCTAL-MODE FILE...
3. chmod [OPTION]... --reference=RFILE FILE...
用戶類別:u 屬主 g :屬組 o:其餘 a:全部
- 賦權表示法:u=xx g=xx o=xx a=xx 直接
-rw-r--r--. 1 root root 0 Apr 1 22:09 sun
[root@station37 tmp]# chmod g=rx sun
[root@station37 tmp]# ll
-rw-r-xr--. 1 root root 0 Apr 1 22:09 sun
2.
受權表示法:u+ ,g+,o+, a+; u-,g-,o-,a-,
-rw-r-xr--. 1 root root 0 Apr 1 22:09 sun
root@station37 tmp]# chmod u-w sun
-r--r-xr--. 1 root root 0 Apr 1 22:09 sun
option: -R:遞歸修改
用戶只能在本身的權限內修改權限
chown命令: 修改屬主,也可加:或 .修改組
1. chown [OPTION]... [OWNER][:或.[GROUP]] FILE...
2. chown [OPTION]... --reference=RFILE FILE...
OPTION:
-R:遞歸修改
1.
[root@station37 ~]# chown -R gentoo /tmp/sun
[root@station37 ~]# ls -l /tmp/sun
-r--r-xr--. 1 gentoo root 0 Apr 1 22:09 /tmp/sun
[root@station37 ~]# chown -R gentoo.fedora /tmp/sun
[root@station37 ~]# ls -l /tmp/sun
-r--r-xr--. 1 gentoo fedora 0 Apr 1 22:09 /tmp/sun
- --reference(參考對象
drwx------. 2 root root 4096 Apr 1 22:55 sun3
drwxr-xr-x. 2 root root 4096 Apr 1 22:55 sun6
[root@station37 tmp]# chmod -R --reference=/tmp/sun6/ /tmp/sun3/
drwxr-xr-x. 2 root root 4096 Apr 1 22:55 sun3
drwxr-xr-x. 2 root root 4096 Apr 1 22:55 sun6
一個用戶沒有權限寫文件可是未必不能刪除文件,只有管理員纔有權限修改屬主,屬組.
umask:文件權限的遮罩碼或反向掩碼
是建立的其餘用戶權限限制
文件:666-umask
目錄:777-umask
之因此文件用666減去,表示文件默認不能擁有執行權限:
umask:023
666-023=644 文件若是自己有執行權限則加一
777-023=754
umask命令: umask:查看當前umask umask MASK :設置umask (此類設置僅對當前shell有效)