0


Linux基础篇(3)---》常用命令大全(权限管理命令)

❤️1. Linux用户的概念

🅰️Linux下有两种用户:超级用户(root)、普通用户。
💯超级用户:可以再linux系统下做任何事情,不受限制 !
💯普通用户:在linux下做有限的事情!

🅰️超级用户的命令提示符是“**#”,普通用户的命令提示符是“$**”。

☸️1.1 角色切换

㊗️1.1.1 普通用户切换到超级用户

🅰️su和su-的区别:

(1)对于**su -**:首先whoami查看当前的用户,pwd查看当工作的目录,在su - 进行目录的切换

💯也可以用sudo -s,利用su -s要输入的是用户的密码;而su -要输入的是超级用户的密码!

(2)对于su:首先whoami查看当前的用户,pwd查看当工作的目录,在su进行目录的切换

💯su/su-的区别:都是普通用户到root用户的转换;su还使用当前路径,su- 跳转到root的家目录!

㊗️1.1.2 超级用户切换到普通用户

直接exit或者ctr+d就可以登出,回到普通用户

💯注意

(1)以上都是我们才开始登录的是普通用户,切换到超级用户root,再切换回来的过程!

(2)如果是我们才开始登录的就是超级用户root,怎么切换普通用户呢?利用su - 用户名;切换回来还是exit或者ctrl+d回到超级用户root

❤️2. Linux权限管理

☸️2.1 文件权限的理解

🅰️文件的权限是为了约束普通人

  1. 文件属性:r(读)、w(写)、r(执行),对应的数字码为:4、2、1

  2. 人属性:u(文件的拥有者)、g(文件的所属组)、o(文件的其他人)

🅰️文件权限的理解和作用

💯对于同一个项目,可能需要很多人共同去完成;我们只想让共同完这个项目的人可以看见,其他人都看不见;

💯假如拥有者是你,对于你来说,其他所有的人都是其他人;那么怎么让和你共同完成项目的人也能看到呢?这就需要所属组,我们创建一个所属组(g);把共同完成这个项目的人全都加到这个组里,就能很好的解决这个问题!这样就能对同组内可见,其他人不可见!

㊗️2.1.1 文件权限的深入理解

🅰️对于第一位的文件类型又有很多种:

🅰️我们最常见的文件类型就是前两种d和-;感兴趣的同学不妨找一找:

💯ls -l /dev 里面有很多以字符c开头的设备和其他文件的类型;

💯对于管道文件很少见,我们利用mkfifo f创建一个管道文件f,在ll就可以查看了

☸️2.2 文件权限的更改

🅰️基本权限

💯读(r/4):Read对**文件**而言,具有**读取**文件内容的权限;

                           对**目录**来说,具有**浏览**该目录信息的权限;
 💯写(w/2):Write对**文件**而言,具有**修改**文件内容的权限;

                           对**目录**来说具有**删除移动**目录内文件的权限;
 💯执行(x/1):Execute对**文件**而言,具有**执行**文件的权限;

                                    对**目录**来说,具有**进入目录**的权限;
 💯“—”表示不具有该项权限;

🅰️文件权限值的表示方法

💯字符表示方法

💯8进制数值表示方法

㊗️2.2.1 文件访问权限的相关设置方法

**🅰️chmod **功能:设置文件的访问权限

💯格式:chmod [参数] 权限 文件名 
 💯常用选项: R -> 递归修改目录文件的权限 
 💯说明:只有文件的拥有者和root才可以改变文件的权限

🅰️chmod命令权限值的格式:用户表示符+/-=权限字符
💯+:向权限范围增加权限代号所表示的权限
💯-:向权限范围取消权限代号所表示的权限
💯=:向权限范围赋予权限代号所表示的权限
🅰️用户符号:
💯u:拥有者
💯g:拥有者同组用
💯o:其它用户
💯a:所有用户

㊗️2.2.2 文件访问权限的修改方法和理解

🅰️修改方法1:利用字符进行修改

💯就拿222这个文件进行举例:

💯给222的其他人(o)增加wx权限;所有者(x)减去w权限

💯把222所有权限都去掉

🅰️修改方法2:三位8进制数字

💯第二种方法更加的简单,但没有第一种直观;我们利用r(4)、w(2)、x(1);就相当于3位比特位:000-111(0-7);比如一个权限要修改成rwx r-x r-x对应的数字就是:7 5 5;

