Linux用戶、用戶組、文件權限 【命令實戰】

linux的權限系統主要是由用戶、用戶組和權限組成。

關於理論方面,可參考另一篇文章:

linux下查看所有用戶及所有用戶組【理論篇】


用戶就是一個個的登錄並使用linux的用戶。linux內部用UID表示。
用戶組就是用戶的分組。linux內部用GID表示。
權限分爲讀、寫、執行三種權限。

linux的用戶信息保存在/etc/passwd文件中,另外,/etc/shadow文件存放的是用戶密碼相關信息。

/etc/passwd文件格式:
用戶名:密碼:UID:GID:用戶信息:HOME目錄路徑:用戶shell
其中UID爲0則是用戶root,1~499爲系統用戶,500以上爲普通用戶

/etc/shadow保存用戶密碼信息,包括加密後的密碼,密碼過期時間,密碼過期提示天數等。

用戶組信息保存在/etc/group文件中.
格式如下:
用戶組名:組密碼:GID:組內帳號(多個帳號用逗號分隔)

用戶登錄後,/etc/passwd文件裏的GID爲用戶的初始用戶組。
用戶的初始用戶組這一事實不會再/etc/group中體現。


———————下面是命令——————————

查看當前用戶的用戶組命令:
[root@local opt]#groups
root bin daemon sys adm disk wheel
輸出的信息中,第一個用戶組爲當前用戶的有效用戶組(當前用戶組)

切換有效用戶組命令:
[root@local opt]#newgrp 用戶組名
要離開新的有效用戶組,則輸入exit回車。

新建用戶命令:
[root@local opt]#useradd 用戶名 -g 初始用戶組 -G 其他用戶組(修改/etc/group) -c 用戶說明 -u 指定UID

建完用戶需要爲用戶設置密碼:
[root@local opt]#passwd 用戶名

用戶要修改自己密碼命令:
[root@local opt]#passwd

修改用戶信息命令:
[root@local opt]#usermod 參數 用戶名
參數:
 -c 說明
 -g 組名 初始用戶組
-e 過期日期 格式:YYYY-MM-DD
 -G 組名 其他用戶組
 -l 修改用戶名
 -L 鎖定賬號(在/etc/shadow文件中用戶對應密碼密碼串的前面加上兩個歎號(!!))
 -U 解鎖

刪除用戶命令:
[root@local opt]#userdel [-r] 用戶名
其中,參數-r爲刪除用戶的home目錄。
其實,可能在系統其他地方也有該用戶文件,要完整刪除一個用戶和其文件要先找到屬於他的文件:

[root@local opt]#find / -user 用戶名

然後刪除,再運行userdel刪除用戶。

查看可用shell命令:
[root@local opt]#chsh -l
修改自己的shell命令:
[root@local opt]#chsh -s

查看自己或某人UID/GID信息:
[root@local opt]#id [用戶名]
返回信息中groups爲有效用戶組

新增用戶組命令:
[root@local opt]#groupadd 用戶組名

修改用戶組名命令:
[root@local opt]#groupmod -n 名稱

刪除用戶組命令:
[root@local opt]#groupdel 用戶組名

設置用戶組密碼命令:
[root@local opt]#gpasswd 用戶組名

如果gpasswd加上參數則有其他功能

設置用戶組管理員命令:
[root@local opt]#gpasswd -A 用戶名 用戶組名

添加某帳號到組命令:
[root@local opt]#gpasswd -M 用戶名 用戶組名

從組中刪除某帳號命令:
[root@local opt]#gpasswd -d 用戶名 用戶組名

passwd相關參數操作:
-l 鎖用戶
-u 解鎖用戶
-n 天數  密碼不可改天數
-x 天數  密碼過期天數
-w 天數  警告天數

 文件權限知識

先看個實例:
[root@local opt]#ls -al
ls -al 命令是列出目錄的所有文件,包括隱藏文件。隱藏文件的文件名第一個字符爲'.'
-rw-r--r--  1 root root    81 08-02 14:54 gtkrc-1.2-gnome2
-rw-------  1 root root   189 08-02 14:54 ICEauthority
-rw-------  1 root root    35 08-05 10:02 .lesshst
drwx------  3 root root  4096 08-02 14:54 .metacity
drwxr-xr-x  3 root root  4096 08-02 14:54 nautilus

列表的列定義如下:
[權限屬性信息] [連接數] [擁有者] [擁有者所屬用戶組] [大小] [最後修改時間] [文件名]

權限屬性列表爲10個字符:

第一個字符表示文件類型,

d爲目錄

-爲普通文件

l爲連接

b爲可存儲的接口設備

c爲鍵盤鼠標等輸入設備

2、3、4個字符表示所有者權限

5、6、7個字符表示所有者同組用戶權限

8、9、10爲其他用戶權限

第二個字符表示所有者讀權限,如果有權限則爲r,沒有權限則爲-
第三個字符表示所有者寫權限,如果有權限則爲w,沒有權限則爲-

第四個字符表示所有者執行權限,如果有權限則爲x,沒有權限則爲-


第五個字符表示所有者同組用戶讀權限,如果有權限則爲r,沒有權限則爲-
第六個字符表示所有者同組用戶寫權限,如果有權限則爲w,沒有權限則爲-

