概念:
- 權限通常分爲讀、寫、執行
- 權限輻射的範圍由小及大:用戶-->組-->Other
- 權限三個一組(rwx),對應UGO,分別設置每個文件擁有一個所屬用戶和組,分別對應着U、G,對於既不屬於該文件所屬用戶也不屬於該用戶組的用戶的權限對應O權限
實例:
11.用戶和組:|--經過用戶來限制進程的權限,經過組來組織管理用戶.
|--每一個用戶擁有一個uid,每一個用戶屬於一個主組,屬於一個或多個附屬組.
|--每一個組有一個gid.
|--每一個用戶擁有一個指定的shell.(默認是bash.)
|--文件都有一個隸屬的用戶和組,而用戶和組存在權限,因此文件存在權限. {默認的「組和用戶」與當前操做用戶同名}
|--uid : 0 root
1-499 系統用戶(專門爲某些服務{例如打印機}或進程準備,它們不須要登錄.)
500-60000 普通用戶
|-- id passwd
|-- /etc/passwd /etc/shadow /etc/group
用戶 加密後的密碼 組
|-- /etc/passwd 的用戶結構(:隔開):用戶名 密碼 uid gid 描述信息(可無) 用戶home目錄 shell
!!表示空 /bin/nologin
x表明有密碼 /bin/flase
表示沒有shell.
|-- /ect/group 組名 組密碼 gid 包括的用戶
(如今不用)
|-- who whoami w
|--建立用戶:useradd nash_su (系統自動生成的-G就是用戶名,密碼爲空.)
|--參數: -u(這是uid) -g -G(附屬組) -d(home目錄) -s(這是shell)
|--passwd
|--修改用戶:usermod 參數 newname oldname
|--參數:-l(用戶名) -u -g -G -d -L(鎖定用戶) -U(給用戶解鎖)
|--刪除用戶:userdel nash_su (保留家目錄)
userdel -r nash_su (不保留家目錄)
|--建立組: (基於部門和功能)
groupadd linuxcast
|--修改組: groupmod -n newname oldname group -g newgid oldgid
|--刪除組: groupdel linuxcast
(修改信息能夠在 /etc/passwd /etc/shadow /etc/group 修改.但不建議這麼作)
12.權限機制:|-- r w x (注意目錄若是有r,w,必須有x)
|--文件的格式(權限基於UGO模型):drwx-wxr-x nash_su traning 1024 Oct 17:28 linuxcast.net
lr--rwxr-- nash_su traning 2048 Jan 13:14 hello
-rwx---rw- nash_su traning 3072 Oct 15:16 index.php
|--修改文件權限:
//|--先切換到當前文件或目錄.
|--修改用戶和組:|--chown 新用戶或組 文件
|--chown new_username dirname (只修改目錄權限)
|--chown -R new_username dirname (遞歸地修改了目錄裏面的所有文件)
|--chgrp new_grpname filename
|--chgrp -R new_grpname dirname
|--直接修改UGO: |--chmod 模式 文件
|-- chmod u+rw linuxcast.net chmod -R u+rw linuxcast.net
|-- chmod go-r hello.cpp
|-- chmod a-rx index.php
|-- chmod 777 linuxcast.net
|-- chmod 555 hello.cpp
|-- chmod 111 index.php
|--查看: ls -l linuxcast ls -ld linuxcast.net
|--實例:<見UGO.png>
groupadd traning
groupadd market
groupadd manage
useradd -G traning nashh_su
uaeradd -G tranig bob
useradd -G market alice
useradd -G market john
useradd -G manage steve
useradd -G manage david
cd / //放在根目錄下,查詢您方便
mkdir linuxcast.net //第一個要求
ls
mkdir traning //第二個要求
mkdir market 第...
mkdir manage //第二個要求
ls -l
chgrp traning traning/ //部門對應着組,要使各部門的文件夾對應各部門:即修改組。
chgrp market market/
chgrp mannage manage/
ll //查看全部文件詳細信息
/*那麼如今不一樣部門直接互相訪問,就是以O的權限,我們要禁止它互相訪問,取消0便可*/
chmod o-rx traning/
chmod o-rx market/
chmod o-rx manage/ //完成第三個要求
ll
cd /traning/
mkdir nash_su
mkdir bob
ls -l
chown nash_su nash_su/
chown bob bob/
ls -l
cd /market/
mkdir alice
mkdir john
ls -l
chown alice alice/
chown john john/
ls -l
cd /manage/
mkdir steve
mkdir david
ls -l
chown steve steve/
chown david david/
ls -l
chgrp traning nash_su/
chgrp traning bob/
chgrp market alice/
chgrp market john/
chgrp manage steve/
chgrp manege david/
ls -l
/*在生產中,權限寧願放小,不可給大,由於此處無特殊要求,因此O給他所有拿掉*/
chmod o-rx nash_su
bob
alice
john
steve
david
//完成了第四個要求,而且已經修改了他們對應的UG,以及UGO的權限
對於第五個要求,很顯然,同組的不一樣用戶,既然同組{G的權限默認就是r-x},那麼互相查看原本就是能夠的,
而O的權限以及撤銷,因此不會修改。
//至此,完成第五個要求,固然還能夠ls -l 和不一樣用戶切換,看看權限生效了沒有。
13.擴展機制:
|--默認權限:|--每一個終端(分root 和 普通用戶)存在umask: umask num(可修改) umask(不加任何參數)
|--dir :777-umask
file:666-umask
|--特殊權限:|--suid (passwd命令的設計:非root也能用.)
|--sgid (讓目錄下的全部文件和子目錄繼承該目錄的附屬組.)
|--sticky (對同一目錄{隸屬組X}有讀寫權限的不一樣用戶{隸屬同一個組X}間的文件,僅本身可刪除)
|--chmod u+s linuxcast
|--chmod 4755 linuxcast
|--chmod g+s linuxcast
|--chmod 2755 linuxcast
|--chmod o+t linuxcast
|--chmod 1755 linuxcast
/*sticky的實例*/
groupadd testgroup
useradd -G testgroup user1
useradd -G testgroup user2
cd /
mkdir linuxcast.net
chgrp testgroup linuxcast.net
ls -ld linuxcast.net
chmod g+rwx linuxcast.net //把組的權限提高上來
ls -ld linuxcast.net
chmod o+t linuxcast.net //在centos上去掉這句,看看下面操做有什麼不一樣。{對比出真知}
ls -ld linuxcast.net
su - user1 {寫點東西}
cd /linuxcast.net
touch user1
exit
su - user2
cd /linuxcast.net
touch user2 {寫點東西}
ls
cat user1 //查看沒問題
rm -rf user1 //發現刪除和修改不行
|--文件權限限制對於root沒有做用,root的權限無窮大.