我要拼,装上假牙也要拼! 收藏本站
登陆 / 注册 搜索

阅读: 9.1K   回复: 8

[# Linux] 零基础Linux|第五课_linux的文件权限详解

小执念 古黑浩劫论坛大牛 2016-2-3 23:01 |显示全部楼层

可遇不可求的事:故乡的云,上古的玉,随手的诗,十九岁的你。

管理员
        一、用户、用户组和其他人
        我们知道linux是一个多用户系统,所以可以实现多人同时不同地地登录一个linux系统,而每个人有不同的权限,这些权限规定了每个人能够做什么,不能够做什么。就好比一个市政厅,虽然可以有很多人同时在里面办公,但是不同层级的人能够做的事是不一样的。

        正因为多用户这个特性,所以更要严加管理每个用户,以防止互相干扰,甚至越权行为。因为万一有居心叵测的用户,一旦他们拥有了高度权限,岂不是对所有用户都是一种威胁么。所以,linux系统中的每个用户都有自己独立的账号,而且其账号受着权限的制约。

  这一课极为重要!
        
        在讲文件权限之前我们要明白用户和用户组的概念。用户就是账号(user),用户组就是角色(group)。我们可以这样理解:每一个账号就是是一个用户,那么用户组呢就是一个或者多个用户的集合,用户组里面的所有用户都会受到“组规”的约束。我们把除了用户和用户组之外的所有人都叫做其他人(other)。此外还有一个凌驾于他们的人——root!

零基础Linux|第五课_linux的文件权限详解 113439gmlfavmzbul9ual2.png

        二、文件权限”rwx“
    在Linux系统里,每个文件和目录都有一列权限属性。这一列访问权限指明了谁有读的权利,谁有修改的权利,谁有运行的权利。我们其实早就见过访问权限了,是的,就在我们运行“ls -l”命令的时候,显示的每个文件或目录的第一列信息就是访问权限。
        
        先输入“cd“先进到自己的家目录,然后”touch new.txt“,再”ll“看一下。
        
零基础Linux|第五课_linux的文件权限详解 QQ截图20160203210227.png

        我们看到在我们新建的”new.txt“文件前面有这样的几个字母——”- rw-rw-r--“,其中“r”代表这个文件是可读的,“w”代表这个文件是可写的,“x”代表这个文件是可执行的。在目录前面还会有字母“d”,在链接文件前面还会有字母“l”。

        那为什么我们看到一排过来有多个“r”、“w”呢?那是因为文件的权限是按照用户来划分的,最前面的权限是用户自己的中间的权限是用户组的最后面的权限是其他人的,刚好和前面讲的用户、用户组和其他人挂上钩。那么权限可以修改吗?

        当然可以!需要用到“chmod”这个命令,要说明一点,chmod命令不需要是root用户才能运行。只要你是此文件的所有者,你就可以用chmod来修改文件的访问权限。最常见的用法是数字形式的,我们需要进行一丁丁的加法减法运算。“r”、“w”、“x”各自对应下面的数字:

零基础Linux|第五课_linux的文件权限详解 QQ截图20160203214841.png

        所以我们要给文件加权限的时候,就要用到加法,反之你们懂的。来实际操作一下:“chmod 644 new.txt”,其中644代表了用户可以进行读和写操作,用户组可以进行读操作、其他人可以进行读操作,命令后面的“new.txt”就是你需要修改权限的文件名(修改目录也是一样)!

零基础Linux|第五课_linux的文件权限详解 QQ截图20160203220222.png

        除了用数字,我们也可以用另一种方式来分配文件的访问权限:用字母。原理是类似的,但是有时用字母的方式更加精巧,因为不需要一次性把三组权限都写出来。我们需要知道不同的字母代表什么:

                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。

零基础Linux|第五课_linux的文件权限详解 QQ截图20160203225219.png
        
        如果一个文件的权限是“满级”的话,他的前面会变成“rwxrwxrwx”,结合一下上面讲的内容,你能说出这个文件的权限含义吗?


小执念 古黑浩劫论坛大牛 2016-2-3 23:02 |显示全部楼层

可遇不可求的事:故乡的云,上古的玉,随手的诗,十九岁的你。

管理员
21:30写到现在终于完了!容我舒口气~
空谷幽兰 仗剑天涯 2016-2-4 09:51 来自手机 |显示全部楼层

从前车马很慢,书信很远,一生只够爱一个人,但是可以纳很多妾啊!

精华达人 主题破百 以坛为家 论坛元老
辛苦了!
灵芝sama 「初入古黑」 2016-12-13 23:28 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

可执行的条件是在可写的基础之上的???
灵芝sama 「初入古黑」 2016-12-13 23:30 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

本身都应该变为755,但是文件没有可写权限,所以即使加了可执行但是因为没有写的权力而无法执行?
灵芝sama 「初入古黑」 2016-12-13 23:31 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

靠==怎么这样,扣我币==
巴黎环抱的花海 「龙战于野」 2017-9-22 14:13 来自手机 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

#j328:支持,赞一个
故事,还未完、 「锋芒初露」 2018-4-30 21:45 来自手机 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

回个帖子,下班咯~
初晓微芒 「出类拔萃」 2018-5-7 15:21 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

我不在江湖,但江湖中有我的传说;
您需要登录后才可以回帖 登录 | 免费注册  

本版积分规则

关于本站|大事记|小黑屋|古黑论 网站统计

GMT+8, 2020-12-1 17:36 , Processed in 0.039789 second(s), 23 queries , Redis On.

© 2015-2020 GuHei.Net

Powered by Discuz! X3.4

快速回复 返回列表