0


【Linux】权限管理,谁动了我代码?!

一,shell命令以及运行原理

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。

从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:

  • 将使用者的命令翻译给核心(kernel)处理。
  • 同时,将核心的处理结果翻译给使用者

shell统称也就是下面的具体的bush

shell 对比于****windows GUI(图形界面),我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的

操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)

那如何理解shell(外壳程序)功能呢?

1. 方便用户完成操作。

我们如果想打开一个文件,而文件存在磁盘中,不可嫩我们专卖去学习一下机器码,所以我们同过简单指令告诉shell我的请求,让她和内核进行沟通,打开文件。

2. 处理内核返回的消息。

如果用户发送明显的错误请求,shell会直接返回错误信息,不会向内核发送请求,这样也就保护内核。

如果多个用户向shell发送多条请求,shell会为每个用户创建一个子进程,再向内核发出请求。

二 ,Linux用户权限

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

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

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

(注意:超级用户的命令提示符是“#”,普通用户的命令提示符是“$”)

1. su —— 用户切换

命令:su - [用户名]

功能:切换用户。

  1. su
  • 切换root下的 
    
    路径(超级管理员)
    注意: 一定不要和普通用户密码不同。

  1. su - [用户名] 当我们在root身份下,使用该指令可以访问任意创建的用户。
  1. 我们在普通用户下,登陆root,那我们如何回到用户,可不只su - [用户名]。

Ctrl + d 即可

(注意: 我们在普通用户中,运用su - 变成root,其本质是创建一个子进程,而我们回退到原来的普通用户建议使用strl + d,因为su -[用户名]会创建一个新的子进程,没必要叠加这么多的进程)

三,权限管理

权限 = 用户 + 事物的属性(文件属性)

就好比如:我是一名普通的学生,可以随意进出我的宿舍,但我缺无法随意进入校长的办公室。

事物的属性: 比如:面包具有被吃的属性,汽车具有被开的属性,桌子具有被办公的属性。

1. 理解

我们出来权限就可以通过这两方面进行修改,比如:总统桌在那里,我没有使用的权限是用户受限,桌子没有失掉他的属性;

但如果是总统,而桌子因为长年累月已经不平了,那么就失去了其作为办公的属性。

2. 用户

  1. 拥有者(owner)

  2. 所属组(group)

  3. 其他 (other)

3. 文件类型

  • : 普通文件,比如: 文本,动静态库,可执行程序(.exe),源程序

d: 目录文件

c: 字符设备文件:键盘与显示器

b: 块设备文件(block):磁盘

p: 管道文件(pipe):通信

l : 链接文件(link):软链接

(注:在linux下一切皆文件)

4. 文件基本权限

5. 设置文件权限方法

1. chmod —— 修改文件访问权限

语法:chmod [参数] 权限 文件名

**常用选项: **

-R -> 递归修改目录文件的权限 说明:只有文件的拥有者和root才可以改变文件的权限

**方法一: **

用户表示符 +/-= 权限字符

+: 增加权限

-: 取消权限

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

**用户符号: **

u:拥有者

g:拥有者同组用

o:其它用户

a:所有用户

比如:

chmod u+rw abc.txt ...支持多文件修改

chmod o-rx abc.txt

注意:

** 方法二: **

三位8进制数字进行表示

用法: chmod xxx [文件名]

2. chown —— 修改文件拥有者

语法: chown [参数] 用户名 文件名(支持多文件修改)

own位与group位都进行修改: chown [新own] : [新group] 文件名(支持多文件)

(1. root与普通用户。以root身份修改(我是老大,拿来,给予不用商量)

在root身份下,直接用 chown [新用户] [目标文件] —— 拿回来也不用商量

(2. 普通用户之间。普通用户修改(文件给别人,和拿回来都得客客气气地,需要得到允许(需要输入密码))

  方法:

** 法一**: sodo chown [新用户名] [目标文件] —— 现在学的还使用不了sodo

法二: 用root老大身份切换。先su (不用带- 会保留在普通用户的路径)提升权限,然后对普通用户文件拥有者进行修改。

3. chgrp —— 修改文件所属组

语法:chown [参数] 用户名 文件名

chgrp可以类比于chown,同样地有这样特性:

(1. root老大还是可以直接换所属组。

(2. 普通用户之间得需要用sodo进行权限提升,说人话是得“经过同意后”,才能进行文件所属组的修改。

4. umask —— 文件掩码

功能: 查看,修改文件掩码

文件掩码里面的权限是文件,目录创建时不能拥有的权限。

但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask

说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。

文件默认掩码:0666

目录默认掩码:0777

实例:

umask //查看掩码

umask

6. 对于目录而言的权限

1. r :

功能:在目录外,可以查看目录内容;(注:但如果没有打开权限(x),无法查看详细信息。)

2. x:

功能:打开目录的权限

面试题: Linux中打开目录的权限是什么?

答案:是 X ——执行权限

3. w :

功能:目录的创建,删除文件或者新目录

思考:但我们会发现会有这样使用场景,允许他人写入文件,但不允许删除其他人的权限,而w权限既能写入,又能删除;

在组内还好,可以查到是谁恶意删除他人文件,但other删除他人文件我们却无能为力,怎么办?

4. t ——粘滞位(目录文件限定)

功能:作为一个仅目录文件使用的一权限符号,一般对other使用。

与X同一位置

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由:

一、超级管理员删除

二、该目录的所有者删除

三、该文件的所有者删除

7. file****指令

功能说明:辨识文件类型。

语法:fifile [选项] 文件或目录...

常用选项

-c 详细显示指令执行过程,便于排错或分析程序执行的情形。

-z 尝试去解读压缩文件的内容

结语

本小节就到这里了,感谢小伙伴的浏览,如果有什么建议,欢迎在评论区评论;如果给小伙伴带来一些收获请留下你的小赞,你的点赞和关注将会成为博主创作的动力。

标签: linux 服务器 运维

本文转载自: https://blog.csdn.net/qq_72112924/article/details/130782922
版权归原作者 花果山~~程序猿 所有, 如有侵权,请联系我们删除。

“【Linux】权限管理,谁动了我代码?!”的评论:

还没有评论