了解賬号及權限、組之的關系;管理使用者;管理組;設定權限
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 ##遞歸設定權限