❤️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 文件权限的理解
🅰️文件的权限是为了约束普通人
文件属性:r(读)、w(写)、r(执行),对应的数字码为:4、2、1
人属性: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;
版权归原作者 @每天都要敲代码 所有, 如有侵权,请联系我们删除。