【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

时间:2024-08-09 23:34:14

【Linux探索之旅】第二部分第五课:用户和权限,有权就任性


内容简单介绍

1、第二部分第五课:用户和权限,有权就任性

2、第二部分第六课预告:Nano,刚開始学习的人的文本编辑器


用户和权限。有权就任性

今天的标题也挺任性的啊,虽说小编是一个非常本分的人(真的吗)。起这样的标题也是情非得已。

第二部分的前几课我们解说了终端,命令行。文件和文件夹。文件操作。

都算是Linux的重要基础。

这一课我们来讲一个极为重要的内容。能够说是Linux基础中的重点:用户和权限。

我们知道Linux是一个多用户系统,所以可以实现多人同一时候不同地地登录一个Linux系统,而每一个人有不同的权限,这些权限规定了每一个人可以做什么,不可以做什么。

就好比一个市政厅。尽管可以有非常多人同一时候在里面办公。可是不同层级的人可以做的事是不一样的。

正由于多用户这个特性,所以更要严加管理每一个用户,以防止互相干扰,甚至越权行为。由于万一有居心叵測的用户。一旦他们拥有了高度权限,岂不是对全部用户都是一种威胁么。

所以,Linux系统中的每一个用户都有自己独立的账号,并且其账号受着权限的制约。

是不是认为跃跃欲试,我保证这一课会非常有意思的。并且再提一次。这一课极为重要!


sudo命令:以root身份执行命令

在我们安装Ubuntu系统的时候,到了最后几步。安装程序会让我们创建自己的username。比方。小编就创建了名为oscar的用户。

在大多数的Linux发行版中(Ubuntu是一个Linux发行版)。我们都建议刚開始学习的人创建一个有限权利的账户。小编的oscar这个用户就是有限权限的账户。

或许你会问:“等一下,有没有搞错?这个Linux系统是我安装的,我还不能想干什么就干什么了?为什么我的权利是有限的?那我还怎么任性啊?”

是的。并且这是一种安全机制。

当然了。当我们在终端中使用命令行的时候。我们随时能够说:我想要切换到什么都能够做的用户的身份。可是。默认情况下,我们是没有为所欲为的权限的。这会比較安全。

由于有些命令会对Linux系统的稳定性和安全性造成威胁。

具有有限的权限,意味着我们不能随随便便就执行比如那个“草木为之含悲,风云因而变色”的命令:rm -rf /

我们在上一课讲过,rm -rf / 这个命令会删除你的全部东西。所以江湖上人人闻之色变,除了颤抖还是颤抖。

接下来。我们先了解一下Linux中用户是怎样组织的,然后再来学习怎样变身为超级用户。

Linux下的用户组织

在Linux中,理论上说来,我们能够创建无数个用户。可是这些用户是被划分到不同的群组里面的。

有一个用户,名叫root。是一个非常特殊的用户。字大管家。号超级用户,江湖诨号“有钱任性”。由于在Linux系统中,它能够做不论什么事情。

我们用下图来演示一下Linux中的用户组织的一般可能形式:

【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

上图中的群组。能够有好多不同的。我们举了“家人”和“朋友”两个样例而已。

在我们装完Linux系统后。假如我们创建的个人用户叫做oscar,那么这时系统中仅仅有两个用户:root和oscar。

root用户是默认会创建的。由于是系统的大管家,超级用户。

oscar则是小编自己创建的用户。

我们仅仅在必要时才会切换为root身份。这一课中你将学习到的几个命令是需要root身份才干执行的。

其它时候,我们都是用有限权限的用户:oscar(当然,这是小编的情况,你的个人用户可能叫xiaoming)。

这一简单的保护措施大大地提高了Linux系统的安全性。有效防止误操作或是病毒的攻击。

由于假设你是以个人用户身份登录系统。被病毒控制了电脑,那么它也仅仅能做有限的事,不能为所欲为。

但假如你以root用户登录系统。那么劫持你的病毒就能够胡作非为了,甚至毁了你的系统。

在Windows系统中,默认是以系统大管家或管理员账户登录,叫做Administrator。这也是Windows系统较Linux系统更加easy被病毒攻击得逞的原因。

