常用命令大全(权限管理命令)

简介: 常用命令大全(权限管理命令)

❤️1. Linux用户的概念


🅰️Linux下有两种用户:超级用户(root)、普通用户。

   💯超级用户:可以再linux系统下做任何事情,不受限制 !

   💯普通用户:在linux下做有限的事情!


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


☸️1.1 角色切换

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


🅰️su和su-的区别:


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


c1275149b9d94ce9b6cbbb924e2c1a56.png


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


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


3ce7eb93e3924184a9e8a61ca371b4fd.png


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


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


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


242d3601da3043b2bfa0ea93371184dc.png


💯注意:


(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 文件权限的深入理解


35b692a25b754f21ad0b3c2d1ce2071c.png

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


c195863178b24be8aa8dc36b2330b4db.png

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


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


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


☸️2.2 文件权限的更改

🅰️基本权限


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


                              对目录来说,具有浏览该目录信息的权限;

   💯写(w/2):Write对文件而言,具有修改文件内容的权限;


                              对目录来说具有删除移动目录内文件的权限;

   💯执行(x/1):Execute对文件而言,具有执行文件的权限;


                                       对目录来说,具有进入目录的权限;

   💯“—”表示不具有该项权限;


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


💯字符表示方法


b9209725d4c645558bf26f5ab56e030d.png


💯8进制数值表示方法

761e7a3d0e7a4ce7be6dadc470076544.png



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

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


   💯格式:chmod [参数] 权限 文件名

   💯常用选项: R -> 递归修改目录文件的权限

   💯说明:只有文件的拥有者和root才可以改变文件的权限


🅰️chmod命令权限值的格式:用户表示符+/-=权限字符

   💯+:向权限范围增加权限代号所表示的权限

   💯-:向权限范围取消权限代号所表示的权限

   💯=:向权限范围赋予权限代号所表示的权限

🅰️用户符号:  

   💯u:拥有者

   💯g:拥有者同组用

   💯o:其它用户

   💯a:所有用户


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

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


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


09fe98889cfa44369cb447e8c0688900.png


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


08d863110eb641a597103e043ce846da.png


💯把222所有权限都去掉


ffe16ddda76544fd85fa4bb0932b1c18.png


🅰️修改方法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


5bcc741efbc94839b66b65d1cc4b2b41.png


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


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


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


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


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


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


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


77b1772290af456f836bf01a0a973b90.gif


(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进行运行权限的提升:

92b0cd86f8d7405b8399caec06add8a0.png


🅰️示例:递归修改-R


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


㊗️2.3.2 修改文件的所属组

🅰️chgrp

   💯功能:修改文件或目录的所属组

   💯格式:chgrp [参数] 用户组名 文件名

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


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


2f05868c5f8946dcbbe31f00765c150b.png


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


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

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


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

c6a733aafe6c4e3889d66ac2794a849e.png



❤️3. 知识点补充


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


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


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


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


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


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


☸️3.1 缺省权限:umask


🅰️问题的提出


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


bf448d72e5894b1ab0b4b25f5e7e3c6f.png


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


b46cca7e35aa43618ea2ea8b9f8aec52.png


这是为什么呢?


🅰️问题的解决


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


70c60620c0de4794bbe255eed1bf4c1a.png


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


38846633462b4047a724c4f81476c84d.png


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


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

755f3cce45a14b20b9eb590b6de0f21d.png

相关文章
|
6月前
|
安全 Shell Linux
【Shell 命令集合 系统管理 】Linux 切换当前用户身份为另一个用户 su命令 使用指南
【Shell 命令集合 系统管理 】Linux 切换当前用户身份为另一个用户 su命令 使用指南
181 1
|
6月前
|
搜索推荐 Shell Linux
【Shell 命令集合 系统管理 】Linux 管理用户配置文件 userconf命令 使用指南
【Shell 命令集合 系统管理 】Linux 管理用户配置文件 userconf命令 使用指南
97 2
|
4月前
|
网络协议 Linux 网络安全
linux基本命令之系统管理命令
linux基本命令之系统管理命令
|
6月前
|
Linux 数据安全/隐私保护
【Linux笔记】用户和权限管理基本命令介绍
【Linux笔记】用户和权限管理基本命令介绍
|
6月前
|
Linux Shell PHP
linux脚本系统管理
在Linux系统管理中,脚本编写是自动化任务的关键,如Shell(Bash、Zsh、Csh)用于基本命令执行,Ruby适用于复杂脚本,Python利用丰富的库进行系统交互,Perl擅长文本处理,而PHP也可用于系统管理。这些脚本语言可实现服务监控、故障恢复、数据备份等功能。编写脚本时,应注意安全性和可靠性,采用错误处理、权限控制和日志记录,并可通过cron job调度执行。
52 2
|
6月前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 实时监控日志文件 swatch命令 使用指南
【Shell 命令集合 系统管理 】Linux 实时监控日志文件 swatch命令 使用指南
96 1
|
6月前
|
存储 安全 Unix
【Shell 命令集合 系统管理 】Linux 显示当前系统上已登录用户的信息 rwho命令 使用指南
【Shell 命令集合 系统管理 】Linux 显示当前系统上已登录用户的信息 rwho命令 使用指南
77 0
【Shell 命令集合 系统管理 】Linux 显示当前系统上已登录用户的信息 rwho命令 使用指南
|
6月前
|
存储 Shell Linux
【Shell 命令集合 系统管理 】Linux 切换用户组 newgrp命令 使用指南
【Shell 命令集合 系统管理 】Linux 切换用户组 newgrp命令 使用指南
94 0
|
6月前
|
存储 Shell Linux
【Shell 命令集合 系统管理 】Linux 添加新的用户账户 adduser 命令 使用指南
【Shell 命令集合 系统管理 】Linux 添加新的用户账户 adduser 命令 使用指南
121 0
|
6月前
|
Shell Linux 开发工具
【Shell 命令集合 系统管理 】Linux 查看当前Git仓库的提交历史 gitps命令 使用指南
【Shell 命令集合 系统管理 】Linux 查看当前Git仓库的提交历史 gitps命令 使用指南
73 0