💯假如把上述的222文件修改为rw- rw- r 对应就是664

🅰️-R递归方式修改权限

💯对于递归方式的修改权限类似于递归方式的创建,我们就先用mkdir -p递归创建几个目录

mkdir -p /japan/1/2/3;并ll查看权限,都是有可执行x的;

💯对于目录来说,在创建时会默认有可执行权限x的,这样才能进入目录;如果我们想要把japan目录包括他后面的目录都无法进去;直接执行:chmod -R a-x japan即可!

🅰️普通用户可以删除root用户创建的文件的例子

💯什么?我并没有sudo提升权限,普通用户居然删除可以删除我root用户创建的文件?

那还得啦了!其根本原因是目录权限的问题!

(1)首先我们先执行whoami和pwd验证一下当前的用户和家目录是不是root;验证完成就开始创建目录mkdir /temp;并设置权限为777,chmod 777 /temp;cd /temp在里面在创建一个文件,touch 111;

(2)我们查看111的权限,ll /temp/111发现权限对于其他人(只有r权限),并且所有者和所数组都是root;

(3)su - zl切换到普通用户zl,执行rm -rf /temp/111竟然可以删除root刚才创建的111文件?其根本原因是文件所在的目录temp的权限是777!

☸️2.3 修改文件的所有者、所属组

㊗️2.3.1 修改文件的所有者

🅰️**chown **
💯功能:修改文件的拥有者
💯格式:chown [参数] 用户名 文件名 ;参数-R递归修改

💯常用选项:-R 递归修改文件或目录的所有者

🅰️示例:我们把文件222的所属者修改为root;给被人东西要经过别人的同意,所以要加上sudo进行运行权限的提升:

🅰️示例:递归修改-R

这个其实和递归创建mkdir -p很相似;假如我们递归修改一个目录111:sudo chown -R root 111,它会把111目录下的其它目录或者用户的所有者都改成root!这里不太好截屏展示,感兴趣的小伙伴自己动手试试!

㊗️2.3.2 修改文件的所属组

🅰️**chgrp **
💯功能:修改文件或目录的所属组
💯格式:chgrp [参数] 用户组名 文件名
💯常用选项:-R 递归修改文件或目录的所属组

🅰️示例:我们把文件222的所数组修改为root;给被人东西要经过别人的同意,所以要加上sudo进行运行权限的提升:

同样和chown修改所有者一样,修改所属组chgrp也可以利用-R参数进行递归修改!

㊗️2.3.3 同时修改文件的所有者和所属组

这样分开一个个修改太麻烦了,如何同时修改文件的所有者和所属组呢?

🅰️示例:我们把222文件的所有者和所属组修改回来,变成zl

❤️3. 知识点补充

🅰️如果想进入一个目录,需要什么权限?

 不是w,也不是r,需要可执行权限x

🅰️注:对于r(读)、w(写)、x(执行)

💯对于文件而言:读(w)代表可以读取内容,写(r)代表可以修改内容,可执行(x)代表可执行文件;

💯对于目录而言:读(w)代表可以浏览目录,写(r)代表可以删除移动目录,可执行(x)代表可进入目录;

💯所以对于目录的创建,默认都有可执行权限x;对于文件的创建默认没有可执行权限x;

☸️3.1 缺省权限:umask

🅰️问题的提出

💯不知道大家发现没有发现我们每次创建的目录权限都是一样的rwx r-x r-x,比如我们创建一个boduo目录,并查看它的权限:

💯而创建的文件权限都是目录权限减去x权限rw- r-- r--:

这是为什么呢?

🅰️问题的解决

💯这就和缺省权限有关了;我们利用umask命名查看一下,发现结果是0022,第一个0是特殊权限不需要管,022是什么意思呢?

💯我们不妨在加一个参数-S:就会以rwx的形式显示新建文件的缺省权限,umask -S

所以我们创建的目录权限都是rwx r-x r-x,去掉可执行权限x,就是文件的权限了rw- r-- r-

💯我们理解了这一层再来解释022什么意思:2是w权限,所以就是0ww;用777权限rwxrwxrwx与022权限0ww异或结果就是创建的目录权限rwx r-x r-x;

标签: linux 服务器

本文转载自: https://blog.csdn.net/m0_61933976/article/details/124640188
版权归原作者 @每天都要敲代码 所有, 如有侵权,请联系我们删除。

“Linux基础篇(3)---》常用命令大全(权限管理命令)”的评论:

还没有评论