天天看點

賬号和權限的管理

了解賬号及權限、組之的關系;管理使用者;管理組;設定權限

1.了解賬号及權限,組之間的關系

1)使用者:包含一個名和密碼,人在計算機中展現

2)組:使用者集合,作用批量設定權限

3)權限:限制使用者通路資源(如檔案,app,程序,硬體等)

使用者--權限限制--資源

組--批量限制--資源

檔案系統提供權限,不同檔案系統權限的實作方式不同。

head -1 /etc/passwd

root:x:0:0:root:/root:/bin/bash

使用者名稱:密碼占位符:uid:gid:描述:家目錄:登入shell

使用者分為:root管理者,普通使用者,程式使用者

uid:root=0;程式使用者=1-499;普通使用者=500-65535;gid的号與uid相同

家目錄:管理者/root,普通使用者/home/使用者名稱

登入shell:正常使用的shell一般為/bin/bash;不能登入為/sbin/nologin(非互動式shell)

ls -a -l /etc/passwd /etc/shadow /etc/login.defs /etc/default/useradd /etc/skel/ ##出來linux中與使用者有關的檔案

案例:

useradd u01 ##建立賬号u01

tail -1 /etc/passwd ##檢視新使用者的資訊

tail -1 /etc/shadow ##檢視信使用者的密碼資訊

shadow檔案中第二個字段的四種形态:

!!:表示未初始化密碼,使用者不能登入,建立使用者後的預設形态

加密字元串:修改過密碼的形态

!!加密字元串:使用者密碼被鎖定形态

空:使用者密碼清空的形态

echo 123123 | passwd --stdin u01 ##設定密碼

passwd -l u01 ##鎖定使用者密碼

passwd -d u01 ##清空使用者密碼,隻能本地登入,不能遠端登入

4)組:批量管理使用者

/etc/group ##組的賬号檔案

tail -1 /etc/group

u01:x:500:

組名:每一個使用者都有一個基本組,如果把其他使用者加入到組中,該組成為其他使用者附加組

gid:組id

組的成員:預設情況下組附加組沒有成員,基本的成員為對應的使用者。

總結:

建立使用者群組:就是在相應檔案中添加記錄或者根據要求複制基本資料檔案。

删除使用者群組:與建立相反。

2.管理使用者的賬号:增useradd,删userdel,改usermod,passwd,使用者的檔案

1)增:useradd

文法:useradd [選項] 使用者名稱

[選項]:-d指定使用者的家目錄,-m不建立家目錄,-g指定gid,-g附加組,-s指定登入shell

useradd --help ##檢視幫助

useradd -d /opt/hehe -s /sbin/nologin -g 1000 -g 0 hehe ##建立hehe使用者

tail -1 /etc/passwd ##驗證

grep hehe /etc/group ##驗證hehe是在root組中

groupadd -g 1000 hehe ##建立hehe使用者時若沒有1000gid的組報錯,建立後再建立。

2)改usermod,passwd

文法:usermod [選項] 使用者

passwd 使用者 ##修改密碼

usermod -s /bin/bash hehe

usermod -l admin hehe ##修改hehe登入名稱,root登入時不能修改

usermod -g 0 admin ##修改基本組資訊

passwd admin ##互動式中修改密碼

echo 123123 |passwd --stdin admin ##非互動式修改密碼

passwd -l admin ##鎖定賬号,與usermod -l功能一樣

passwd -s admin ##檢視使用者狀态

passwd -u admin ##解鎖賬号,與usermod -u功能一樣

3)删userdel

文法:userdel -r 使用者

userdel -r admin ##-r連帶家目錄等資訊徹底删除

3.管理組的賬号:增groupadd,删groupdel,改gpasswd

1)增groupadd

文法:groupadd [選項] 組名稱

groupadd -g 999 hh ##建立組hh,gid=999

grep hh /etc/group ##驗證是否建立

grep root /etc/group ##檢視root使用者所在所有的組(檢視root組資訊)

2)改gpasswd

文法:gpasswd [選項] 使用者 組 ##将使用者加入到組中

useradd u01 ##相同方法建立u02,u03,u04

groupadd -g 1001 g01 ##建立g01組

