linux 文件夹换所属用户,Linux中账号管理之权限管理(下)
linux中的賬號(hào)管理我們?cè)谇懊鎯蓮堃呀?jīng)介紹了一些用戶(hù)和組的相關(guān)概念,常用的配置文件,命令的使用。現(xiàn)在我們來(lái)看看賬號(hào)管理中最傲嬌的部分就是我們的權(quán)限管理。
一、簡(jiǎn)單介紹權(quán)限的概念
以install.log這個(gè)文件為例,查看install.log的元數(shù)據(jù),從下圖可以看出,每個(gè)文件或者目錄都有它的所屬的主和所屬組,最左邊顯示不僅有它所屬類(lèi)型,還有它的讀取寫(xiě)入執(zhí)行的權(quán)限,為什么目錄或者文件要設(shè)置這些權(quán)限呢,這肯定是出于安全的考慮。如果linux系統(tǒng)中不設(shè)置這些權(quán)限,就容易被攻擊。
文件的權(quán)限主要針對(duì)三類(lèi)對(duì)象進(jìn)行定義:
owner:屬主,u
group:屬組,g
other:其他,o
每個(gè)文件針對(duì)每類(lèi)訪(fǎng)問(wèn)者都定義了三種權(quán)限:
r: Readable,讀
w: Writable,寫(xiě)
x: eXcutable,執(zhí)行
二、三種權(quán)限對(duì)文件和目錄的影響
對(duì)文件的影響:
r: 可使用文件查看類(lèi)工具獲取其內(nèi)容
w: 可修改其內(nèi)容,不能刪除文件本身
x: 可以把此文件提請(qǐng)內(nèi)核啟動(dòng)為一個(gè)進(jìn)程(針對(duì)二進(jìn)制程序或腳本,普通文件不需要添加此權(quán)限)
X:也是執(zhí)行的權(quán)限,但是在文件中有兩種情況出現(xiàn)
a)?文件的權(quán)限中有執(zhí)行權(quán)限,全部添加執(zhí)行權(quán)限
b)?文件的權(quán)限中沒(méi)有執(zhí)行權(quán)限,就不加執(zhí)行權(quán)限
例如:
雖然/bin/cat沒(méi)有執(zhí)行權(quán)限,但是有讀取的權(quán)限,可以使用其他查看工具來(lái)查看,此文件為二進(jìn)制文件
查看/bin/cat文件,可以看出這個(gè)文件對(duì)普通權(quán)限只有讀的操作
切換到clq這個(gè)用戶(hù)
用cat這個(gè)工具不能查看文件內(nèi)容,因?yàn)闆](méi)有寫(xiě)入執(zhí)行的權(quán)限,使用echo重定向輸入會(huì)報(bào)錯(cuò)
cat命令為二進(jìn)制文件,使用其他工具可以查看cat文件
對(duì)目錄的影響:
r: 可以使用ls查看此目錄中文件列表(可以查看目錄內(nèi)文件列表,但不能訪(fǎng)問(wèn)文件,不能cd,也不能查看文件的元數(shù)據(jù))
w: 可在此目錄中創(chuàng)建文件,也可刪除此目錄中的文件但是要配合執(zhí)行權(quán)限
x: 可以使用ls -l查看此目錄中文件列表,可以cd進(jìn)入此目錄
X:加上此權(quán)限相對(duì)與將這三類(lèi)對(duì)象全部加上執(zhí)行的權(quán)限了
例如:
1、因?yàn)閠est相對(duì)于f1這個(gè)文件他只是個(gè)other組,other組的權(quán)限只有讀取,沒(méi)有寫(xiě)入執(zhí)行等操作
2、當(dāng)我把f1的文件屬主改為test用戶(hù)的時(shí)候,test擁有rw權(quán)限
3、文件對(duì)用戶(hù)只有執(zhí)行操作,用戶(hù)可以執(zhí)行這條命令,但是不能讀取
三、修改文件的屬主和屬組chown,chgrp
chown命令:
chown命令改變某個(gè)文件或目錄的所有者和所屬的組,該命令可以向某個(gè)用戶(hù)授權(quán),使該用戶(hù)變成指定文件的所有者或者改變文件所屬的組。用戶(hù)可以是用戶(hù)或者是用戶(hù)id,用戶(hù)組可以是組名或組id。文件名可以使由空格分開(kāi)的文件列表,在文件名中可以包含通配符.
格式:chown[OPTION]… [OWNER][:[GROUP]] FILE…
用法:
OWNER ? ????? 改變用戶(hù)的屬主
OWNER:GROUP ? 改變用戶(hù)的屬主屬組
:GROUP? ? ? ? 改變用戶(hù)的屬組
命令中的冒號(hào)可用.替換;
選項(xiàng):
-c或--changes:效果類(lèi)似“-v”參數(shù),但僅回報(bào)更改的部分;
-f或--quite或--silent:不顯示錯(cuò)誤信息;
-h或--no-dereference:只對(duì)符號(hào)連接的文件作修改,而不更改其他任何相關(guān)文件;
-R或--recursive:遞歸處理,將指定目錄下的所有文件及子目錄一并處理;
-v或--version:顯示指令執(zhí)行過(guò)程;
--dereference:效果和“-h”參數(shù)相同;
--help:在線(xiàn)幫助;
--version:顯示版本信息。
--reference=:把指定文件或目錄的擁有者與所屬群組全部設(shè)成和參考文件或目錄的擁有者與所屬群組相同;
chgrp修改屬組的命令:
格式:chgrp[OPTION]… GROUP FILE…
常用選項(xiàng):
chgrp[OPTION]...?--reference=RFILE?FILE...
-R?遞歸
四、修改文件的屬
chmod命令用來(lái)變更文件或目錄的權(quán)限。在UNIX系統(tǒng)家族里,文件或目錄權(quán)限的控制分別以讀取、寫(xiě)入、執(zhí)行3種一般權(quán)限來(lái)區(qū)分,另有3種特殊權(quán)限可供運(yùn)用。用戶(hù)可以使用chmod指令去變更文件與目錄的權(quán)限,設(shè)置方式采用文字或數(shù)字代號(hào)皆可。符號(hào)連接的權(quán)限無(wú)法變更,如果用戶(hù)對(duì)符號(hào)連接修改權(quán)限,其改變會(huì)作用在被連接的原始文件
權(quán)限范圍的表示法如下:
u?User,即文件或目錄的擁有者;
g?Group,即文件或目錄的所屬群組;
o?Other,除了文件或目錄擁有者或所屬群組之外,其他用戶(hù)皆屬于這個(gè)范圍;
a?All,即全部的用戶(hù),包含擁有者,所屬群組以及其他用戶(hù);
r?讀取權(quán)限,數(shù)字代號(hào)為????????“4”;
w?寫(xiě)入權(quán)限,數(shù)字代號(hào)為????????“2”;
x?執(zhí)行或切換權(quán)限,數(shù)字代號(hào)為??“1”;
-?不具任何權(quán)限,數(shù)字代號(hào)為????“0”;
s?特殊功能說(shuō)明:變更文件或目錄的權(quán)限
例如:
可以直接用數(shù)字表示權(quán)限,用法比較簡(jiǎn)單,不加以舉例
rw-r-----:640
rwxr-xr-x:?755
1、給f1文件的主加上執(zhí)行權(quán)限,組和其他用戶(hù)加上寫(xiě)權(quán)限
2、取消這些權(quán)限使用減號(hào)
3、u=空格,把所有權(quán)限都取消了
五、新建文件和目錄的默認(rèn)權(quán)限
umask值可以用來(lái)保留在創(chuàng)建文件權(quán)限
新建FILE權(quán)限: 666-umask
如果所得結(jié)果某位存在執(zhí)行(奇數(shù))權(quán)限,則將其權(quán)限+1
新建DIR權(quán)限: 777-umask
非特權(quán)用戶(hù)umask是002
root的umask是022
用法:
umask:?查看
umask#:?設(shè)定
umask002
umask–S?模式方式顯示
umask–p?輸出可被調(diào)用
全局設(shè)置:/etc/bashrc用戶(hù)設(shè)置:~/.bashrc
六、Linux文件上的特殊權(quán)限
三種特殊權(quán)限為:SUID, SGID, Sticky
三種常用權(quán)限:r, w, x user, group, other
使用這三種權(quán)限的前提:進(jìn)程有屬主和屬組;文件有屬主和屬組
(1) 任何一個(gè)可執(zhí)行程序文件能不能啟動(dòng)為進(jìn)程:取決發(fā)起者對(duì)程序文件是否擁有執(zhí)行權(quán)限
(2) 啟動(dòng)為進(jìn)程之后,其進(jìn)程的屬主為發(fā)起者;進(jìn)程的屬組為發(fā)起者所屬的組
例如:
cat命令查看/etc/shadow是由wang這個(gè)發(fā)起者決定的,不是root這個(gè)所有者決定,wang用戶(hù)繼承的是other的權(quán)限
(3) 進(jìn)程訪(fǎng)問(wèn)文件時(shí)的權(quán)限,取決于進(jìn)程的發(fā)起者
(a) 進(jìn)程的發(fā)起者,同文件的屬主:則應(yīng)用文件屬主權(quán)限
(b) 進(jìn)程的發(fā)起者,屬于文件屬組;則應(yīng)用文件屬組權(quán)限
(c) 應(yīng)用文件“其它”權(quán)限
可執(zhí)行文件上行SUID權(quán)限
為什么/etc/shadow文件設(shè)置嚴(yán)格,但是普通用戶(hù)還是可以修改密碼呢,這是因?yàn)樵趐asswd上面設(shè)置了一個(gè)SUID權(quán)限;SUID:當(dāng)用戶(hù)去運(yùn)行passwd的時(shí)候,他將繼承該程序所有者root的權(quán)限
任何一個(gè)可執(zhí)行程序文件能不能啟動(dòng)為進(jìn)程:取決發(fā)起者對(duì)程序文件是否擁有執(zhí)行權(quán)限
啟動(dòng)為進(jìn)程之后,其進(jìn)程的屬主為原程序文件的屬主
SUID只對(duì)二進(jìn)制可執(zhí)行程序有效
SUID設(shè)置在目錄上無(wú)意義
權(quán)限設(shè)定:
chmod? u+s? FILE…
chmod? u-s ?FILE…
GUID權(quán)限
對(duì)可執(zhí)行文件而言:
任何一個(gè)可執(zhí)行程序文件能不能啟動(dòng)為進(jìn)程:取決發(fā)起者對(duì)程序文件是否擁有執(zhí)行權(quán)限
啟動(dòng)為進(jìn)程之后,其進(jìn)程的屬主為原程序文件的屬組
權(quán)限設(shè)定:
chmod? g+s? FILE…
chmod? g-s ?FILE…
對(duì)目錄而言:
默認(rèn)情況下,用戶(hù)創(chuàng)建文件時(shí),其屬組為此用戶(hù)所屬的主組
一旦某目錄被設(shè)定了SGID,則對(duì)此目錄有寫(xiě)權(quán)限的用戶(hù)在此目錄中創(chuàng)建的文件所屬的組為此目錄的屬組
通常用于創(chuàng)建一個(gè)協(xié)作目錄
權(quán)限設(shè)定:
chmodg+sDIR…
chmodg-s DIR…
Sticky位
具有寫(xiě)權(quán)限的目錄通常用戶(hù)可以刪除該目錄中的任何文件,無(wú)論該文件的權(quán)限或擁有權(quán)
在目錄設(shè)置Sticky 位,只有文件的所有者或root可以刪除該文件
sticky 設(shè)置在文件上無(wú)意義
普通用戶(hù)wang不僅可以對(duì)自己的文件進(jìn)行刪除操作,對(duì)其他用戶(hù)的文件也可以刪除,這樣會(huì)帶來(lái)安全隱患
現(xiàn)在在目錄那里加上粘滯位之后,就不能刪除其他用戶(hù)的權(quán)限了
權(quán)限設(shè)定:
chmodo+tDIR…
chmodo-t DIR…
例如:
ls-ld/tmpdrwxrwxrwt12rootroot4096Nov215:44/tmp
權(quán)限位映射
SUID: user,占據(jù)屬主的執(zhí)行權(quán)限位
s: 屬主擁有x權(quán)限
S:屬主沒(méi)有x權(quá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ù)字表示:u:4;g:2;o:1
chmod? 4777 /tmp/a.txt (繼承所有者權(quán)限)
chmod? 2777 /tmp/a.txt (繼承所屬組權(quán)限)
七、chattr,lasttr設(shè)置文件特定屬性
chattr +i 不能刪除,改名,更改
chattr?+i?/etc/fstab
然后試一下rm、mv、rename等命令操作于該文件,都是得到Operation not permitted的結(jié)果
chattr +a 只能增加
chattr?+a?/test/yuan
chattr +A,訪(fǎng)問(wèn)時(shí)間的屬性被鎖定不做修改,解鎖:-A
lsattr 顯示特定屬性
用于查看文件的第二擴(kuò)展文件系統(tǒng)屬性
顯示一個(gè)i,說(shuō)明被鎖定了,把i去掉就可以執(zhí)行一些操作了
八、訪(fǎng)問(wèn)控制列表
概念:
ACL:Access Control List,實(shí)現(xiàn)靈活的權(quán)限管理
除了文件的所有者,所屬組和其它人,可以對(duì)更多的用戶(hù)設(shè)置權(quán)限
CentOS7.0默認(rèn)創(chuàng)建的xfs和ext4文件系統(tǒng)有ACL功能。
CentOS7.X之前版本,默認(rèn)手工創(chuàng)建的ext4文件系統(tǒng)無(wú)ACL功能。需手動(dòng)增加:
tune2fs –o acl/dev/sdb1
mount –o acl/dev/sdb1 /mnt
ACL生效順序:所有者,自定義用戶(hù),自定義組,其他人
為多用戶(hù)或者組的文件和目錄賦予訪(fǎng)問(wèn)權(quán)限r(nóng)wx
選項(xiàng):
mount -o acl /directory????臨時(shí)開(kāi)啟分區(qū)acl權(quán)限
getfacl file |directory????查看acl權(quán)限
setfacl -m u:wang:rwx file|directory 這個(gè)目錄對(duì)wang用戶(hù)設(shè)置了rwx權(quán)限
setfacl -Rm g:sales:rwX directory ??setfacl-R:遞歸設(shè)定acl權(quán)限
遞歸權(quán)限和默認(rèn)權(quán)限都是針對(duì)目錄而言的,不能給文件設(shè)置。
setfacl -M file.acl file|directory
如果經(jīng)常要對(duì)某些用戶(hù)設(shè)置一樣的權(quán)限就可以使用-M
例如;
vim acl.txt
如果另外一個(gè)文件對(duì)這些用戶(hù)也做同樣的設(shè)置
setfacl -m g:salesgroup:rw file| directory ?對(duì)組設(shè)置權(quán)限
setfacl -x u:wang file |directory 刪除設(shè)置的acl權(quán)限
例如:
刪除wangcai對(duì)f1 acl設(shè)置的權(quán)限
setfacl -X file.acl directory ? ?對(duì)某些用戶(hù)做刪除
例如:
vim acl12.tt
setfacl -m d:u:wang:rx directory ? 設(shè)定默認(rèn)acl權(quán)限
對(duì)新建文件默認(rèn)不能帶x權(quán)限,目錄是可以加的
setfacl-k dir?????刪除默認(rèn)ACL權(quán)限
setfacl-b file1清除所有ACL權(quán)限
getfacl file1 | setfacl–set-file=-file2 復(fù)制file1的acl權(quán)限給file2
最大有效權(quán)限與刪除
mask只影響除所有者和other的之外的人和組的最大權(quán)限
mask需要與用戶(hù)的權(quán)限進(jìn)行邏輯與運(yùn)算后,才能變成有限的權(quán)限(Effective Permission)
用戶(hù)或組的設(shè)置必須存在于mask權(quán)限設(shè)定范圍內(nèi)才會(huì)生效。setfacl-m mask::rxfile
?–set選項(xiàng)會(huì)把原有的ACL項(xiàng)都刪除,用新的替代,需要注意的是一定要包含UGO的設(shè)置,不能象-m一樣只是添加ACL就可以.如:
?setfacl –set u::rw,u:wang:rw,g::r,o::-file1
恢復(fù)和備份acl
主要的文件操作命令cp和mv都支持ACL,只是cp命令需要加上-p 參數(shù)。但是tar等常見(jiàn)的備份工具是不會(huì)保留目錄和文件的ACL信息
#getfacl -R /tmp/dir1 > acl.txt
#setfacl -R -b /tmp/dir1
#setfacl -R –set-file=acl.txt /tmp/dir1
#getfacl -R /tmp/dir1
九、練習(xí)
1、在/data/testdir里創(chuàng)建的新文件自動(dòng)屬于g1組,組g2的成員如:alice能對(duì)這些新文件有讀寫(xiě)權(quán)限,組g3的成員如:tom只能對(duì)新文件有讀權(quán)限,其它用戶(hù)(不屬于g1,g2,g3)不能訪(fǎng)問(wèn)這個(gè)文件夾
2、設(shè)置/test/f1的權(quán)限,使user1用戶(hù)不可以讀寫(xiě)執(zhí)行,g1組可以讀寫(xiě)?/test/dir的權(quán)限,使新建文件自動(dòng)具有acl權(quán)限:user1:rw,g1:—;備份/test目錄中所有文件的ACL,清除/test的所有ACL權(quán)限,并利用備份還原
原創(chuàng)文章,作者:xiaoqing,如若轉(zhuǎn)載,請(qǐng)注明出處:http://www.178linux.com/30661
總結(jié)
以上是生活随笔為你收集整理的linux 文件夹换所属用户,Linux中账号管理之权限管理(下)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php如何存到磁盘,php缓存----磁
- 下一篇: 查看linux字符集命令,关于Linux