零基础Linux|第五课_linux的文件权限详解原创 |
![]() 一、用户、用户组和其他人 🧓🎒📥💀🤌 我们知道linux是一个多用户系统,所以可以实现多人同时不同地地登录一个linux系统,而每个人有不同的权限,这些权限规定了每个人能够做什么,不能够做什么。就好比一个市政厅,虽然可以有很多人同时在里面办公,但是不同层级的人能够做的事是不一样的。 正因为多用户这个特性,所以更要严加管理每个用户,以防止互相干扰,甚至越权行为。因为万一有居心叵测的用户,一旦他们拥有了高度权限,岂不是对所有用户都是一种威胁么。所以,linux系统中的每个用户都有自己独立的账号,而且其账号受着权限的制约。 这一课极为重要! 👂🌦🦞♀🪰 在讲文件权限之前我们要明白用户和用户组的概念。用户就是账号(user),用户组就是角色(group)。我们可以这样理解:每一个账号就是是一个用户,那么用户组呢就是一个或者多个用户的集合,用户组里面的所有用户都会受到“组规”的约束。我们把除了用户和用户组之外的所有人都叫做其他人(other)。此外还有一个凌驾于他们的人——root! ![]() 二、文件权限”rwx“ 👂💈🥚☪🦟 在Linux系统里,每个文件和目录都有一列权限属性。这一列访问权限指明了谁有读的权利,谁有修改的权利,谁有运行的权利。我们其实早就见过访问权限了,是的,就在我们运行“ls -l”命令的时候,显示的每个文件或目录的第一列信息就是访问权限。 先输入“cd“先进到自己的家目录,然后”touch new.txt“,再”ll“看一下。 ![]() ✌🚈🥑🈚 我们看到在我们新建的”new.txt“文件前面有这样的几个字母——”- rw-rw-r--“,其中“r”代表这个文件是可读的,“w”代表这个文件是可写的,“x”代表这个文件是可执行的。在目录前面还会有字母“d”,在链接文件前面还会有字母“l”。 那为什么我们看到一排过来有多个“r”、“w”呢?那是因为文件的权限是按照用户来划分的,最前面的权限是用户自己的,中间的权限是用户组的,最后面的权限是其他人的,刚好和前面讲的用户、用户组和其他人挂上钩。那么权限可以修改吗? 当然可以!需要用到“chmod”这个命令,要说明一点,chmod命令不需要是root用户才能运行。只要你是此文件的所有者,你就可以用chmod来修改文件的访问权限。最常见的用法是数字形式的,我们需要进行一丁丁的加法减法运算。“r”、“w”、“x”各自对应下面的数字:👦💎📬😒🦷 ![]() 所以我们要给文件加权限的时候,就要用到加法,反之你们懂的。来实际操作一下:“chmod 644 new.txt”,其中644代表了用户可以进行读和写操作,用户组可以进行读操作、其他人可以进行读操作,命令后面的“new.txt”就是你需要修改权限的文件名(修改目录也是一样)! ![]() 👵🧢🔒🤡✍ 除了用数字,我们也可以用另一种方式来分配文件的访问权限:用字母。原理是类似的,但是有时用字母的方式更加精巧,因为不需要一次性把三组权限都写出来。我们需要知道不同的字母代表什么: u:user 的缩写,表示用 户。 g:group的缩写,表示用户组。 o:other的缩写,表示其他人。 ✍🚈🥚➡🐺 当然了,和这些字母配合的还有几个符号: +:加号,表示添加权限。 -:减号,表示去除权限。🧑🍳💎✒😊🤞 =:等号,表示分配权限。 接下来,我们举例说明如何使用: chmod u+rx new.txt 文件new.txt的所有者增加读和运行的权限。 🤌🎠🍞♾🦕 chmod g+w new.txt 文件new.txt的群组其他用户增加读的权限。 chmod o-r new.txt 文件new.txt的其他用户移除读的权限。 chmod g+w o-w new.txt 文件fnew.txt的群组其他用户增加读的权限,其他用户移除读的权限。 chmod go-r new.txt 文件new.txt的群组其他用户和其他用户均移除读的权限。 chmod +x new.txt 文件new.txt的所有用户增加运行的权限。 👊🌦🍊®🦌 假如我要修改一个目录里面的所有文件的权限都为744改如何是好呢?一个一个去改?当然不用!只要在chmod后加一个参数“R”就行啦~例如“chmod -R 744 /abc”,这个命令的意思是把目录abc里面的所有文件的权限都改为744(包括目录)。那么,问题来了:“如果目录abc里面还有很多个目录改咋办?他们的权限岂不也变成了744?” 告诉你一个小诀窍:“我们可以借助“find”查找命令先把所有的文件权限都修改成你要修改的文件的权限”。使用如下: 👨⚕️🧥🖲😷💪 1.“chmod -R 644 abc” ,先把abc里面的所有文件权限变成644, 2.“find abc -type d -exec chmod 755 {} \;”再把abc里面的所有目录权限变成755。 ![]() 如果一个文件的权限是“满级”的话,他的前面会变成“rwxrwxrwx”,结合一下上面讲的内容,你能说出这个文件的权限含义吗?
帖子热度 1.3万 ℃
|
|
|
|
|