一、用戶和用戶管理
1. 用戶:計算機的每個使用者
(1) 用戶類別:
管理員能夠管理整個全局權限
普通用戶:分爲系統用戶和登錄用戶。
對系統級的資源只有讀取權限,對自己的資源他擁有全部管理權限
系統用戶:爲了能夠讓那後臺進程或服務類進程以非管理員的身份運行,通常需要爲此
創建多個普通用戶;這類用戶從不用登錄系統
(2)用戶標識:UserID, UID
16bits二進制數字:0-65535
管理員:0
普通用戶:1-65635
系統用戶:1-499(CentOS6), 1-999(CentOS7)
登錄用戶:500-60000(CentOS6), 1000-60000(CentOS7)
2.用戶的信息庫的文件結構
/etc/passwd:用戶的信息庫
name:password:UID:GID:GECOS:directory:shell
name: 用戶名
password:可以是加密的密碼,也可是佔位符x;
UID:用戶的ID;
GID:用戶所屬的基本組的ID號;
GECOS:註釋信息
directory:用戶的家目錄;
shell:用戶的默認shell,登錄時默認shell程序;
/etc/shadow:用戶密碼
用戶名:加密的密碼:最近一次修改密碼的時間:最短使用期限:最長使用期限:警告期段:過期期限:保留字段
3.用戶賬號管理常用命令:
useradd命令:創建用戶(創建一個用戶,如果未指定用戶組,系統會自動創建一個用戶同名的組,作爲私有組)
useradd [選項] 登錄名
-u, --uid UID:指定UID;
例如:創建一個ID爲2000的shakura用戶:
[root@localhost ~]# useradd -u 2000 shakura
-g, --gid GROUP:指定基本組ID,此組必須存在;
[root@localhost ~]# useradd -g 2000 shakura
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:指明用戶所屬的附加組,多個組之間用逗號分隔;
-c, --comment COMMENT:指明註釋信息;
[root@localhost ~]# useradd -c "This is shakura" shakura
# 指明shakura用戶的註釋信息爲“This is shakura”
-d, --home HOME_DIR:以指定的路徑爲用戶的家目錄;通過複製/etc/skel此目錄並重命名實現;
[root@localhost ~]# useradd -d /home/tset shakura
# 指定shakura用戶的家目錄爲/home/test
注意:指定的家目錄路徑如果事先存在,則不會爲用戶複製環境配置文件。
-s, --shell SHELL:指定用戶的默認shell,可用的所有shell列表存儲在/etc/shells文件中;
[root@localhost ~]# useradd -s /sbin/csh
# 指定shakura用戶的shell爲csh
-r, --system:創建系統用戶;
例如:創建一個名爲CentOS的系統用戶
useradd -r CentOS7
注意:創建用戶時的諸多默認設定配置文件爲/etc/login.defs;
useradd -D:顯示創建用戶的默認配置;
[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yesuseradd -D [選項]: 修改默認選項的值;
注意:修改的結果將保存於/etc/default/useradd文件中。
usermod命令:修改用戶屬性
usermod [選項] 登錄
-u, --uid UID:修改用戶的ID爲此處指定的新UID;
usermod -u 2015 shakura # 修改shakura用戶ID爲2015
-g, --gid GROUP:修改用戶所屬的基本組;
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:修改用戶所屬的附加組;原來的附加組會被覆蓋;
-a, --append:與-G一同使用,用於爲用戶追加新的附加組;
-c, --comment COMMENT:修改註釋信息;
-d, --home HOME_DIR:修改用戶的家目錄;用戶原有的文件不會被轉移至新位置;
-m, --move-home:只能與-d選項一同使用,用於將原來的家目錄移動爲新的家目錄;
-l, --login NEW_LOGIN:修改用戶名;
-s, --shell SHELL:修改用戶的默認shell;
-L, --lock:鎖定用戶密碼;即在用戶原來的密碼字符串之前添加一個"!";
-U, --unlock:解鎖用戶的密碼;
userdel命令:刪除用戶
userdel [選項] 登錄
-r:刪除用戶時一併刪除其家目錄;
userdel -r shakura # 刪除shakura用戶,包括其家目錄
passwd命令:
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]
(1) passwd:修改用戶自己的密碼;
[root@localhost ~]# passwd
更改用戶 root 的密碼 。
新的密碼:(2) passwd USERNAME:修改指定用戶的密碼,但僅root有此權限;
[root@localhost ~]# passwd shakura
更改用戶 shakura 的密碼 。
新的 密碼:# 修改shakura用戶的密碼;
(3)常用選項:
-l, -u:鎖定和解鎖用戶;
-d:清除用戶密碼串;
-e DATE: 過期期限,日期;
-i DAYS:非活動期限;
-n DAYS:密碼的最短使用期限;
-x DAYS:密碼的最長使用期限;
-w DAYS:警告期限;
--stdin:
echo "PASSWORD" | passwd --stdin USERNAME
二、Linux文件屬性
在終端中使用 ls -l 命令來查看文件,顯示如下:
-rw-r--r--. 1 root root 0 12月 14 06:07 te.txt
第一列代表文件的權限;
--rw-r—r—
第一個字符代表這個文件的類型:
文件的的主要類型有:
-: 常規文件:即f;
d:directory,目錄文件;
b: block device,塊設備文件,支持以'block'爲單位進行隨機訪問;
c: character device:字符設備文件,支持以"character"爲單位進行線性訪問;
l: symbolic link,符號連接文件;
p: pipe,命名管道;
s: socket,套接字文件;接下來的字符三個爲一組:
其中r代表可讀(readable),w代表可寫(writable), x代表可執行(excutable)
第一組:定義user(owner)的權限,以上面te.txt文件爲準,該文件的所有者可讀寫但不可執行;
第二組:定義用戶組(group)的權限;
第三組:定義其他用戶(others)的權限
第二列表示有多少文件名連接到此節點;
第三列表示這個文件的(或目錄)的屬主(所有者);
第四列表示文件的所屬用戶組;
第五列表示這個文件的大小,默認爲Bytes;
第六列表示爲這個文件的創建日期;
第七列爲該文件名;
1.進程安全上下文:
進程對文件的訪問權限應用模型:
進程的屬主與文件的屬主是否相同;如果相同,則應用屬主權限;
否則,則檢查進程的屬主是否屬於文件的屬組;如果是,則應用屬組權限;
否則,就只能應用other的權限;
文件:
r:可獲取文件的數據;
w: 可修改文件的數據;
x:可將此文件運行爲進程;
目錄:
r:可使用ls命令獲取其下的所有文件列表;
w: 可修改此目錄下的文件列表,即創建或刪除文件;
x: 可cd至此目錄中,且可使用ls -l來獲取所有文件的詳細屬性信息;
mode:rwxrwxrwx
ownership:user, group
2. 權限管理命令:
chmod命令:
三類用戶:屬主(OWNER)表示爲u,屬組表示爲g,其他用戶(Others)表示爲o,all表示所有權限,簡寫爲a。
(1) chmod [OPTION]... MODE[,MODE]... FILE...
MODE表示法:
賦權表示法:直接操作一類用戶的所有權限位rwx;
u= g=
o= a=
授權表示法:直接操作一類用戶的一個權限位r,w,x;
u+, u- g+, g-
o+, o- a+, a-
(2) chmod [OPTION]... OCTAL-MODE FILE...
(3) chmod [OPTION]... --reference=RFILE FILE...
選項:
-R, --recursive:遞歸修改
注意:用戶僅能修改屬主爲自己的那些文件的權限;
3.從屬關係管理命令:chown, chgrp
chown命令:
chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown [OPTION]... --reference=RFILE FILE...
選項:
-R:遞歸修改
chgrp命令:
chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
注意:僅管理員可修改文件的屬主和屬組;
umask命令:文件的權限反向掩碼,遮罩碼
文件:
666-umask
目錄:
777-umask
umask: 023
666-023=644
777-023=754
umask命令:
umask:查看當前umask
umask MASK: 設置umask
注意:(1)之所以文件用666去減,表示文件默認不能擁有執行權限;
(2)如果減得的結果中有執行權限,則需要將其加1;
(3)此類設定僅對當前shell進程有效。