例外:Ubuntu系统是Linux系统中一个特例。它默认不同意以root用户登录系统。root用户存在。可是你不能直接登录。我们接下来会学习怎样间接登录root。Ubuntu的开发人员解释说他们考虑到对于刚開始学习的人,能登录root用户太危急。

:但事实上我们还是能够通过设置来同意Ubuntu直接登录root的。自己能够百度。我就不把此方法告诉大家了,免得毁了系统来扔我鸡蛋。

sudo命令:临时成为root

默认地,我们是以个人用户身份登录Ubuntu系统。在小编的情况。是oscar这个用户。

在Ubuntu中默认不同意在开机时直接以root用户登录,那么我们要怎样来执行一些仅仅有root才有权利执行的命令呢?

别操心。我们能够使用sudo这个命令临时成为root。当一天的皇帝也是非常开心的嘛。

sudo是英语Substitute User DO的缩写。substitute是“替换,取代,替身”的意思,user是“用户”的意思,do就是“做”的意思。

所以连在一起就是“替换用户来运行...”的意思。

因此,假设我们要执行仅仅有root才干够执行的命令,那么能够在此命令前面加上sudo命令,例如以下:

sudo command

终端会提示你输入password,至少第一次会要求输入password。

此password就是你个人用户的password。在小编的情况。就是我的oscar这个账户的password。

比方。我们能够用sudo命令配合date命令执行一下(放心,执行date命令不会有什么危急):

sudo date

【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

wx_fmt=jpeg" style="height:auto">

能够看到。在我们输入 sudo date后。回车。终端要求我们输入个人用户的password,就是那一行:

[sudo] password for oscar:

意思是输入oscar这个用户的password(password是英语“password”的意思)。

小编输入了oscar账户的password。尽管输入password时是看不到不论什么字符的,这是为了安全。

输入password之后,回车,date命令的执行结果就显示给我们了。还记得我们的date命令么?是的,它用于显示当前日期和时间。

当然了,date这个命令并一定要是root用户才干运行,所以没什么特别。仅仅是给大家一个印象,怎样用sudo命令临时切换为root身份。

sudo su命令:一直成为root

有的人当一天皇帝就知足了。但有的人想要当得更久一些,甚至《向天再借五百年》。怎么办呢?

仅仅须要使用 sudo su 这个组合命令。就能够一直成为root用户了。

【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

wx_fmt=jpeg" style="height:auto">

终端会要求我们输入个人用户的password,就是那一行:

[sudo] password for oscar:

能够看到,执行了sudo su之后,我们的命令行提示符从 oscar@oscar-laptop:~$ 变成了 root@oscar-laptop:/home/oscar#

假设你还记得我们在命令行那一课里讲到的怎样阅读命令行提示符,你就会非常easy明确此时我们已经完毕了“屌丝逆袭”:

