zoukankan      html  css  js  c++  java
  • 【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

    0?wx_fmt=jpeg


    内容简单介绍

    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中的用户组织的一般可能形式:


    0?wx_fmt=jpeg


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


    在我们装完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
    


    0?</p><p>wx_fmt=jpeg


    能够看到。在我们输入 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用户了。


    0?</p><p>wx_fmt=jpeg


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


    [sudo] password for oscar:


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


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


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


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


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


    0?wx_fmt=jpeg


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


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

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


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



    用户管理的命令


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


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


    adduser命令:加入新用户


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


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


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


    0?wx_fmt=jpeg


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


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


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


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


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



    0?wx_fmt=jpeg


    能够看到,我们成为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这个用户的家文件夹。例如以下图:


    0?</p><p>wx_fmt=jpeg


    passwd命令:改动password


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


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


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


    passwd thomas
    


    0?wx_fmt=jpeg


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


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


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


    deluser:删除用户


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


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


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


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


    deluser thomas
    


    0?wx_fmt=jpeg


    能够看到。执行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文件夹下的内容:


    0?wx_fmt=jpeg


    能够看到,我们的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是英语“朋友”的意思,也是美剧《老友记》。哈哈。


    0?</p><p>wx_fmt=jpeg


    在上图中。我们看到,用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就能够了,当然用户要存在才行。


    0?</p><p>wx_fmt=jpeg


    能够看到。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命令假设单独用,不加不论什么參数,会显示当前用户所在群组。


    0?</p><p>wx_fmt=jpeg


    记得。追加群组的时候,一定要用大写的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命令来看一下它的信息:


    0?wx_fmt=jpeg


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


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


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


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



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


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


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

    比如:


    chown thomas file.txt
    


    0?</p><p>wx_fmt=jpeg


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

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


    就要用到chgrp命令了。


    chgrp命令:改变文件的群组


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


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


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


    chown thomas file.txt
    


    0?wx_fmt=jpeg


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


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


    chown thomas:friends file.txt
    


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

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


    0?wx_fmt=jpeg


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


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


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


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

    我能够这么做:


    chown -R oscar:oscar /home/thomas
    


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



    0?wx_fmt=jpeg


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



    chmod命令:改动訪问权限


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


    权限的原理


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

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


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


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


    0?</p><p>wx_fmt=jpeg


    上图中文件信息的第一列比較复杂,我们能够看到不少 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呢?


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


    0?</p><p>wx_fmt=jpeg


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

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


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

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

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


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


    0?</p><p>wx_fmt=jpeg


    能够看到,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
    


    0?</p><p>wx_fmt=jpeg


    能够看到,我们的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,刚開始学习的人的文本编辑器

  • 相关阅读:
    Oracle 备份与恢复 15 个典型问题
    Oracle Rman 增量备份与差异备份
    Oracle top 查询TOP SQL
    Oracle 将另外一张表的列更新到本表的列
    Mysql Innodb 表碎片整理
    python Django 之 Model ORM inspectdb(数据库表反向生成)
    MySQL 5.6比较重要的参数,以及5.5到5.6默认值有过变化的参数
    Python Django 前后端数据交互 之 HttpRequest、HttpResponse、render、redirect
    HTML(一)基础
    Python Django 前后端数据交互 之 HTTP协议下GET与POST的区别
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/7105103.html
Copyright © 2011-2022 走看看