Linux 用戶及許可權詳解 用戶 , 組 ,許可權 安全上下文(secure context); 許可權: r,w,x 文件: r : 可讀,可以使用類似cat 等命令查看文件內容。 w : 可寫,可以編輯或刪除此文件; x : 可執行,eXcutable, 可以命令提示符下當做命令提交給內核運行; 目 ...
Linux 用戶及許可權詳解
用戶 , 組 ,許可權
安全上下文(secure context);
許可權:
r,w,x
文件:
r : 可讀,可以使用類似cat 等命令查看文件內容。
w : 可寫,可以編輯或刪除此文件;
x : 可執行,eXcutable, 可以命令提示符下當做命令提交給內核運行;
目錄:
r : 可以對此目錄執行ls 以列出內部所有文件;
w : 可以在此目錄中創建文件;
x : 可以使用cd 切換進此目錄,也可以使用ls -l 查看內部文件的詳細信息;
rwx:
r--: 只讀
r-x: 讀和執行
---: 無許可權
0 000 --- 無許可權
1 001 --x 執行
2 010 -w- 寫
3 011 -wx 寫和執行
4 100 r-- 只讀
5 101 r-x 讀和執行
6 110 rw- 讀寫
7 111 rwx 讀寫執行
許可權的數字寫法
rw-r----- : 640
rw-rw---- : 660
用戶: UID , etc/passwd
組:GID, etc/group
影子口令 :
用戶 : /etc/shadow
組: /etc/gshadow
用戶類別:
管理員: 0
普通用戶: 1-65535
系統用戶:1-499
一般用戶:500-60000
用戶組類別:
管理員組:
普通組:
系統組:
一般組:
用戶組類別:
私有組: 創建用戶時,如果沒有為其制定所屬的組,系統會自動為其創建一個與用戶名同名的組
基本組: 用戶的預設組
附加組,額外組 : 預設組以外的其他組。
cat /etc/passwd 文件屬性解析 :為分隔符號
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
1 account: 用登錄名
2 password : 密碼
3 UID:用戶ID
4 GID:基本組ID
5 comment: 註釋
6 HOME DIR : 家目錄
7 SHELL : 用戶的預設shell
etc/shadow
account `: 登錄名
encrypted password : 加密的密碼 MD5
創建時間
加密方法:
對稱加密: 加密和解密都用同一個密碼。
公鑰加密: 每個密碼都成對出現,一個為私鑰(secret key) 一個為公鑰(public key)
單向加密: 散列加密: 提取數據特征碼,常用於數據完整性校驗
1 雪崩效應
2 定長輸出
MD5 : message digest 128位定長輸出
SHA1: Secure Hash Algorithm 160 位定長輸出
useradd username 添加賬戶
groupadd groupname 添加用戶組
用戶管理:
useradd ,userdel,usermod ,passwd,chsh, chfn,finger,id,change
useradd [options] USERNAME
-u : UID >=500
-g : GID(基本組)
-G : GID ... (附加組)
-c :“comment” 註釋信息
-d : /路徑 指定家目錄
-s : /bin/shell 指定shell 路徑
-m -k
-M:
-r:添加系統用戶
/etc/shells : 指定了當前系統所有安全可用的shell
userdel:
userdel [option] USERNAME 刪除用戶
-r : 同時刪除用戶的家目錄
id : 查看用戶的賬號屬性信息
-u:
-g:
-G:
-n:
finger : 查看用戶賬號信息
finger USERNAME
修改用戶賬號屬性:
usermod
-u : UID
-g : GID
-G -a: GID(附加組,不使用-a 會覆蓋之前的附加組)
-c:註釋
-d -m: -m 移動舊家目錄文件至新家目錄
-s:
-l:
-L:鎖定賬號
-U: 解鎖賬號
chsh(change shell) : 修改用戶的預設shell
chfn :修改註釋信息
密碼管理:
passwd [USERNAME]
--stdin 從標準輸入(可以是管道)中讀取新密碼。
-l:鎖定
-u:解鎖
-d: 刪除用戶密碼
pwck 檢查用戶賬號完整性
切換用戶登錄
su (switch user) 用戶名
組管理命令:
groupadd,groupdel, groupmod,gpasswd
創建組:
groupadd :
-g:GID
-r:添加為系統組
groupmod:
-g:GID
-n:GroupName
gpasswd : 為組設定密碼
newgrp groupname : 登錄到新組, -- > exit
chage : 修改用戶密碼信息
-d : 最近一次的修改時間
-E :過期時間
-I :非活動時間
-m :最短使用時間
-M :最長使用期限
-W : 警告時間
許可權管理:
r:
w:
x:
chown,chgrp,chmod,umask
三類用戶:
u : 屬主
g : 屬組
o : other 其他用戶
a :所有用戶
chown : 改變文件屬主(管理員許可權)
chown USERNAME file1,file12,....
-R :修改目錄及其內部文件的屬主(遞歸修改)
--reference=/path/to/somefile file1, ... 參考某個文件許可權修改file1
chown USERNAME:GORUPNAME file1,...
chown USERNAME.GROUPNAME file,...
chgrp Groupname file,... 改變文件屬組
-R :
--reference=/path/to/somefile file1, ... 參考某個文件許可權修改file1
chmod:修改文件的許可權
修改三類用戶的許可權:
chomod MODE file,....
修改某類用戶或某些類用戶許可權:
u,g,o,a
chmod 用戶類別=MODE file,...
修改某類的用戶某位或某些位許可權
u,g,o,a
chmod 用戶類別 +|- MODE file,....
chmod u+x g-r o+w
umask : 遮罩碼。表示預設創建的許可權設定。
創建文件為: 666-umask
創建目錄為: 777-umask
註意: 文件一定不能預設有執行許可權
bash : 腳本解釋器
站在用戶角度談 SHELL 的類型:
1 登錄式shell:
正常通過某終端登錄
su - username
su -l username
2 非登錄式shell :
su username
圖形終端下打開的命令視窗
自動執行的shell 腳本
bash 的配置文件:
全局配置:
/etc/profile, /etc/profile.d/*sh, /etc/bashrc
個人配置:
~/.bash_profile.~/.bashrc
profile 類的文件:
設定環境變數
運行命令或腳本
bashrc類的文件:
設定本地變數
定義命令別名
登錄式shell 如何讀取配置文件?
/etc/profile --->/etc/profile.d/*.sh ---> ~/.bash_profile ---> ~/.bashrc --->/etc/bashrc
非登錄式shell如何讀取配置文件?
~/.bashrc ---> /etc/bashrc ---> /etc/profile.d/*.sh
簡單設置個root 賬號 登錄歡迎提示:
root賬號下編輯個人配置文件 .bash_profile
nano ~/.bash_profile
最後一行輸入:
echo "Hello Administtactor ,Welocme to Login ,It's `date`."
退出賬號 重新登錄載入配置文件 查看登錄後的提示。
可在其中載入腳本,用於初始化運行