第七個字符表示所有者同組用戶執行權限,如果有權限則爲x,沒有權限則爲-


第八個字符表示其他非同組讀權限,如果有權限則爲r,沒有權限則爲-
第九個字符表示其他非同組寫權限,如果有權限則爲w,沒有權限則爲-
第十個字符表示其他非同組執行權限,如果有權限則爲x,沒有權限則爲-

修改文件所屬組命令:
[root@local opt]#chgrp [-R] 組名 文件名
其中-R爲遞歸設置

修改文件的所有者和組命令:
[root@local opt]#chown [-R] 用戶[:用戶組] 文件名

修改文件訪問權限命令:
[root@local opt]#chmod [-R] 0777 文件名


==========================其他命令==========================================

linux 查看用戶及用戶組的方法


whois
功能說明:查找並顯示用戶信息。
語  法:whois [帳號名稱]
補充說明:whois指令會去查找並顯示指定帳號的用戶相關信息,因爲它是到Network Solutions 的WHOIS數據庫去查找,所以該帳號名稱必須在上面註冊方能尋獲,且名稱沒有大小寫的差別。
---------------------------------------------------------
whoami
功能說明:先似乎用戶名稱。
語  法:whoami [--help][--version]
補充說明:顯示自身的用戶名稱,本指令相當於執行"id -un"指令。
參  數:
--help  在線幫助。
--version  顯示版本信息。
---------------------------------------------------
who
功能說明:顯示目前登入系統的用戶信息。
語  法:who [-Himqsw][--help][--version][am i][記錄文件]
補充說明:執行這項指令可得知目前有那些用戶登入系統,單獨執行who指令會列出登入帳號,使用的    終端機,登入時間以及從何處登入或正在使用哪個X顯示器。
參  數:
-H或--heading  顯示各欄位的標題信息列。
-i或-u或--idle  顯示閒置時間,若該用戶在前一分鐘之內有進行任何動作,將標示成"."號,如果該用戶已超過24小時沒有任何動作,則標示出"old"字符串。
-m  此參數的效果和指定"am i"字符串相同。
-q或--count  只顯示登入系統的帳號名稱和總人數。
-s  此參數將忽略不予處理,僅負責解決who指令其他版本的兼容性問題。
-w或-T或--mesg或--message或--writable  顯示用戶的信息狀態欄。
--help  在線幫助。
--version  顯示版本信息。
----------------------------------------------------
w
功能說明:顯示目前登入系統的用戶信息。
語  法:w [-fhlsuV][用戶名稱]
補充說明:執行這項指令可得知目前登入系統的用戶有那些人,以及他們正在執行的程序。單獨執行w
指令會顯示所有的用戶,您也可指定用戶名稱,僅顯示某位用戶的相關信息。
參  數:
-f  開啓或關閉顯示用戶從何處登入系統。
-h  不顯示各欄位的標題信息列。
-l  使用詳細格式列表,此爲預設值。
-s  使用簡潔格式列表,不顯示用戶登入時間,終端機階段作業和程序所耗費的CPU時間。
-u  忽略執行程序的名稱,以及該程序耗費CPU時間的信息。
-V  顯示版本信息。
-----------------------------------------------------
finger
finger 命令的功能是查詢用戶的信息,通常會顯示系統中某個用戶的用戶名、主目錄、停滯時間、登錄時間、登錄shell等信息。如果要查詢遠程機上的用戶信息,需要在用戶名後面接“@主機名”,採用[用戶名@主機名]的格式,不過要查詢的網絡主機需要運行finger守護進程。
該命令的一般格式爲:
finger [選項] [使用者] [用戶@主機]
命令中各選項的含義如下:
-s 顯示用戶的註冊名、實際姓名、終端名稱、寫狀態、停滯時間、登錄時間等信息。
-l 除了用-s選項顯示的信息外,還顯示用戶主目錄、登錄shell、郵件狀態等信息,以及用戶主目錄下的.plan、.project和.forward文件的內容。
-p 除了不顯示.plan文件和.project文件以外,與-l選項相同。 
[例]在本地機上使用finger命令。
$ finger xxq
Login: xxq Name:
Directory: /home/xxq Shell: /bin/bash
Last login Thu Jan 1 21:43 (CST) on tty1
No mail.
No Plan. 
$ finger
Login Name Tty Idle Login Time Office Office Phone
root root *1 28 Nov 25 09:17
……
------------------------------------------------------------------
/etc/group文件包含所有組
/etc/shadow和/etc/passwd系統存在的所有用戶名
修改當前用戶所屬組的方法
usermod 或者可以直接修改 /etc/paaawd文件即可
----------------------------------------------------------------
vlock(virtual console lock)
功能說明:鎖住虛擬終端。
語  法:vlock [-achv]
補充說明:執行vlock指令可鎖住虛擬終端,避免他人使用。
參  數:
-a或--all  鎖住所有的終端階段作業,如果您在全屏幕的終端中使用本參數,則會將用鍵盤
切換終端機的功能一併關閉。
-c或--current  鎖住目前的終端階段作業,此爲預設值。
-h或--help  在線幫助。
-v或--version  顯示版本信息。



關於理論方面,可參考另一篇文章:

linux下查看所有用戶及所有用戶組【理論篇】

一定要去敲一遍哦


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章