- 用戶管理基礎概念:
- 用戶管理命令使用
- 權限管理
- 命令使用
-
用戶管理基礎概念:
用戶類別:管理員、普通用戶(系統用戶、登錄用戶)
組類別:管理員組、普通用戶組(系統用戶組、登錄用戶組)
組的類別還可以分爲:1.用戶的基本組、用戶的附加組 2.私有組:組名同用戶名,且只包含一個用戶; 公共組:組內包含了多個用戶;
- 系統判斷用戶的表示:userID->UID,使用16位二進制數字表示
管理員:0
普通用戶:1~65535
-系統用戶:1-499(centos6),1-999(centos7)
-登錄用戶:>=500 (centos6),>=1000(centos7)
- 系統判斷用戶的表示:userID->UID,使用16位二進制數字表示
系統用戶:爲了能夠讓那後臺進程或服務類進程以非管理員的身份運行,通常需要爲此創建多個普通用戶,這類用戶從不用登錄系統,所獲得權限也比較小,比較安全的做法
-
-
-
組的標識:
管理員組:0
普通用戶組:1-65635
-系統用戶組:1-499(CentOS6), 1-999(CentOS7)
-登錄用戶組:>=500(CentOS6), >=1000(CentOS7) -
用戶和組的信息庫存放位置
1.用戶的配置信息:/etc/passwd,以冒號:分割7個字段
2.組的配置信息:/etc/group - 用戶認證信息:通過對比事先存儲的,與登錄時提供的信息是否一致;
密碼存儲:/etc/shadow 、/etc/gshadow
密碼安全使用策略:
1、使用隨機密碼;
2、最短長度不要低於8位;
3、應該使用大寫字母、小寫字母、數字和標點符號四類字符中至少三類;
4、定期更換
-
-
用戶管理命令使用
相關命令:useradd, userdel, usermod, passwd, groupadd, groupdel, groupmod, gpasswd, chage, chsh, id, su-
groupadd 添加組
語法:
groupadd [options] group_name
-g |--gid GID:指定GID號
-r | --system :創建的是系統組
-p | --password string :創建組的密碼 -
groupmod:修改組的屬性
語法:
groupmod [options] group_name
-g GID:修改GID號
-n new_group_name:修改組名 -
groupdel:刪除組
語法:
groupdel [options] group_name -
useradd :創建用戶
語法:
useradd [options] user_name
-u, --uid UID:指定UID;
-g, --gid GROUP:指定基本組ID,此組得事先存在;
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:指明用戶所屬的附加組,多個組之間用逗號分隔;
-c, --comment COMMENT:指明註釋信息;
-d, --home HOME_DIR:以指定的路徑爲用戶的家目錄;通過複製/etc/skel此目錄並重命名實現;指定的家目錄路徑如果事先存在,則不會爲用戶複製環境配置文件;
-s, --shell SHELL:指定用戶的默認shell,可用的所有shell列表存儲在/etc/shells文件中;
-r, --system:創建系統用戶;
注意:創建用戶時的諸多默認設定配置文件爲/etc/login.defs -
usermod :修改用戶屬性
語法:
usermod [options] user_name
-u, --uid UID:修改用戶的ID爲此處指定的新UID;
-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_user_name:修改用戶名;
-s, --shell SHELL:修改用戶的默認shell;
如:添加附加組:把nginx添加到centos附加組
[root@node3 tmp]# usermod -aG centos nginx
[root@node3 tmp]# id nginx
uid=993(nginx) gid=990(nginx) groups=990(nginx),1001(centos) -
userdel :刪除用戶
語法:
userdel [options] user_name
-r :刪除用戶並刪除其家目錄,若不加r,再添加相同用戶會報錯 -
passwd :修改用戶密碼
語法:
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]
passwd :表示修改當前用戶密碼
passwd user_name :修改指定用戶密碼,僅root管理員才能操作,普通用戶只能修改自己且後不能加用戶名
-d :清除用戶密碼
-e DATE: 過期期限,日期;
-i DAYS:非活動期限;
-n DAYS:密碼的最短使用期限;
-x DAYS:密碼的最長使用期限;
-w DAYS:警告期限;
--stdin : 通過標準輸入方式修改
通常使用非交互式設置密碼:
echo “password-string” | passwd --stdin user_name -
gpasswd :修改組密碼和管理用戶組
語法:
gpasswd [options] group_name
-a user_name :向組中添加成員
-d user_name :移除組中的成員
不添加選項表示修改組的密碼,可以實現認證組成員
如:gpasswd -d centos nginx :把centos添加至nginx組: -
newgrp :臨時切換指定的組爲基本組
語法:
newgrp [-] [group]
-: 會模擬用戶重新登錄以實現重新初始化 -
id :顯示用戶ID信息
語法:
id [options] [user_name]
-u: 僅顯示有效的UID;
-g: 僅顯示用戶的基本組ID;
-G:僅顯示用戶所屬的所有組的ID;
-n: 顯示名字而非ID; - su :switch user切換用戶
語法:
su [options] [-] [USER [arg]...]
登錄式切換:會通過讀取目標用戶的配置文件來重新初始化
su - user_name
su -l user_name
非登錄式切換:不會讀取目標用戶的配置文件進行初始化
su user_name
注意:管理員可無密碼切換至任何用戶;
-c 'COMMAND':僅以指定用戶的身份運行此處指定的命令;
-
-
權限管理
進程安全上下文:進程對文件的訪問權限應用策略:
進程的屬主與文件的屬主是否相同;如果相同,則應用屬主權限;
否則,則檢查進程的屬主是否屬於文件的屬組;如果是,則應用屬組權限;
否則,就只能應用other的權限;
如圖"第二個色標"的爲權限爲,"."位有特殊權限,有時爲“+”號;[root@xt tmp]# ll passwd -rw-r--r--. 1 root root 1173 Dec 28 12:15 passwd [root@xt tmp]# setfacl -m u:user1:rwx passwd [root@xt tmp]# ll passwd -rw-rwxr--+ 1 root root 1173 Dec 28 12:15 passwd [root@xt tmp]# getfacl passwd # file: passwd # owner: root # group: root user::rw- user:user1:rwx group::r-- mask::rwx other::r--
"第二個色標"的權限位:一個9位,每3位一組從左->右分別爲:user(owner)權限、group權限、other權限
權限位描述:r :read 、w : write 、x :excute,可以使用八進制表示:分別對應4--2--1,三位一組加權
比如:rw-rw-r--, rwxrwxr-x, rwxr-x---, rw------, rwxr-xr-x
664 ,775,750,600, 755-
文件和目錄的權限位區別:
文件:
r:可獲取文件的數據;
w: 可修改文件的數據;
x:可將此文件運行爲進程;目錄:
r:可使用ls命令獲取其下的所有文件列表;
w: 可修改此目錄下的文件列表;即創建或刪除文件;
x: 可cd至此目錄中,且可使用ls -l來獲取所有文件的詳細屬性信息;
*能不能刪除文件並不取決於文件本身權限,而是取決於上一級目錄的權限一般文件目錄給予:644/755權限,權限最小化管理
-
-
權限管理相關命令使用
-
chmod :修改文件權限位
語法:
chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE... :參照文件的權限修改
選項:-R 遞歸,目錄修改比較有效,子目錄文件也生效;
一共分爲3類用戶:u :屬主 g: 屬組 o: 其他 a: 表示所有=ugo
1.chmod [OPTION]... MODE[,MODE]... FILE...
MODE的表示方法:
賦權法:直接操作一類用戶的所有權限位rwx;
u= ,g= ,o= ,a=
加權法:直接操作一類用戶的一個權限位r,w,x加減
u-|+ ,g+|- ,o +|-, a +|-
2.chmod [OPTION]... OCTAL-MODE FILE... 8進式必須要給3位如644 600
-
chown:修改文件的屬主屬組
語法:
chown [OPTION]... [OWNER][:[GROUP]] FILE... 使用:或者.分割都可以
chown [OPTION]... --reference=RFILE FILE...
-R,--recursive遞歸 - chgrp:修改屬組關係
語法:
chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
注僅管理員纔可以操作chown/chgrp命令
-
- 文件訪問控制列表:facl:file access control lists
文件的額外賦權機制:在原來的u,g,o之外,另一層讓普通用戶能控制賦權給另外的用戶或組的賦權機制;可以對某一用戶做[拒絕]訪問
賦權用戶或組:
setfacl -m u:user_name:MODE file...
setfacl -m g:group_name:MODE file...
撤銷權限:
setfacl -x u:user_name file...
setfacl -x g:group_name file...
setfacl -b file...撤銷所有用戶組的權限
查看權限:
getfacl file...
設置遮罩碼:用戶最大獲得權限
setfacl -m mask::rwx[root@xt test]# setfacl -m u:user1:rwx a [root@xt test]# getfacl a # file: a # owner: root # group: root user::rw- user:user1:rwx group::r-- mask::rwx other::r-- [root@xt test]# setfacl -m mask::rx a [root@xt test]# getfacl a # file: a # owner: root # group: root user::rw- user:user1:rwx #effective:r-x group::r-- mask::r-x other::r--