解读Linux文件权限的设置方法
Windows系统其实和Linux系统有相似的地方,Windows系统文🗼件【jiàn】、目录的➕属性有🚠只读🤸、隐藏【yǐn cáng】,而【ér】🐺Linux也一样【yě yī yàng】🛒。Linux中【zhōng】🎇,每一个文件【jiàn】都🍥具有特定的属🔨性。主要包括文件【kuò wén jiàn】类型和【lèi xíng hé】文件权【wén jiàn quán】限两个方面【fāng miàn】。可以分🔡为5种不同的类型:普通文件【jiàn】、目录文件【jiàn】、链接文⚡件【jiàn】、设备文🙏件和管【jiàn hé guǎn】道文件【jiàn】。
所谓的文件权🏥限,是指对文件的🥫访问【wèn】权限,包括对【bāo kuò duì】文件的🥫读【dú】、写🕶、删除【shān chú】⌚、执行。Linux 是一个多用户操作系统【tǒng】,它允许【tā yǔn xǔ】多个用户同时【hù tóng shí】登录和工作。因此【yīn cǐ】 Linux 将一个文件或【wén jiàn huò】目录与【mù lù yǔ】🌰一个用户或组联系起🕌来🚲。访问【wèn】控🏣制【zhì】🎐列表(ACL:Access Control List)为计算机提供【jī tí gòng】更好的访问【wèn】控🏣制【zhì】🎐,它的作用是限【yòng shì xiàn】👲制【zhì】🎐包括root用户在【yòng hù zài】内的所有用户🔛对文件、资源或🎐者套接字的访👶问【wèn】。下面就来教大【lái jiāo dà】🗄家简单【jiā jiǎn dān】的设置🦓方法【fāng fǎ】。
步骤1 检查系统核心
首先检查你的🙏Linux系统的【xì tǒng de】核心是【hé xīn shì】否有支【fǒu yǒu zhī】持【chí】ACL的功能【de gōng néng】🏃。因为Linux系统并不是每一个版本的核⚽心都有❤支持【zhī chí】ACL的功能【de gōng néng】🏃,而最简单的方法就是检查系【jiǎn chá xì】🧕统目前🏖的核心能否支🐇持【chí】:
[root@mail /]# cat /boot/config-kernel-version | grep -i ext3
CONFIG_EXT3_FS=m
CONFIG_EXT3_IDEX=y
CONFIG_EXT3_FS_XATTR_SHARING=y
CONFIG_EXT3_FS_XATTR_USER=y
CONFIG_EXT3_FS_XATTR_TRUSTED=y
CONFIG_EXT3_FS_ACL=y
此时如🎽果能看【guǒ néng kàn】⚡到上面的几项【de jǐ xiàng】则表示已经编【yǐ jīng biān】译到核🎨心中【xīn zhōng】,ext3文件系🧙统已支持😔ACL功能【gōng néng】,这些功能【gōng néng】在编译核心选项中【xuǎn xiàng zhōng】都可以🐛找到🗻。如果编【rú guǒ biān】译时找不到,可以到ACL的官方网站来安装🍛Kernel(acl.bestbits.at/)。
步骤2 挂载分区
你可以用【yòng】📼下列的【xià liè de】方式挂载分区【zǎi fèn qū】并启🎂用【yòng】📼ACL:
#mount -t ext3 -o acl /dev/sda1 /fs1
你也可📵以直接写在/etc/fstab文件中【wén jiàn zhōng】,这样就可以在🆚开机后【kāi jī hòu】支持🖋ACL功能【gōng néng】:
#vi /etc/fstab
步骤3 设置ACL权限
ACL常常针对个别用户来进行设🔲置【zhì】,下面是多个不【duō gè bú】🤠同的例【tóng de lì】⬅子:
例如需要创建【yào chuàng jiàn】test1、test2、test3三个用【sān gè yòng】📇户【hù】🦔,可以先用📇root身份登录系统,然后执行以下🦓命令分别创建【bié chuàng jiàn】🙍三个用【sān gè yòng】📇户名和【hù míng hé】🐏密码:
[root@mail root]#adduser test1
[root@mail root]#adduser test2
[root@mail root]#adduser test3
[root@mail root]#passwd test1
[root@mail root]#passwd test2
[root@mail root]#passwd test3
然后mount一个【yī gè】🚺ext3文件到【wén jiàn dào】目录🔃/fs1:
[root@mail root]#mount -t ext3 -o acl /dev/sda1 /fs1
再将【zài jiāng】🃏test1 建立的文件设置读写【zhì dú xiě】的权限给😈test2 :
[root@mail root]#chmod -R 777 /fs1
让所有的用户都能增加文件到目录的权限:
先用test1登录系统,执行命令:
[test1@mail test1]# cd /fs1
[test1@mail fs1]# echo "Create by test1" > test1.txt
[test1@mail fs1]# chmod go-r test1.txt
[test1@mail fs1]# ll test1.txt
-rw------- 1 test1 test1 17 Jul 14 22:11 test1.txt
而如下操作则可以让🍕除了test1有读写的权限【de quán xiàn】💄外其他💧人没有【rén méi yǒu】读写test1.txt的权限【de quán xiàn】💄(root除外🎲),先用test2 登录系统后执【tǒng hòu zhí】🖕行以下命令【mìng lìng】:
[test2@mail test2]# cd /fs1
[test2@mail fs1]# cat test1.txt
cat : test1.txt Permission denied
接着用【jiē zhe yòng】test1登录系【dēng lù xì】📈统,执行如下命令🛰:
[test1@mail fs1]# setfacl -m u:test2:rw test1.txt
这样就【zhè yàng jiù】🤷修改权限【xiàn】允许test2 有这个文件的读写权【dú xiě quán】限【xiàn】。再看一【zài kàn yī】下它的⏸文件属🌚性的变化🧔:
[test1@mail fs1]# ll
-rw-rw-r--+ 1 test1 test1 10 Feb 16 13:52 test1.txt
会看到😺后面多了一个“+”,表示这个文件使用ACL的属性设【shè】😆置【zhì】🦍,再用命【zài yòng mìng】🐼令getfacl来看【lái kàn】📱ACL的文件【de wén jiàn】属性设【shè】😆置【zhì】🦍:
[test1@mail fs1]# getfacl test1.txt
# file: test1.txt
# owner: test1
# group: test1
user::rw-
user:test2:rw-
group::rw-
mask::rw-
other::r--
可以看到【dào】 test2 有权限📝读写这🔈个文件【gè wén jiàn】。
我们再【wǒ men zài】🈳用test2登录系统执行以下命【yǐ xià mìng】令🏼,看看发💛生了什【shēng le shí】么?
[test2@mail test2]# cd /fs1
[test2@mail fs1]# cat test1.txt
Create by test1
原来【yuán lái】👚test2可以读取【qǔ】test1.txt文件了📕。
[test2@mail fs1]# echo "Modify by test2" >> test1.txt
[test2@mail fs1]# cat test1.txt
Create by test1
Modify by test2
现在test2也可以🎏修改【xiū gǎi】test1.txt文件了【wén jiàn le】🥃。
接着用test3 登录系统:
[test3@mail test3]# cd /fs1
[test3@mail fs1]# cat test1.txt
cat : test1.txt Permission denied
嘿嘿🎻,除了【chú le】🎈test1、test2外没有其他用【qí tā yòng】户有读写【xiě】test1.txt的权限☕(root 除外)。
关键词:解读【jiě dú】,Linux文件,权限【quán xiàn】💥,设置方法👮
阅读本文后您有什么感想? 已有 人给出评价!
- 1
- 1
- 1
- 1
- 1
- 1