groupadd -g 1002 g02

gpasswd -a u01 g01 ##将u01添加到g01組中,相同方法添加u02到g01中

grep g01 /etc/group ##驗證u01,u02已加入g01組

gpasswd -m u03,u04 g02 ##将g02組的成員設定為u03,u04

grep g02 /etc/group ##驗證

gpasswd -m u03,u04 g01 ##覆寫原有的成員

grep g01 /etc/group ##驗證

gpasswd -d u03 g01 ##将u03移除g01

grep g01 /etc/group ##驗證

3)删groupdel

文法:groupdel 組名

groupdel g01 ##删除g01組

總結:使用者組的建立和删除都是在操作檔案,使用者登入後有相應特殊配置一般存放在家目錄的配置檔案中。

常見的配置存放檔案有:

/home/使用者名稱/.bashrc(bash的配置檔案,每一次登入或者執行bash時生效);.bash_profile(使用者獨立配置檔案,一般設定環境變量等在使用者登入生效);

.bash_logout(使用者退出時的配置檔案,一般可以将一些操作寫入在退出時執行)

/etc/profile 所有使用者的全局配置檔案,

home下配置在建立使用者時從/etc/skel/.*複制的。

4.設定權限:檢視、改

1)檢視權限

使用者、組---通路控制---檔案或目錄

控制有:讀(r)、寫(w)、執行(x),目錄和檔案的控制有差別詳見p72-4-1表。

注意:寫的不能輕易給。

ls -l /etc/hosts ##檢視檔案的權限清單

ls -ld /home/u01 ##檢視目錄的權限清單

權限清單 inode數量 使用者 組 日期 檔案或目錄名稱

權限清單:

第一個表示檔案的類型,如d目錄,-(f)普通檔案,l連結,b塊裝置,c字元裝置,p管道檔案,s套接字檔案

2-4表示使用者權限,如rwx,“-”表示沒有權限

5-7表示組的權限,同上

8-10表除使用者群組外的其他人的權限,一般為“r--”表隻讀

2)改:chmod改權限清單,chown改使用者群組

文法:

chmod [ugoa][+-=][rwx] 檔案或目錄

chmod 數字 檔案或目錄

chmod -r 權限 檔案或者目錄 ##表示遞歸執行

mkdir /opt/test

touch /opt/test/a

ls -ld /opt/test

chmod u-w /opt/test ##去除使用者寫的權限

chmod u+w,g+w,o= /opt/test ##設定使用者群組加寫,其他人沒有權限

chmod 775 /opt/test ##設定使用者群組的權限為rwx,其他人權限為rx;r=4,w=2,x=1,使用者權限=4+2+1=rwx

chmod -r 755 /opt/test ##遞歸設定權限,即目錄下的所有内容都使用此權限

useradd lx

echo 123123 |passwd --stdin lx

分析:lx目前屬于其他人,有rx的權限

chmod o= /opt/test

su - lx ##切換賬号

cd /opt/test ##報錯權限拒絕

exit

chmod o+x /opt/test

su - lx

cd /opt/test ##進入目錄成功,結論:要進入目錄必須給x的權限

ls ##權限拒絕

chmod o+r /opt/test

su - lx

cd /opt/test

ls ##檢視到a檔案,結論:要檢視目錄中内容必須給r的權限

chmod o+w /opt/test

ls -l /opt/test ##目錄的權限為o=rwx,a檔案的權限為o=r

cd /opt/test

rm -rf a ##删除a檔案,結論:隻要對目錄有寫權限,目錄寫内容可以被删除、修改、移動,不管子檔案有無權限,是以w權限一般不給其他人,慎重給u,g。

3)修改使用者清單:chown

chown 使用者:組 檔案或目錄 ##同時修改資源的使用者群組

chown 使用者 檔案或目錄 ##隻修改使用者

chown :組 檔案或目錄 ##隻修改組

使用-r可以遞歸設定。

chown lx /opt/test ##修改使用者為lx

ls -ld /opt/test

chown :g01 /opt/test ##修改組為g01

ls -ld /opt/test ##驗證

chown u01:g02 /opt/test ##同時修改使用者群組

chown -r u01:g02 /opt/test ##遞歸設定權限