从oscar升级为root用户了!(从第一个root能够看出。还有结尾处的#也表明此时是root身份)。

这个时候就要小心了。由于此时你已经能够为所欲为了。

当然了。假设你感觉有点不适应,讶异于幸福来得太突然。还留恋屌丝的身份。那么能够退出root用户,又一次回到个人用户身份,用 exit命令就能够完毕(exit是英语“退出。离开”的意思):

【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

wx_fmt=jpeg" alt="0?wx_fmt=jpeg" style="height:auto">

能够看到,当我们身为root时,仅仅要执行exit命令,就随时能够回到个人用户。

在Ubuntu以外的其它Linux发行版,或许切换到root账户。不是用sudo su,而是仅仅须要su就能够了。

当然我们比較建议再加一个横线,用su -

这样不仅能切换为root,还能够直接定位到root的家文件夹。


用户管理的命令

既然你已经学会了怎样临时或一劳永逸地成为root用户,那么我们就能够来学习一些仅仅有root用户才干执行的命令了。

adduser命令就是当中之中的一个。

adduser命令:加入新用户

adduser这个命令,我们非常easy理解其作用。由于全然能够顾名思义:add是英语“加入”的意思,user是英语“用户”的意思。因此adduser就是用于加入用户。

使用方法也非常easy,adduser命令后接我们要创建的username。

假设你使用你的个人用户身份来执行这条命令。终端会提示你没有权限:

【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

能够看到,我们在oscar这个用户的身份下,执行 adduser thomas,表示我们想要创建一个新用户。叫做thomas。

可是不能执行。终端提示“adduser: Only root may add a user or group to the system”。

这句英语翻出来就是“adduser:仅仅有root用户才干往系统里加入用户或群组”。

太看不起人了,我不变身为钢铁侠你以为我仅仅是托尼.斯塔克是吧?

所以我仅仅能穿上sudo su这套“钢衣”。先变身为钢铁侠,再来执行adduser thomas这个命令。

【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

能够看到,我们成为root之后,执行adduser thomas就没问题了。显示thomas用户被加入。username是thomas,群组是thomas。创建/home/thomas这个thomas的家文件夹,然后终端命令停在这一行:

Enter new UNIX password:

意思是“请为thomas这个用户创建一个password”。

我们随便填写,然后回车,会让我们再输入一遍password确认。

然后接着是一些配置信息,比方thomas这个用户的全名,房间号,工作电话,家庭电话,其它。

我们通通能够不填写,用回车键略过,到了最后终端会提示:

Is the information correct ? [Y/n]

意思是“以上这些信息都正确吗?[正确请输入y/不对输入n]”。

我们输入y。回车。thomas用户就正式创建好了。能够看一下此时/home文件夹里的内容,发现多了一个 thomas 文件夹。

也就是thomas这个用户的家文件夹。例如以下图:

【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

wx_fmt=jpeg" alt="0?

wx_fmt=jpeg" style="height:auto">

passwd命令:改动password

假设之后你对设定的password不惬意。那么能够用passwd命令来改动当前password。

passwd命令是password这个英语单词的缩写。表示“密码”。

使用方法也类似adduser,仅仅要在其后加上须要改动password的那个username。比如:

passwd thomas

【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

Enter new UNIX password的意思是“输入新的密码”

Retype new UNIX password的意思是“再输入一遍密码”

输入两次新password之后。能够看到提示:password updated successfully,意思是“password更新成功”。

deluser:删除用户

既然有加入用户的命令。那么也一定有删除账户的命令。

是的。我们能够用deluser命令来删除已创建的账户。

deluser是delete和user的缩写。delete是英语“删除”的意思,user是“用户”的意思。

使用方法同adduser。在后面接你要删除的username。比如:

deluser thomas

【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

wx_fmt=jpeg" alt="0?wx_fmt=jpeg" style="height:auto">

能够看到。执行deluser thomas这个命令,终端不会提示你确认是否删除,而是直接删除了用户thomas。

所以。deluser这个命令还是要慎重使用。

由于假设你删除的是你的个人用户,比如小编的情况,假如我 deluser oscar。

那么就会陷入囧境:在下次系统启动时你就不能以oscar登录了,而Ubuntu默认又不同意root登录,你就会不知所措了。

单单用deluser命令,不加參数的话,仅仅会删除用户,可是不会删除在/home文件夹中的用户家文件夹。

假设你想要连此用户的家文件夹也一并删除。能够加上 --remove-home 这个參数。例如以下:

deluser --remove-home thomas

这样,不仅删除了thomas这个用户,连/home/thomas这个文件夹也会删除。

注意:adduser和deluser命令仅仅是Debian一族(包含Ubuntu)才有的命令。

其它的LInux发行版,一般来说,加入用户和删除用户是用useradd和userdel命令。并且,用useradd加入用户之后,在默认的情况下,该账号是临时被*的。 也就是说,该账号是无法登录,需要用passwd命令来给新创建的用户设置password之后才干够使用。


群组管理的命令

在这课的开头。我们说了。Linux中每个用户都属于一个特定的群组。

那你要问了:“那么我们刚才创建的thomas是属于哪个群组呢?我们曾经创建的个人用户oscar又属于哪个群组呢?我们之前都没配置呀。

其实。假设你不设置用户的群组。那么它默认会创建一个和它的username一样的群组,而且把用户规划到这个群组。

我们能够用ls -l命令来看一下/home文件夹下的内容:

【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

能够看到,我们的oscar用户和thomas用户的家文件夹各自是/home/oscar和/home/thomas。

在每一行的各列都有不允许义。我们之前的课程里有解说过(【Linux探索之旅】第二部分第三课:文件和文件夹,组织不会亏待你)。

所以,第三列表示文件或文件夹的全部者,第四列表示文件或文件夹的所在群组。

能够注意到:oscar这个文件夹的全部者是oscar,群组是oscar;thomas这个文件夹的全部者是thomas。群组是thomas。

我们也注意到其它的两个:image.bnp这个文件的全部者是root,群组是root;swaroop这个文件夹的全部者是root。群组是root。所以事实上root这个群组是存在的,root用户就属于这个群组。

可是。把用户分在不同的群组,究竟有何意义呢?

在用户不多的时候,我们会认为一个用户属于一个群组(比方默认是与username同样的群组名)是挺不错的。

可是一旦用户一多,你可能就想要创建群组了。

我们来学习怎样管理群组。

当然,群组还有权限的考量因素,我们这课之后会讲权限。

当然了,群组管理的命令也须要root身份。

addgroup:创建群组

addgroup是add和group的缩写,add是英语“加入”的意思。group是英语“群组”的意思。

所以addgroup命令用于加入一个新的群组。

使用方法也非常easy。和adduser命令类似,就是后接须要创建的群组名。比如:

addgroup friends

创建一个名为friends的群组,friends是英语“朋友”的意思,也是美剧《老友记》。哈哈。

【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

wx_fmt=jpeg" alt="0?

wx_fmt=jpeg" style="height:auto">

在上图中。我们看到,用addgroup命令创建了一个新的群组,名叫friends,并且成功了。Done是英语“完毕”的意思。

非常不错,只是眼下friends这个群组还是空的,由于还没有往里面加入用户呢。

usermod命令:改动用户账户

usermod是user和modify的缩写,user是英语“用户”的意思,modify是“改动”的意思。

usermod命令用于改动用户的账户。

usermod命令有好多參数,能够实现不同的功能。只是我们临时仅仅须要记得它的两个參数:

  1. -l:对用户重命名。可是/home文件夹中的用户家文件夹名不会改变,须要手动改动。

  2. -g:改动用户所在群组

使用方法非常easy,假如我要将thomas这个用户放到我刚创建的friends这个群组里,能够这样写:

usermod -g friends thomas

我们知道,用户thomas之前的群组是thomas,默认的。执行完usermod -g friends thomas之后。thomas的群组就会变成friends了,可是在 /home/thomas这个文件夹的信息不变,仍旧显示群组是thomas。

我们怎么知道用户thomas的群组已经改变为friends了呢?

我们能够用groups命令,这个命令能够获知一个用户属于哪个(些)群组。

使用方法非常easy。后接username就能够了,当然用户要存在才行。

【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

wx_fmt=jpeg" style="height:auto">

能够看到。thomas的群组是friends。root的群组就是root。oscar的群组有好几个,说明小编增加了非常多“组织”。

上图中,我们确实看到了。/home/thomas这个文件夹的信息没变,第四列表示群组的依然是thomas。

当然我们也能够一次将一个用户加入到多个群组,就用 -G 參数(大写的G)。使用方法例如以下:

usermod -G friends,happy,funny thomas

以上命令把thomas加入到friends,happy和funny三个群组。

记得群组名之间要用逗号分隔。并且没有空格。

注意:使用usermod时要小心,由于配合-g或-G參数时,它会把用户从原先的群组里剔除。增加到新的群组。假设你不想离开原先的群组,又想增加新的群组。能够在-G參数的基础上加上-a參数,a是英语append的缩写,表示“追加”。比如:

usermod -aG happy thomas

以上命令就把thomas追加到群组happy里了,这样thomas就属于两个群组:friends和happy

能够用groups命令測试一下。

注意:groups命令假设单独用,不加不论什么參数,会显示当前用户所在群组。

【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

wx_fmt=jpeg" alt="0?

wx_fmt=jpeg" style="height:auto">

记得。追加群组的时候,一定要用大写的G这个參数。不能用小写的g这个參数,即使仅仅追加一个群组。

delgroup命令:删除群组

delgroup是delete和group的缩写。delete是英语“删除”的意思,group是英语“群组”的意思。所以delgroup命令用于删除一个已存在的群组。

使用方法非常easy,后接想要删除的群组名:

delgroup happy

就删除了happy这个群组。

再用groups命令測试,发现thomas仅仅属于friends群组了。由于happy这个群组被删除了嘛。

注意:addgroup和delgroup命令仅仅是Debian一族(包含Ubuntu)才有的命令。

其它的LInux发行版,一般来说。加入用户和删除用户是用groupadd和groupdel命令。


改动文件的全部者和群组

仅仅有root用户能够改动一个文件的全部者和群组。

比方说。小编自己的用户oscar的家文件夹有一个文件。file.txt,是我创建的。

我们用ls -l命令来看一下它的信息:

【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

wx_fmt=jpeg" alt="0?wx_fmt=jpeg" style="height:auto">

能够看到。file.txt的全部者和群组都是oscar。

如今我决定,把这个文件转让给thomas,也就是让file.txt的全部者变为thomas。怎么做呢?

chown命令:改变文件的全部者

此命令也须要root身份才干执行。

chown是change和owner的缩写。change是英语“改变”的意思,owner是英语“全部者”的意思。

chown命令用于改变文件的全部者。

使用方法也非常easy,后接新的全部者的username,再接文件名称。

比如:

chown thomas file.txt

【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

wx_fmt=jpeg" style="height:auto">

能够看到,用chown命令,把file.txt文件的全部者改为thomas之后,file.txt的所在群组是不变的,还是oscar。正所谓“身在曹营心在汉”。

那么怎样使它“身在曹营心也在曹营”呢?

就要用到chgrp命令了。

chgrp命令:改变文件的群组

chgrp是change和group的缩写。change是英语“改变”的意思。group是英语“群组”的意思。

chgrp命令用于改变文件的群组。

使用方法也非常easy。后接新的群组名,再接文件名称。比如:

chown thomas file.txt

【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

好了,这下file.txt的全部者和群组都是thomas了。

事实上。chown命令也能够改变文件的群组,使用方法例如以下:

chown thomas:friends file.txt

这句命令就把file.txt这个文件的全部者改为thomas,群组改为friends了。

使用方法也非常easy,就是在全部者和群组之间用冒号隔开。

【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

-R參数:递归设置子文件夹和子文件

chown命令的-R參数很实用,还记得曾经我们有些命令也会使用-R參数么?

是的,R是recursive的缩写。表示“递归”。所以假设chown命令配上-R參数,就会使得被改动的文件夹的全部子文件夹和子文件都改变全部者(或者连群组也改变。假设用上述冒号的方法来同一时候改动全部者和群组)。

比如,假如我突然变得“非常坏”,想要把用户thomas的家文件夹的全部子文件夹和文件都占为己有。

我能够这么做:

chown -R oscar:oscar /home/thomas

这样不但使/home/thomas这个文件夹的全部者和群组都变成oscar,并且其子文件夹和子文件也都是如此。

【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

能够看到。/home/thomas都归我(oscar)全部了。


chmod命令:改动訪问权限

好了,这一节我们要攻坚这一课最难的部分了:訪问权限。

权限的原理

在Linux系统里,每一个文件和文件夹都有一列权限属性。

这一列訪问权限指明了谁有读的权利,谁有改动的权利。谁有执行的权利。

我们事实上早就见过訪问权限了,是的,就在我们执行ls -l命令的时候,显示的每一个文件或文件夹的第一列信息就是訪问权限。

比方我们在/home/oscar/linux_c文件夹下执行ls -l命令试试(当然你能够在你的家文件夹或其它文件夹执行也能够,由于小编的家文件夹东西太多了,比較乱):

【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

wx_fmt=jpeg" style="height:auto">

上图中文件信息的第一列比較复杂,我们能够看到不少 d,r,w。l。x等字母。假设不细分的话,这些我们能够通称为文件訪问权限符。

下面列出我们看到的字母的含义:

  1. d:是英语directory的缩写,表示“文件夹”。就是说这是一个文件夹。

  2. l:是英语link的缩写。表示“链接”。

    就是说这是一个链接。

  3. r:是英语read的缩写,表示“读”。

    就是说能够读这个文件。

  4. w:是英语write的缩写,表示“写”。就是说能够写这个文件,也就是能够改动。

  5. x:是英语execute的缩写,表示“执行,执行”。就是说能够执行这个文件。

假设x权限在一个文件夹上。那么表示的是这个文件夹能够被读,也就是能够打开此文件夹来看其子文件夹和子文件,假设它同一时候有r权限的话。

假设对应位置有字母,表示有对应权限。假设对应位置是一个短横-。则表示没有对应权限。

为什么我们看到这一排有好多个反复出现的r。w和x呢?

那是由于訪问权限是依照用户来划分的:

【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

wx_fmt=jpeg" alt="0?

wx_fmt=jpeg" style="height:auto">

如上图,除开第一个表示文件或文件夹属性的符号(此处是d,表示文件夹。假设是l。则是链接。还有其它字母,我们临时不深究。

假设是短横-。那么是普通文件。),其它的9个符号被划分为三组,从左到右分别表示:

  1. 第一组rwx表示文件的全部者对于此文件的訪问权限。

  2. 第二组rwx表示文件所属的群组的其它用户对于此文件的訪问权限。

  3. 第三组rwx表示其它用户对于此文件的訪问权限。

我们用一个详细的文件来作为样例分析一下:

【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

wx_fmt=jpeg" alt="0?

wx_fmt=jpeg" style="height:auto">

能够看到,renamed_file这个文件的訪问权限是

-rw-r--r--

我们从左到右来分析这些符号都表示什么:

  1. -:第一个短横表示这是一个普通文件。假设此处是d。那么表示文件夹。假设是l,那么表示链接,等等。

  2. rw-:表明了文件的全部者(此处是oscar)对文件有读。写的权限,可是没有执行的权限。

    也非常好理解,由于这是一个普通文件,默认没有可执行的属性。

    记住:假设有w权限(写的权限),那么表明也有删除此文件的权限。

  3. r--:表明文件所在的群组(此处是oscar)的其它用户(除了oscar之外)仅仅能够读此文件,但不能写也不能运行。“可远观而不可亵玩焉”。

  4. r--:表示其它用户(除去oscar这个群组的用户)仅仅能够读此文件。但不能写也不能运行。

综上所述,renamed_file这个文件是一个普通文件,不是一个文件夹,也不是链接文件。它的全部者oscar能够读写它,但不能运行。其它的用户仅仅能读。

那么root呢?对于此文件root用户的訪问权限是什么呢?

记住:root是超级管家。它有全部权限。没有它不能做的。

它能够读。写,执行随意文件。

chmod命令:改动文件的訪问权限

既然我们已经学会了怎样查看和理解文件的訪问权限,我们就来学习怎样改动文件的訪问权限吧。

我们要用到chmod命令。这个命令也是Linux中经常使用的命令。毕竟“一朝权倾天下有”,“争权夺利”谁不喜欢啊。

开个小玩耍... 是小玩笑,小编。

開始解说之前。要说明一点,chmod命令不须要是root用户才干执行。仅仅要你是此文件的全部者,你就能够用chmod来改动文件的訪问权限。

chmod是change和mode的缩写。change是英语“改变”的意思,mode是“模式”的意思。chmod命令用于改动文件的各种訪问权限。

chmod这个命令充满魅力,由于它的使用方法不止一种,好像一个千面女郎,令人着迷。

最常见的使用方法应该是数字式的。

用数字来分配权限:chmod的绝对使用方法

我们接下来要做一些加法,大家准备好了吗?不要让小学数学老师哭晕在体育办公室哦。

什么?你的小学数学是语文老师教的。好。算你厉害...

不要怕,仅仅是做一些极为简单的加法,我们仅仅要心算就能够了。

其实,Linux系统对每种权限(r。w和x)分配了相应的数字:

权限

数字

r

4

w

2

x

1

所以,假设我们要合并这些权限,就须要做简单的加法了:将相应的数字相加。

因此,假如我们要分配读,写权限。那么我们就要用4+2,就等于6。数字6表示具有读和写权限。

下面是可能的组合形式:

权限

数字

计算

---

0

0 + 0 + 0

r--

4

4 + 0 + 0

-w-

2

0 + 2 + 0

--x

1

0 + 0 + 1

rw-

6

4 + 2 + 0

-wx

3

0 + 2 + 1

r-x

5

4 + 0 + 1

rwx

7

4 + 2 + 1

不难吧?

所以。对于訪问权限的三组(全部者的权限,群组用户的权限,其它用户的权限),我们仅仅要分别做加法就能够了。然后把三个和连起来。

比如:640分别表示:

  1. 文件的全部者有读和写的权限。

  2. 文件所在群组的其它用户具有读的权限。

  3. 其它用户没有不论什么权限。

因此。我们能够给的最宽泛的权限就是 777:全部者,群组用户,其它用户都有读。写和执行的权限。这样,全部人就都能够对此文件为所欲为了。

相反,假设权限是000。那么没有人能对此文件做什么。当然,除了root。root能够做不论什么事。

我们如今来改动renamed_file的权限试试:

chmod 600 renamed_file

【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

wx_fmt=jpeg" style="height:auto">

能够看到,我们的renamed_file文件的訪问权限被改动为了

rw-------

正好是600。

所以如今仅仅有oscar能够读和写此文件。其它人都不能做什么。

当然,除了root之外。

用字母来分配权限:chmod的相对使用方法

除了用数字,我们也能够用还有一种方式来分配文件的訪问权限:用字母。

原理是类似的。可是有时用字母的方式更加静止,由于不须要一次性把三组权限都写出来。

我们须要知道不同的字母代表什么:

  1. u:user的缩写,是英语“用户”的意思。表示全部者。

  2. g:group的缩写。是英语“群组”的意思。表示群组用户。

  3. o:other的缩写。是英语“其它”的意思。

    表示其它用户。

当然了,和这些字母配合的还有几个符号:

  1. +:加号,表示加入权限。

  2. -:减号,表示去除权限。

  3. =:等号,表示分配权限。

接下来。我们举例说明怎样使用:

  1. chmod u+rx file.txt   文件file.txt的全部者添加读和执行的权限。

  2. chmod g+w file.txt  文件file.txt的群组其它用户添加读的权限。

  3. chmod o-r file.txt     文件file.txt的其它用户移除读的权限。

  4. chmod g+w o-w file.txt   文件file.txt的群组其它用户添加读的权限。其它用户移除读的权限。

  5. chmod go-r file.txt   文件file.txt的群组其它用户和其它用户均移除读的权限。

  6. chmod +x file.txt   文件file.txt的全部用户添加执行的权限。

  7. chmod u=rwx,g=r,o=- file.txt   文件file.txt的全部者分配读,写和运行的权限。群组其它用户分配读的权限,不能写或运行;其它用户没有不论什么权限。



-R參数:递归地改动訪问权限

-R參数但是“死性不改”:chmod配合-R參数能够递归地改动文件訪问权限。

假如我要仅仅同意oscar这个用户能读,写,执行/home/oscar这个文件夹的全部文件(当然,root不算。root能够做不论什么事),该怎么做呢?

chmod -R 700 /home/oscar

就是这么简单。

最终结束了,长舒一口气。


总结

  1. 在Linux系统中,每个用户都有自己独立的账户。

  2. 用户是被分组的。

  3. 存在一个超级用户,也就是一般说的大管家。它有权利做不论什么事情。它就是root。

    它有权利安装软件。而且对系统设置做改动。

  4. 有一些命令要能执行需要先切换到root身份。我们能够用sudo这个命令来实现此切换。比方下面这些命令就需要在前面再加一个sudo:adduser(用于加入新用户),deluser(用于删除用户),chmod(用于改动文件的权限)。

  5. 我们能够用chmod命令来改动文件的訪问权限。有三种权限:r(读权限)。w(写权限)和x(执行权限)。


第二部分第六课预告

今天的课就到这里。一起加油吧!

下一课我们学习:Nano,刚開始学习的人的文本编辑器