Linux下的用户和组
2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
用戶和組
GNU/Linux?通過用戶和用戶組實現(xiàn)訪問控制?——?包括對文件訪問、設(shè)備使用的控制。Linux?默認(rèn)的訪問控制機制相對簡單直接,不過還有一些更加高級的機制,包括?ACL?和?LDAP?Authentication.
簡述
用戶一般指使用計算機的人。在本文語境中,該詞指用來識別用戶的用戶名稱,既可以是?Mary?或?Bill?這樣的真名,也可以是?Dragonlady,?Pirate?這樣的昵稱。關(guān)鍵是,計算機給每個賬戶分配了特定的名稱,而用戶則使用這些名稱訪問計算機。除了人之外,一些系統(tǒng)服務(wù)也以有部分限制,又享有部分特權(quán)的用戶賬戶身份運行。
由于安全需要,「用戶管理」應(yīng)運而生,以加以明確限制各個用戶賬戶的權(quán)限。超級用戶?root?于計算機里擁有至高無上的管理權(quán)限,所以一般只作管理用。非特權(quán)用戶則可以用?su?或sudo?程序以臨時獲得特權(quán)。
個體可以擁有多賬戶,只不過彼此名稱當(dāng)然不同。但有一些用戶名稱已事先被系統(tǒng)占用,比如?"root".
此外,任意用戶可能從屬某個「用戶組」。此外用戶也能夠新加入某些已經(jīng)存在的用戶組,以獲取該組所擁有的特權(quán)。
一、權(quán)限與屬主
?
第一列是文件訪問權(quán)限(例如,文件initramfs-linux.img的權(quán)限為-rw-r--r--),第三列和第四列分別是屬主和屬組(本例中所有文件屬主都是root用戶,屬組都是root組)。
?
上述例子中,sf_Shared目錄由root用戶和vboxsf組所有。使用stat命令也可以查看文件所有權(quán)和權(quán)限:
$?stat?-c?%U?/media/sf_Shared/
root
$?stat?-c?%G?/media/sf_Shared/
vboxsf
$?stat?-c?%A?/media/sf_Shared/
drwxrwx---
二、用戶管理
使用who命令,可以查看目前已登陸的用戶。
使用useradd命令添加用戶:
#?useradd?-m?-g?[初始組]?-G?[附加組]?-s?[登陸shell]?[用戶]
-m:創(chuàng)建用戶主目錄/home/[用戶名];在自己的主目錄內(nèi),即使不是root用戶也可以讀寫文件、安裝程序等等。
-g:設(shè)置用戶初始組的名稱或數(shù)字ID;該組必須是存在的;如果沒有設(shè)置該選項,useradd會根據(jù)/etc/login.defs文件中的USERGROUPS_ENAB環(huán)境變量進行設(shè)置。
-G:用戶要加入的附加組列表;使用逗號分隔多個組,不要添加空格;如果不設(shè)置,用戶僅僅加入初始組。
-s:用戶默認(rèn)登錄shell的路徑;Arch?Linux的init腳本使用bash;啟動過程結(jié)束后,默認(rèn)啟動的登錄shell在此處設(shè)定;請確保使用的shell已經(jīng)安裝。
以典型的桌面系統(tǒng)為例,要添加一個名為archie的用戶,并使用bash作為登錄shell:
#?useradd?-m?-g?users?-s?/bin/bash?archie
有關(guān)useradd的高級用法,參見man頁:
$?man?useradd
通過下列命令設(shè)置GECOS字段(用戶信息,例如用戶全名):
#?chfn?[用戶名]
(這樣將會以交互式模式啟動chfn)
通過下列命令設(shè)置用戶密碼:
#?passwd?[用戶名]
另一個交互式界面的添加用戶的工具:
#?adduser
adduser會詢問一些常見的設(shè)置,并使用合適的默認(rèn)值,調(diào)用useradd創(chuàng)建用戶。該命令還會設(shè)置用戶信息和密碼,囊括了chfn和passwd兩個命令的功能。
使用userdel命令刪除用戶:
#?userdel?-r?[用戶名]
-r選項表示一并刪除用戶主目錄和郵件。
三、用戶信息存儲
本地用戶信息儲存在/etc/passwd文件中。要查看系統(tǒng)上所有用戶賬戶:
$?cat?/etc/passwd
一行代表一個用戶,格式如下:
account:password:UID:GID:GECOS:directory:shell
此處:
§?account:用戶名
§?password:用戶密碼
§?UID:用戶的數(shù)字ID
§?GID:用戶所在主組的數(shù)字ID
§?GECOS:可選的注釋字段,通常記錄用戶全名
§?directory:用戶的主目錄($HOME)
§?shell:用戶的登陸shell(默認(rèn)為/bin/sh)
注意:?Arch?Linux?使用影子密碼。passwd文件對所有人可讀,在里面存儲密碼(無論是否加密過)是很不安全的。在password字段,通常使用一個占位字符(x)代替。加密過的密碼儲存在/etc/shadow文件,該文件對普通用戶限制訪問。
四、用戶組管理
/etc/group文件儲存了系統(tǒng)中用戶組的信息,詳情參見:man?group。
使用groups命令查看用戶所在組的名稱:
$?groups?[用戶名]
若省略用戶名,默認(rèn)顯示當(dāng)前用戶所在組。
id命令提供額外的信息,包括用戶UID以及相關(guān)用戶組GID:
$?id?[用戶名]
查看所有組:
$?cat?/etc/group
使用groupadd創(chuàng)建新的組:
#?groupadd?[組名]
使用gpasswd將用戶添加到組:
#?gpasswd?-a?[用戶名]?[組名]
刪除用戶組:
#?groupdel?[組名]
將用戶從組中移除:
#?gpasswd?-d?[用戶名]?[組名]
如果用戶已登錄,必須重新登錄使更改生效。
五、文件列表
警告:?不要手動編輯這些文件。有些工具可以更好的處理鎖定、避免數(shù)據(jù)庫錯誤。
文件 | 作用 |
/etc/shadow | 保存用戶安全信息 |
/etc/passwd | 用戶賬戶信息 |
/etc/gshadow | 保存組賬號的安全信息 |
/etc/group | 定義用戶所屬的組 |
/etc/sudoers | 可以運行?sudo?的用戶 |
/home/* | 主目錄 |
?
?
?
轉(zhuǎn)載于:https://my.oschina.net/u/2496664/blog/531704
總結(jié)
以上是生活随笔為你收集整理的Linux下的用户和组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Go-json 实例
- 下一篇: Linux C 数据结构---单向链表