linux 用户、群组及权限操作
- 在linux中,一切皆文件,當我們創建一個用戶時,其實是創建了以下文件:
/etc/shadow 用戶密碼
/etc/group 組信息
/etc/gshadow 組密碼
/home 家目錄
/var/spool/email/ 用戶郵箱
- /opt/passwd 用戶配置信息
以:為分隔符,包含7個信息,分別是
用戶名:
密碼占位符:x,密碼在/etc/shadow中;若沒有密碼,空著
uid:用戶id 相當員工的工號
gid:組id 相當于員工的部門代號
comments:用戶描述信息,寫啥都行
用戶家目錄:root用戶為 /root ;普通用戶為/home/用戶名用戶登錄shell:執行bin/bash相當于登錄一個用戶終端(執行了幾次就需要幾次退出);/sbin/nologin 不能登錄shell
新增用戶的配置信息在passwd文件的最下面,可以用tail -1 命令來查看
- /etc/shadow 用戶密碼
以:為分隔符,包含9個信息,分別是用戶名:加密的密碼(如果沒有密碼是!):上次修改密碼時間:0最短密碼期限:99999最長密碼期限:7密碼警告期限:密碼非活動期限:賬號到期時間:保留域
- /etc/group 組信息
以:為分隔符,包含4個信息:
組密碼占位符X:組密碼信息在/etc/gshadow中,一般不設置組密碼,但可以通過gpasswd 組名 命令來設置
gid:組id 相當于部門代號
組成員:可通過vim /etc/group 命令往組內加成員
- /etc/gshadow 組密碼
以:為分隔符,包含4個信息 組名:組密碼(沒有就!):組管理者:組成員
- /home 家目錄
- 我們可以通過在以上6個文件中添加新的用戶信息,來進行新增用戶的操作。刪除用戶時,通過userdel -r 命令可以刪除用戶及其殘留文件。但是對于手動新增的用戶,由于該用戶的家目錄和mail下的用戶名文件是復制的的其他用戶的,所以其屬主、屬組信息也是其他用戶的,需要先更改其屬主、屬組為該用戶,才能通過這個命令順利刪除。
- id 用戶名 命令可以查看用戶的屬主和屬組信息:
上圖的前兩個為用戶的uid和gid,‘組=...' 那一串是該用戶首先在自己的組,也附屬于其他組,如wheel、 test、 sbb
- 權限信息
如上圖,a.txt的權限信息:
rw- r-- r-- :三位一組,分別表示屬主、屬組、其他用戶對a.txt的權限, r可讀,w可寫,x可執行 -無權限
1: 文件的硬鏈接數; root root 分別是該文件的屬主和屬組;87為大小,單位是byte字節(也可以通過 ll -h 命令來更直觀的顯示文件大小;再后面是文件創建日期和文件名
- chown 屬主:屬組 /路徑 命令可以更改文件或文件夾的屬主、屬組信息 -R 可以遞歸的修改
- chmod u=rwx,g=rwx,o=rwx /oldboy/a.txt 命令修改權限rwx-權限:
通過 -R 遞歸的修改:
如上圖,-R 遞歸更改該目錄下的所有文件權限信息。更改權限也可以通過數值這種更簡單的方式:r=4, w=2, x=1 通過數值相加來賦予權限,如上圖中774,(7=4+2+1),于是為屬主和屬組添加了可讀、可寫、可執行的權限 ;4,為其它用戶添加了可讀權限。另外,也可以通過u-w, g-w,o+x 這樣加減的方式來修改權限
- useradd 用戶名 -u -g -c? -d -s -G命令 新建用戶時指定其uid、gid、描述信息、家目錄、shell、附加組:
注意,用這種方式新建用戶時,-g指定的組id必須是已經存在的,否則新建不成功
- groupmod 組名 -n 新組名 命令 更改組名
- groupadd 組名 -g 數值 命令 新建組,并指定gid
- groupdel 組名 刪除組
- usermod 用戶名 -u -g -c? -d -s 命令更改用戶信息,用法同上。我們也可以通過 -G 組名來把該用戶加入另一個組,但是多次執行的話是覆蓋的方式,即新加入的附加組信息會覆蓋之前的附加組信息,如果想加入多個附加組,可以通過-aG 命令(append)。另外,更改了屬組信息后,必須重新登錄用戶才能更新屬組并獲取屬組的權限。
如上圖,再次將tester加入附加組1000,覆蓋了之前加的的組1024. 下圖中用 -aG 的方式,就可以追加組。
- 文件的權限 & 目錄的權限
文件的可讀(R):讀文件內容
文件的可寫(W):修改內容
文件的可執行(X):把文件當程序執行
目錄的可讀(R):可瀏覽該目錄下的文件名/子文件名
目錄的可寫(W):可在該目錄下新建刪除重命名
目錄的可執行(X):可以cd到該目錄下
root用戶不受權限的限制,只要一個文件的屬主屬組或其他人中的任何一個擁有X權限,root都可以執行。如果都沒權限,root用戶可以加權限。
- 新建文件的過程是先CD進去,光對目錄有W權限是不行的,所有要同時擁有WX權限,才能在目錄下新建文件。另外,雖然文件建好了,但是沒有R權限是看不到目錄下建的文件名
- 假設/test目錄對others的權限為RWX,/test目錄下有a.txt文件,對others的權限為R--,某用戶屬于others,用vim編輯器 vim /test/a.txt 試圖修改并保存a.txt,表面上成了,其實并沒有修改a.txt 。因為該用戶對/test目錄有W權限,vim編輯器工作于內存中,編輯完內容,執行保存時,相當于在/test目錄下新建了a.txt,并把內存中編輯的內容寫入了新建的這個文檔。而新建的a.txt把之前的a.txt覆蓋了。
- . 文件 命令(. 后面加空格,再跟文件) 把文件當命令來執行(前提是要有R權限才行) 可以用來測試X權限
- .sh 命令(或者sh) 解釋執行文件內容,效果和上面的 . 一樣。工作方式是讀一行,執行一行(跟Python一樣),因此和X權限無關,只要有R權限就行
總結
以上是生活随笔為你收集整理的linux 用户、群组及权限操作的全部內容,希望文章能夠幫你解決所遇到的問題。