1、描述linux目錄結(jié)構(gòu)以及目錄結(jié)構(gòu)命名規(guī)定
文件名規(guī)則:(目錄也屬于文件的一種)
? ?文件名最長(zhǎng)255個(gè)字節(jié)
? ?包括路徑在內(nèi)文件名稱(chēng)最長(zhǎng)4095個(gè)字節(jié)
? ?藍(lán)色-目錄,綠色-可執(zhí)行文件,紅色-壓縮文件,淺藍(lán)色-鏈接文件,灰色-其他文件
? ? ? ? ? 由變量LS_COLORS決定,配置文件/etc/DIR_COLORS(強(qiáng)烈不建議修改)
? ?除了斜杠/和NULL值,所有字符都有效。但使用特殊字符的目錄名和文件不推薦使用,有些字符需要用引號(hào)來(lái)引起它們
? ?標(biāo)準(zhǔn)Linux文件系統(tǒng)(如ext4),文件名稱(chēng)大小寫(xiě)敏感
? 文件系統(tǒng)結(jié)構(gòu):新舊版本各有些許不同
? ? ? ? ? /boot:引導(dǎo)文件存放目錄,內(nèi)核文件(vmlinuz)、引導(dǎo)加載器(bootloader, grub)都存放于此目錄
? ? ? ? ? /bin:所有用戶(hù)使用的基本命令,不能關(guān)聯(lián)至獨(dú)立分區(qū),OS啟動(dòng)即會(huì)用到的程序(較新版本為軟鏈接至/usr/bin)
? ? ? ? ? /sbin:管理類(lèi)的基本命令,不能關(guān)聯(lián)至獨(dú)立分區(qū),OS啟動(dòng)即會(huì)用到的程序(較新版本為軟鏈接至/usr/sbin)
? ? ? ? ? ?/lib:?jiǎn)?dòng)時(shí)程序依賴(lài)的基本共享庫(kù)文件以及內(nèi)核模塊文件(/lib/modules)
? ? ? ? ? ?/lib64:專(zhuān)用于x86_64系統(tǒng)上的輔助共享庫(kù)文件存放位置
? ? ? ? ? ?/etc:配置文件目錄
? ? ? ? ? ?/home/USERNAME:普通用戶(hù)家目錄
? ? ? ? ? ?/root:管理員的家目錄
? ? ? ? ? ?/media:便攜式移動(dòng)設(shè)備掛載點(diǎn)(光盤(pán)等)
? ? ? ? ? ?/mnt:臨時(shí)文件系統(tǒng)掛載點(diǎn)
? ? ? ? ? ?/dev:設(shè)備文件及特殊文件存儲(chǔ)位置
? ? ? ? ? ? ? ? ? ? ? ? b:block device,隨機(jī)訪(fǎng)問(wèn),塊設(shè)備
? ? ? ? ? ? ? ? ? ? ? ? c:character device,線(xiàn)性訪(fǎng)問(wèn),字符設(shè)備
? ? ? ? ? /opt:第三方應(yīng)用程序的安裝位置
? ? ? ? ? /srv:系統(tǒng)上運(yùn)行的服務(wù)用到的數(shù)據(jù)
? ? ? ? ? /tmp:臨時(shí)文件存儲(chǔ)位置
? ? ? ? ? ?/usr:universal shared,read-only data 通用共享,只讀數(shù)據(jù)
? ? ? ? ? ? ? ? ? bin:保證系統(tǒng)擁有完整功能而提供的應(yīng)用程序
? ? ? ? ? ? ? ? ? sbin:
? ? ? ? ? ? ? ? ? lib:32位使用
? ? ? ? ? ? ? ? ? lib64:只存在64位系統(tǒng)
? ? ? ? ? ? ? ? ? include:C程序的頭文件(header files)
? ? ? ? ? ? ? ? ?share:結(jié)構(gòu)化獨(dú)立的數(shù)據(jù),例如doc, man等
? ? ? ? ? ? ? ? ?local:第三方應(yīng)用程序的安裝位置
? ? ? ? ? ? ? ? ?bin, sbin, lib, lib64, etc, share
? ? ? ? ?/var:variable data files? 變量數(shù)據(jù)文件
? ? ? ? ? ? ? ? ? cache:應(yīng)用程序緩存數(shù)據(jù)目錄
? ? ? ? ? ? ? ? ?lib:應(yīng)用程序狀態(tài)信息數(shù)據(jù)
? ? ? ? ? ? ? ? ?local:專(zhuān)用于為/usr/local下的應(yīng)用程序存儲(chǔ)可變數(shù)據(jù)
? ? ? ? ? ? ? ? ?lock:鎖文件
? ? ? ? ? ? ? ? ? log:日志目錄及文件
? ? ? ? ? ? ? ? ? opt:專(zhuān)用于為/opt下的應(yīng)用程序存儲(chǔ)可變數(shù)據(jù)
? ? ? ? ? ? ? ? ? run:運(yùn)行中的進(jìn)程相關(guān)數(shù)據(jù),通常用于存儲(chǔ)進(jìn)程pid文件
? ? ? ? ? ? ? ? ? spool:應(yīng)用程序數(shù)據(jù)池
? ? ? ? ? ? ? ? ? tmp:保存系統(tǒng)兩次重啟之間產(chǎn)生的臨時(shí)數(shù)據(jù)
? ? ? ? /proc:用于輸出內(nèi)核與進(jìn)程信息相關(guān)的虛擬文件系統(tǒng)
? ? ? ? /sys:用于輸出當(dāng)前系統(tǒng)上硬件設(shè)備相關(guān)信息虛擬文件系統(tǒng)
? ? ? ? /selinux:security enhanced Linux,selinux相關(guān)的安全策略等信息的存儲(chǔ)位置
2、顯示/etc目錄下,所有以.d結(jié)尾的文件或目錄
?????ls -d /etc/*.d
3、顯示/etc目錄下,所有.conf結(jié)尾,且以m,n,r,p開(kāi)頭的文件或目錄
? ?? ls -d /etc/[mnrp]*.conf
4、創(chuàng)建/app/rootdir目錄,并復(fù)制/root下所有文件到該目錄內(nèi),?要求保留原有權(quán)限
? ?? mkdir -p /app/rootdir
? ?? cp -r -p /root/. /app/rootdir? ? ?或? ? ? cp -a /root/. /app/rootdir
5、使用命令行展開(kāi)功能,創(chuàng)建/tmp/a1,?/tmp/a2,?/tmp/a1/a,?/tmp/a1/b,在/tmp目錄下創(chuàng)建目錄:x_y,?x_z,?q_y,?q_z
? ?? mkdir -p /tmp/a{1/{a,b},2}
? ?? mkdir /tmp/x_{y,z} /tmp/q_{y,z}
6、總結(jié)用戶(hù)、用戶(hù)組管理命令并演示命令以及常見(jiàn)用法
用戶(hù)主要管理命令: (adduser與useradd相同,軟鏈接)
? ? useradd [OPTION...] USERNAME :新建用戶(hù),不加OPTIONS將以默認(rèn)策略創(chuàng)建用戶(hù)
? ? ? ? ? ? -u UID :指定uid,可超過(guò)默認(rèn)最大值。不加此選項(xiàng)將按照當(dāng)前已存在的最大uid值往上遞增,
? ? ? ? ? ? ? 如已存在默認(rèn)最大值的uid,將按最小的空閑uid值住上遞增
? ? ? ? ? ? -o? ? :配合-u選項(xiàng),不檢查UID的唯一性,可創(chuàng)建與現(xiàn)在用戶(hù)uid相同的新用戶(hù)
? ? ? ? ? (權(quán)限也將相同,o選項(xiàng)必須在u選項(xiàng)之前,否則會(huì)把o選項(xiàng)當(dāng)成UID)
? ? ? ? ? ? -g GID :指明用戶(hù)的主組,不創(chuàng)建私有組。組必須事先存在,可為組名,也可以是gid
? ? ? ? ? ? -r? ? :創(chuàng)建系統(tǒng)用戶(hù),默認(rèn)不生成家目錄。一般要同時(shí)指定shell為nologin (-s nologin)
? ? ? ? ? ? -m? ? :創(chuàng)建家目錄,用于系統(tǒng)用戶(hù),配合-r(因?yàn)橄到y(tǒng)用戶(hù)默認(rèn)不生成家目錄)
? ? ? ? ? ? -N? ? :不創(chuàng)建私用組作為主組,使用users組作為主組
? ? ? ? ? ? -M? ? :不創(chuàng)建家目錄,用于非系統(tǒng)用戶(hù)(因?yàn)槠胀ㄓ脩?hù)默認(rèn)會(huì)生成家目錄)
? ? ? ? ? ? -s SHELL? ? :指明用戶(hù)默認(rèn)使用的shell程序(可用列表:/etc/shells)
? ? ? ? ? ? -d HOME_DIR :指定路徑為用戶(hù)家目錄。HOME_DIR不能事先存在,命令會(huì)自動(dòng)創(chuàng)建
? ? ? ? ? ? -c "COMMENT":添加用戶(hù)的注釋信息
? ? ? ? ? ? -G GROUP1[,GROUP2,...] :為用戶(hù)指明附加組,組必須事先存在
? ? usermod [OPTION...] USERNAME:用戶(hù)屬性修改
? ? ? ? ? ? -u UID : 更改用戶(hù)UID
? ? ? ? ? ? -g GID : 更改用戶(hù)主組
? ? ? ? ? ? -d DIRECTORY : 修改用戶(hù)家目錄,新家目錄不會(huì)自動(dòng)創(chuàng)建
? ? ? ? ? ? -m :移動(dòng)家目錄數(shù)據(jù),只能配合-d選項(xiàng)使用(m必須在d之前)
? ? ? ? ? ? -l NEW_NAME: 更改用戶(hù)名(家目錄名等不會(huì)更改)
? ? ? ? ? ? -e YYYY-MM-DD: 指明用戶(hù)賬戶(hù)過(guò)期日期
? ? ? ? ? ? -G GROUP1[,GROUP2,...] :新附加組,原來(lái)的附加組將會(huì)被覆蓋;
? ? ? ? ? ? ? ? ? ? ? ? 若保留原有,要配合-a選項(xiàng)(a選項(xiàng)必須在G選項(xiàng)之前,否則會(huì)把a(bǔ)選項(xiàng)當(dāng)成組名)
? ? ? ? 清空附加組:usermod -G '' USERNAME 或 usermod -G '主組名' USERNAME
? ? userdel [-r] USERNAME :刪除用戶(hù)。加-r選項(xiàng):刪除用戶(hù)并刪除家目錄、郵件等
? ? passwd [OPTION...] [USERNAME] :設(shè)置指定用戶(hù)的口令
? ? ? ? ? ? ? :修改指定用戶(hù)的密碼(交互式,修改密碼后被鎖定的口令會(huì)被自動(dòng)解鎖)
? ? ? ? ? ? -d :刪除指定用戶(hù)密碼(清空口令,已鎖定的口令也將被解鎖)
? ? ? ? ? ? -l :鎖定指定用戶(hù)(shadow文件口令字段前面會(huì)被加上兩個(gè)嘆號(hào),雙保險(xiǎn))
? ? ? ? ? ? -u :解鎖指定用戶(hù)(如果解鎖后會(huì)造成空口令,系統(tǒng)默認(rèn)不允許)
? ? ? ? ? ? -f :強(qiáng)制操作? ? (配合-u,允許解鎖后可造成空口令)
? ? ? ? ? ? -e :強(qiáng)制用戶(hù)下次登錄修改密碼
? ? ? ? ? ? -n DAYS :指定最短使用期限
? ? ? ? ? ? -x DAYS :最大使用期限
? ? ? ? ? ? -w DAYS :提前多少天開(kāi)始警告
? ? ? ? ? ? -i DAYS :帳戶(hù)鎖定寬限期,DAYS=-1永不鎖定,DAYS=0過(guò)期立即鎖定
? ? ? ? ? ? --stdin:從標(biāo)準(zhǔn)輸入接收用戶(hù)新密碼進(jìn)行修改
? ? ? ? 選項(xiàng)--stdint示例: (不支持passwd --stdin user1 < password.txt可能因?yàn)槲募J(rèn)會(huì)包含一些特殊字符)
? ? ? ? ? 1.? passwd --stdin user1
? ? ? ? ? ? ? ?PASSWORD
? ? ? ? ? 2.? echo 'PASSWORD' | passwd --stdin user1
? ? ? ? ? 3.? cat password.txt | passwd --stdin user1
? ? ? ? ? 4.? passwd --stdin user1 << EOF
? ? ? ? ? ? ? password
? ? ? ? ? ? ? ?EOF
群組主要管理命令:
? ? groupadd [OPTION...] GROUPNAME :創(chuàng)建組
? ? ? ? ? ? ? -g GID: 指明GID號(hào)
? ? ? ? ? ? ? -r? ? : 創(chuàng)建系統(tǒng)組
? ? groupmod [OPTION...] GROUPNAME :組屬性修改
? ? ? ? ? ? ? -n NEWNAME :重命名組名
? ? ? ? ? ? ? -g GID? ? : 指定新的GID
? ? groupdel GROUPNAME:刪除組(如果存在用戶(hù)把該組當(dāng)成主組,不允許刪除,附加組可以)
? ? gpasswd [OPTION] GROUPNAME :設(shè)置指定組的口令與更改指定群組組成員
? ? ? ? ? ? ? ? :交互式方式修改組口令,修改后已鎖定的組口令將會(huì)被解鎖
? ? ? ? ? ? ?-R :鎖定組密碼(原口令清空,用單個(gè)嘆號(hào)代替)
? ? ? ? ? ? ?-r :清除組密碼(清空口令,已鎖定的口令也將被解鎖)
? ? ? ? ? ? -d USERNAME :從指定組中移除指定用戶(hù)(附加組)
? ? ? ? ? ? -M USER1,USER2,... :指定多個(gè)用戶(hù)加入指定組(附加組,覆蓋方式)
? ? ? ? ? ? -A USER1,USER2,... :設(shè)置有指定組管理權(quán)限的用戶(hù)列表(覆蓋方式)
? ? ? ? ? ? -a USERNAME :將指定用戶(hù)追加至指定組中(附加組)(與usermod -aG相同、)
? ? ? ? ? ?注:在較新版本中,空組口令與被鎖定的組口令基本沒(méi)區(qū)別,但在老版本中空口令可能造成無(wú)需口令的情況
? ? newgrp GROUPNAME:把當(dāng)前用戶(hù)的主組臨時(shí)切換為指定組。
? ? ? ? ?如果指定的群組已為當(dāng)前用戶(hù)的附加組或當(dāng)前用戶(hù)為root,則無(wú)需組口令(組口令被鎖定也仍可切換)
? ? ? ? ?否則需要輸入指定群組的組口令。使用完畢,用exit命令切換回原主組。
? 用戶(hù)相關(guān)的其他命令:
? ? id [OPTION...] [USERNAME] :查看用戶(hù)相關(guān)的ID信息
? ? ? ? ? :查看用戶(hù)的uid,gid(主組),groups(主組+附加組的gid) 與用戶(hù)名、組名
? ? ? ? -u: 顯示UID
? ? ? ? -g: 顯示GID,僅主組
? ? ? ? -G: 顯示用戶(hù)所屬的組的ID,包括主組與附加組
? ? ? ? -n: 顯示名稱(chēng),需配合ugG使用
? ? chsh -s SHELL USERNAME :修改用戶(hù)默認(rèn)shell
? ? chsh? -l :顯示可用的shell列表(與cat /etc/shells相同)
? ? chfn [OPTION] [USERNAME]:修改全名和注釋?zhuān)℅ECOS字段)
? ? ? ? ? ? ? ?-f 'STRING' :全名
?? ? ? ? ? ? ??-o 'STRING' :辦公室地點(diǎn)
? ? ? ? ? ? ? ?-p 'STRING' :辦公電話(huà)
? ? ? ? ? ? ? -h 'STRING' :家庭電話(huà)
? ? ? ? ? ?注:不加選項(xiàng)則是按提示逐步填寫(xiě)以上信息,若要清空信息必須要使用選項(xiàng)。
? ? finger [USERNAME] :查看全名和注釋詳情(帶標(biāo)題,更直觀))
? ? groupmems OPTION USERNAME -g GROUPNAME :更改指定群組組成員(只供root用戶(hù)使用)
? ? ? ? ? ? ? ? ? ? ? ? ? -l :顯示組成員列表
? ? ? ? ? ? ? ? ? ? ? ? -a :將指定用戶(hù)加入指定組(附加組)(與usermod -aG相同、)
? ? ? ? ? ? ? ? ? ? ? ?-d :從指定組中刪除指定用戶(hù)(對(duì)主組無(wú)效)(與gpasswd -d相同)
? ? ? ? ? ? ? ? ? ? ? ?-p :從指定組中清除所有成員(附加組)(與gpasswd -M '' GROUPNAME相同)
? ? groups [USERNAME...] :查看指定用戶(hù)所屬的組列表(與id -Gn相同)
? ? chage [OPTION...] USERNAME :修改用戶(hù)口令策略
? ? ? ? ? ? ? ? ? ? ? -d LAST_DAY :最近口令更改日。LAST_DAY格式:YYYY-MM-DD或0
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(0表示強(qiáng)制用戶(hù)下次更改密碼,與passwd -e相同)
? ? ? ? ? ? ? ? ? ? -m MIN_DAYS :最短口令使用期。MIN_DAYS格式為數(shù)字(天)(與passwd -n相同)
? ? ? ? ? ? ? ? ? ? -M MAX_DAYS :最長(zhǎng)口令有效期。MAX_DAYS格式為數(shù)字(天)(與passwd -x相同)
? ? ? ? ? ? ? ? ? ? -W WARN_DAYS :密碼過(guò)期警告。WARN_DAYS格式為數(shù)字(天)(與passwd -w相同)
? ? ? ? ? ? ? ? ? ? -I INACTIVE :帳戶(hù)鎖定寬限期。INACTIVE格式為數(shù)字(天)(與passwd -i相同)
? ? ? ? ? ? ? ? ? ? -E EXPIRE_DATE :賬戶(hù)到期日。EXPIRE_DATE格式:YYYY-MM-DD(與usermod -e相同)
? ? ? ? ? ? ? ? ? ? –l :顯示密碼策略
? ? ? ? ? ? ? ?注:不加選項(xiàng)則是按提示逐步填寫(xiě)以上信息
7、文件權(quán)限,屬主屬組管理命令有哪些,并演示命令以及用法
文件權(quán)限修改命令:
? chmod [-R] OCTAL-MODE FILE... :八進(jìn)制數(shù)字模式修改文件權(quán)限(三位8進(jìn)制數(shù)分別對(duì)應(yīng):屬主,屬組,其他)
? chmod [OPTION]... MODE[,MODE]... FILE... :一般賦值模式修改文件
? ? ? MODE:
? ? 修改(覆蓋)一類(lèi)用戶(hù)的所有權(quán)限:
? ? ? ? ? ? u=? g=? o=? a=
? ? 加減一類(lèi)用戶(hù)某位或某些位權(quán)限
? ? ? ? ? ? u+? u-? g+? g-? o+? o-? a+? a-
? chmod [-R] --reference=RFILE FILE... :將FILE...文件的權(quán)限修改成與RFILE相同
? chown [-R] [OWNER][:[GROUP]] FILE... :修改文件的所有者與所屬組
? ? ? ? -R : 遞歸(目錄中的子目錄與文件都修改)
? ? ? ? ? ? ? ? ? ? ? OWNER? ? ? ? :修改文件所有者
? ? ? ? ? ? ? ? ? ? ? OWNER:GROUP? :修改文件所有者與所屬組(如果兩者名稱(chēng)相同,可寫(xiě)成OWNER:)
? ? ? ? ? ? ? ? ? ? ? ? ? :GROUP? :修改文件所屬組
? ? ? ? ? ? ? ? ? ? (命令中的冒號(hào)可用.替換)
? ? ? chown [-R] --reference=RFILE FILE... :將FILE...文件的所有者和所屬組修改成與RFILE相同
? ? ? chgrp [-R] --reference=RFILE FILE... :將FILE...文件的所屬組修改成與RFILE相同
? ? ? chgrp [-R] GROUP FILE... :修改文件的所屬組(與chown :GROUP FILE...相同)
注:即使是文件的所有者也不能把文件的屬主屬組隨便修改成其他用戶(hù)和組
? ? ? ? ? ? -R選項(xiàng)要慎用,"chown -R OWNER /"此命令可能造成的嚴(yán)重后果與"rm -rf /"無(wú)異
? 權(quán)限設(shè)置示例:
? ? chown .sales testfile? ? ? :把文件testfile的屬組改成sales
? ? chown root:admins testfile? :把文件testfile的屬主改成root,屬組改成admins
? ? chmod u+wx,g-r,o=rx file? ? :把文件file屬主加上寫(xiě)和執(zhí)行權(quán)限,屬組去掉讀權(quán)限,其他人修改成讀和寫(xiě)權(quán)限
? ? chmod 600 file? ? ? ? ? ? ? :把文件file的權(quán)限修改為屬主有讀和寫(xiě)權(quán)限,屬組與其他人無(wú)權(quán)限
? ?chown mage testfile? ? ? ? ?:把文件testfile的屬主更改為用戶(hù)mage
? ?chmod -R g+rwX /testdir? ? :把目錄/testdir下的所有文件屬組加上讀和寫(xiě)權(quán)限,有執(zhí)行權(quán)限的文件屬組加上執(zhí)行權(quán)限
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 目錄/testdir及其所有子目錄屬組加上讀、寫(xiě)和執(zhí)行權(quán)限
新建文件和目錄的默認(rèn)權(quán)限
? umask值:系統(tǒng)判斷創(chuàng)建文件或目錄時(shí)默認(rèn)應(yīng)該給的權(quán)限,是權(quán)限默認(rèn)值的補(bǔ)碼umask=666-default,umask=777-default
? ? ? ? ? 如:umask為111,則原碼666補(bǔ)碼111,110 110 110與001 001 001得110110110=666(不等于555)
? ? ? 由此可得若default某位存在奇數(shù)(執(zhí)行權(quán)限),則將其權(quán)限+1
? ? ? 新建文件權(quán)限:666-umask=default
? ? ? 新建目錄權(quán)限:777-umask=default
? ? 系統(tǒng)初始umask值:非特權(quán)用戶(hù)是 002? ————? 文件664? 目錄775?
? ? ? ? ? ? ? ? root是 022? ————? 文件644? 目錄755
? ? umask [OPTION] :查看或修改當(dāng)前登陸進(jìn)程的umask值
? ? ? ? ? ? ? :查看當(dāng)前umask
? ? ? ? ? ### :設(shè)定umask,登出后失效
? ? ? ? ? ? –S :以一般模式方式顯示目錄當(dāng)前的default 777-umask:(u=rwx,g=rx,o=rx)
? ? ? ? ? ? –p :以可被調(diào)用的格式顯示umask (umask 0022) 用法示例:umask -p >> ~xu/.bashrc
? #? u=rw g=r 0= :使用賦值模式指定default設(shè)置umask
? ? 配置文件:全局設(shè)置:/etc/bashrc? ? ?
? ? ? ? ? 用戶(hù)設(shè)置:~/.bashrc? 新起一行,寫(xiě)入:umask ### (如有多行,以最后一行為準(zhǔn),修改后使用source ~/.bashrc)
Linux文件系統(tǒng)上的特殊權(quán)限
? 可執(zhí)行文件上的SUID權(quán)限:
任何一個(gè)可執(zhí)行程序文件能不能啟動(dòng)為進(jìn)程,取決發(fā)起者對(duì)程序文件是否擁有執(zhí)行權(quán)限
? ? 啟動(dòng)為進(jìn)程之后,其進(jìn)程的屬主為原程序文件的屬主(以文件屬主的身份發(fā)起進(jìn)程)
? ? (SUID只對(duì)二進(jìn)制可執(zhí)行程序有效,設(shè)置在腳本、目錄上無(wú)意義。? 與執(zhí)行權(quán)限沒(méi)有任何關(guān)系,suid的作用是進(jìn)程訪(fǎng)問(wèn)文件時(shí)權(quán)限能跟進(jìn)程的屬主一樣。)
? ? 權(quán)限設(shè)定:
? ? ? chmod u+s FILE...? ? 或? ? chmod 4### FILE...
? ? ? chmod u-s FILE...? ? 或? ? chmod ### FILE...
? 可執(zhí)行文件上的SGID權(quán)限:(對(duì)腳本無(wú)意義)
? ? 任何一個(gè)可執(zhí)行程序文件能不能啟動(dòng)為進(jìn)程:取決發(fā)起者對(duì)程序文件是否擁有執(zhí)行權(quán)限
? ? 啟動(dòng)為進(jìn)程之后,其進(jìn)程的屬組為原程序文件的屬組(以文件屬組組成員的身份發(fā)起進(jìn)程)
? ? 權(quán)限設(shè)定:
? ? ? chmod g+s FILE...? ? 或? ? chmod 2### FILE...
? ? ? chmod g-s FILE...? ? 或? ? chmod ### FILE...
? 目錄上的SGID權(quán)限:
? ? 默認(rèn)情況下,用戶(hù)創(chuàng)建文件時(shí),其屬組為此用戶(hù)所屬的主組
? ? 一旦某目錄被設(shè)定了SGID,則對(duì)此目錄有寫(xiě)權(quán)限的用戶(hù)在此目錄中創(chuàng)建的文件所屬的組為此目錄的屬組
通常用于創(chuàng)建一個(gè)協(xié)作目錄,設(shè)置和更改SGID權(quán)限之前目錄中已經(jīng)存在的文件 原屬組不受影響。
? ? 權(quán)限設(shè)定:
? ? ? chmod g+s DIR...? ? 或? ? chmod 2### DIR...
? ? ? chmod g-s DIR...? ? 或? ? chmod ### DIR...
? Sticky位(粘滯位):? /tmp目錄默認(rèn)即使用該特殊權(quán)限
? ? 具有寫(xiě)權(quán)限的目錄通常用戶(hù)可以刪除該目錄中的任何文件,無(wú)論對(duì)該文件有何權(quán)限
? ? 在目錄設(shè)置Sticky 位,只有文件的所有者或root可以刪除該文件
? ? (sticky 設(shè)置在文件上無(wú)意義)
? ? 權(quán)限設(shè)定:
? ? ? chmod o+t DIR...? ? 或? ? chmod 1### DIR...
? ? ? chmod o-t DIR...? ? 或? ? chmod ### DIR...
? 特殊權(quán)限數(shù)字法:
? ? 數(shù)字1代表Sticky位,數(shù)字2代表SGID,數(shù)字4代表SUID,7表示三者皆俱,3、6、5同理。在普通權(quán)限之前,如:2755
? 權(quán)限位映射
? ? SUID: user,占據(jù)屬主的執(zhí)行權(quán)限位
? ? ? s:屬主擁有x權(quán)限
? ? ? S:屬主沒(méi)有x權(quán)限(取決發(fā)起者有沒(méi)有,跟屬主有沒(méi)有無(wú)關(guān))
? ? SGID: group,占據(jù)屬組的執(zhí)行權(quán)限位
? ? ? s: group擁有x權(quán)限
? ? ? S:group沒(méi)有x權(quán)限
? ? Sticky: other,占據(jù)other的執(zhí)行權(quán)限位
? ? ? t:other擁有x權(quán)限
? ? ? T:other沒(méi)有x權(quán)限
? 設(shè)定文件特定屬性:限制root賬號(hào),防止誤操作
? ? chattr [OPTION] FILE...
? ? ? ? ? ? +i? ? :不能刪除,改名,更改
? ? ? ? ? ? +a? ? :只能追加內(nèi)容,不能刪除,改名,更改
? ? ? -i 、 -a :去除相關(guān)屬性
? 注:若直接將已+i的文件的上級(jí)目錄刪除,系統(tǒng)將清空該目錄下所有沒(méi)+i的文件,并保留目錄
? ? ? +i與+a同時(shí)存在時(shí),+a無(wú)效。+i級(jí)別高于+a
? ? lsattr FILE...? :顯示文件特定屬性? (----ia---------- FILE...)
ACL:Access Control List,訪(fǎng)問(wèn)控制列表:除了文件的所有者,所屬組和其它人,可以對(duì)更多的用戶(hù)設(shè)置權(quán)限
? ? (未設(shè)置ACL的文件權(quán)限位與引用計(jì)數(shù)之間顯示為“.”,設(shè)置了ACL的文件顯示為“+”)
? ACL生效順序:(就是getfacl命令結(jié)果的順序)
? ? 所有者,自定義用戶(hù)(ACL),組(包括ACL自定義組,也包括所屬組),其他人(若用戶(hù)屬于多個(gè)組,則繼承多個(gè)組的權(quán)限集合)
mask值的概念:
? ? mask值即ACL(自定義用戶(hù),自定義組)和所屬組的權(quán)限最高值,只影響除所有者和other之外的人和組的最大權(quán)限
設(shè)置了ACL權(quán)限的文件,其元數(shù)據(jù)的group權(quán)限顯示為mask值,而非普通的組權(quán)限
但原有的普通所屬組權(quán)限不受影響,系統(tǒng)將其視為ACL自定義組的一部分 (group::rw-)
? ? mask需要與ACL的權(quán)限進(jìn)行邏輯與(and)運(yùn)算后,才能變成有限的權(quán)限:getfacl FILE
? user:xu:rwx #effective:rw-? ? ? ? ? ? (僅rw生效,111 and 110 equal 110)
? ? ? mask::rw-? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (ACL可享有的最高權(quán)限為rw-,110)
? ? 要設(shè)置的ACL或所屬組權(quán)限大于當(dāng)前的mask值時(shí),mask值將變化為所設(shè)置的權(quán)限值
要設(shè)置的mask值小于當(dāng)前的ACL或所屬組權(quán)限時(shí),ACL或所屬組大于mask的權(quán)限將不生效
? getfacl [OPTION] FILE|DIRECTORY? :查看指定文件或目錄的所有權(quán)限(含ACL和普通權(quán)限) GET File Access Control List
? setfacl OPTION... [MODE] FILE...|DIRECTORY...? :設(shè)置文件或目錄的ACL權(quán)限
? ? ? [OPTION]:-m設(shè)置,-x刪除,-b清空,-R遞歸,-M參照文件批量設(shè)置,-X參照文件批量刪除
? ? 示例:
? ? ? ? 設(shè)置:
? setfacl -m u:wang:rwx FILE|DIRECTORY? ? :給wang用戶(hù)對(duì)于指定文件或目錄的ACL權(quán)限設(shè)置為rwx
? ? ? setfacl -m g:sales:rw FILE|DIRECTORY? ? :給sales組對(duì)于指定文件或目錄的ACL權(quán)限設(shè)置為rw-
? ? ? setfacl -m d:u:wang:rx DIRECTORY? ? ? ? :設(shè)置指定目錄中之后新建的文件ACL權(quán)限默認(rèn)為r-x(MODE開(kāi)頭為d:)
? setfacl -M file.acl FILE|DIRECTORY? ? ? :將文本文件file.acl中的內(nèi)容作為MODE批量設(shè)置指定文件和目錄的ACL權(quán)限(一行一個(gè)MODE)
? setfacl -m mask::rx FILE|DIRECTORY? ? ? :設(shè)置指定文件或目錄的mask值,也可使用chmod g=rx FILE|DIRECTORY
? ? ? setfacl -Rm g:sales:rwX DIRECTORY? ? ? :給sales組對(duì)于指定目錄的ACL權(quán)限遞歸設(shè)置為rwX
? ? ? ? ? ? 注:getfacl結(jié)果表現(xiàn)為default,通過(guò)ACL賦予目錄默認(rèn)x權(quán)限,目錄內(nèi)新建的文件不會(huì)繼承x權(quán)限
? ? 刪除與清空:
? ? ? setfacl -x u:wang FILE|DIRECTORY? ? ? ? :刪除wang用戶(hù)對(duì)于指定文件或目錄的ACL權(quán)限
? ? ? setfacl -k DIRECTORY? ? ? ? ? ? ? ? ? ? :刪除默認(rèn)ACL權(quán)限(相對(duì)于setfacl -m d:u:wang:rx DIRECTORY)
? setfacl -X file.acl FILE|DIRECTORY? ? ? :將文本文件file.acl中的內(nèi)容作為MODE批量刪除指定文件和目錄的ACL權(quán)限
? ? ? setfacl –b FILE|DIRECTORY? ? ? ? ? ? ? :清除指定文件和目錄的所有ACL權(quán)限
? ? ? setfacl -R -b DIRECTORY? ? ? ? ? ? ? ? :遞歸清除指定目錄的所有ACL權(quán)限
? ? 覆蓋用法:
? setfacl --set MODE FILE|DIRECTORY? ? ? :把原有的ACL和普通權(quán)限都刪除,用新的替代
? ? ? ? ? ? 注:MODE必須要包含ugo普通權(quán)限u::rw,g::rw,o::r,u:wang:rw,不能像-m一樣只添加ACL就可以
? setfacl --set-file=file.acl FILE|DIR? ? :參照f(shuō)ile.acl中的內(nèi)容覆蓋設(shè)置指定文件和目錄的權(quán)限,file.acl格式為getfacl命令的結(jié)果
? ? ? ? ? ? 注:包括屬主,屬組,other的權(quán)限,即getfacl除#開(kāi)關(guān)外的所有信息,不變更屬主屬組
? ? ? ? ? ? ? ? 一般用法:getfacl FILE1 | setfacl --set-file=- FILE2? :復(fù)制FILE1的所有所有權(quán)限給FILE2
? ? ? ?備份與恢復(fù):
? getfacl -R DIRECTORY > acl.txt? ? ? ? ? :遞歸查看指定目錄及其下文件的所有權(quán)限,輸出重寫(xiě)向至文件acl.txt(備份)
? setfacl --restore acl.txt? ? ? ? ? ? ? :還原acl.txt文件內(nèi)容中指明的所有的文件的所有權(quán)限
? ? ? ? ? ? ? ? 注:備份與還原權(quán)限時(shí)須注意路徑問(wèn)題,操作都應(yīng)該在目標(biāo)所在的目錄上進(jìn)行
? ? 主要的文件操作命令cp和mv都支持ACL,只是cp命令需要加上-p或-a選項(xiàng)
? ? 但是tar(打包)等常見(jiàn)的備份工具不會(huì)保留目錄和文件的ACL信息
? ACL依賴(lài)于文件系統(tǒng):CentOS7 創(chuàng)建的xfs和ext4文件系統(tǒng)默認(rèn)具有ACL功能
? ?CentOS7 之前版本,安裝操作系統(tǒng)時(shí)創(chuàng)建的分區(qū)具有ACL功能,但默認(rèn)手工創(chuàng)建的ext4文件系統(tǒng)無(wú)ACL功能,需手動(dòng)增加
? tune2fs -l /dev/sda1 :查看指定分區(qū)是否有ACL功能 “user_xattr acl”(該命令只針對(duì)ext系列,xfs無(wú)效)
? 給分區(qū)添加ACL功能:
? ? ? tune2fs –o acl /dev/sdb1? ? ? ? ? :僅適用于ext系列,xfs不支持
? ? ? mount –o acl /dev/sdb1 /mnt/test? :重新掛載分區(qū)并增加ACL功能(可用設(shè)備名或掛載點(diǎn))
8、創(chuàng)建用戶(hù)gentoo,附加組為bin和root,默認(rèn)shell為/bin/csh,注釋信息為?"Gentoo?Distribution"
? ?? useradd -G bin,root -s /bin/csh -c "Gentoo Distribution" gentoo