0
点赞
收藏
分享

微信扫一扫

全景描绘云原生技术图谱,首个《云原生应用引擎技术发展白皮书》发布

小桥流水2016 2023-05-22 阅读 74

初识Linux:第五篇

初识Linux:第五篇

在这里插入图片描述

1.Linux下的用户

Linux下的用户有两种,超级用户(root用户),普通用户(也就是你adduser的用户);
windows:
在windows下的用户是管理员用户(超级用户)和普通用户,与Linux下的差不多,但是Linux的权限要比windows高;


  • 权限不同对于超级用户而言基本不受权限约束(注意并不是说root拥有所有权限,有些特殊的权限root也是不行的),对于普通用户而言是受权限的限制的;
  • 命令提示符不同,超级用户(root)的是’#‘,而普通用户的是’$ ‘;

在这里插入图片描述
在这里插入图片描述


指令:su 或者 su -或者sudo(受限制的su)
su和su -的区别

  • 对于su而言,直接切换用户,无需重新登陆,所以路径不改变(原来的切换前的路径);
  • 对于su -而言,以重新登陆的方式进入,所以路径会改变登陆后的路径(新用户的家目录);
  • 退出当前用户都是exit/^+d;

sudo暂时先不说,sudo可以对指令进行提权等,需要配置文件(因为系统默认不信任你),需要用到vim(暂时还不知道)😭;


su和su -指令的用户切换

1.root->普通用户:su+用户名/su - 用户名,无需输密码;
在这里插入图片描述
在这里插入图片描述

2.普通用户->root:su/su -,需要输入root密码;

在这里插入图片描述
在这里插入图片描述
3.普通用户->普通用户,su 用户名/su - 用户名,需要输入指定的用户名密码;
在这里插入图片描述
在这里插入图片描述

从这里可以看出,root的权限还是很大的(完全不需要输密码,随意切换);


2.Linux权限管理

举个简单的例子:
在这里插入图片描述
我们发现我们不充vip看不了这个电影,这个就是权限;

所以简而言之,权限就是一件事情是否允许被你做,Linux下权限=人+事物属性

注意:root或普通用户是人,我们知道每个人都有自己的身份(文件中主要有三种身份:拥有者,所属组,其他人),所以权限认证的逻辑就是人和身份是否匹配;

2.1文件权限管理

权限=人+事物属性
在这里插入图片描述

  1. 文件类型(第一个字符)

举几个例子
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Linux系统中,文件名后缀没有直接意义(不代表不用),我们主要看文件类型;

在这里插入图片描述
我写了一个C语言代码并编译:
在这里插入图片描述
在这里插入图片描述
如何理解不代表不用?
在这里插入图片描述
这里阐明一下,Linux操作系统对文件名后缀没有直接意义,但是Linux中的软件(比如gcc),会使用文件名后缀;


  1. 文件属性(后面的9个字符)

在这里插入图片描述

先细说普通文件的文件属性,r,w,x,-的意思,后面再学习目录文件的文件属性r,w,x,-的意思;

普通文件
r:可读;
w:可写;
x:可执行;
-:不具有该项权限;

这些权限对应的是身份,Linux中文件权限的身份主要有以下三种:拥有者(u:owner),所属组(g:group),其他人(o:others);
每三个字符对应一个身份:

在这里插入图片描述

所以我们进行权限认证时,就是拿你的用户名和身份匹配(相当于if…else if…else…逻辑);


2.2文件权限的更改

可以,在学习如何去改之前,需要知道文件权限值的表示方法;

  1. 字符表示方法
    在这里插入图片描述

  2. 8进制数值表示方法

因为在Linux中每三个字符的位置是确定的,第一个位置是r/-,第二个位置是w/-,第三个位置是x/-,那么我们可以看出每个位置要么有权限,要么没权限,有权限就可以用1表示,没权限就可以用0表示,那么三个字符就可以用三个数字(0/1)组成的二进制表示,也就可以化为一个8进制数字;

在这里插入图片描述


注意改变权限对root用户无影响,也就是说超级用户基本不受权限约束;

在这里插入图片描述

2.21改变文件访问权限属性

  1. 改变文件访问权限属性
    指令:chmod [参数] 文件权限值 目标文件
    可改文件属性的人拥有者或者root用户
    常用参数:-R : 递归修改目录文件的权限;

  • 用字符表示方法修改文件权限
    +:向权限范围增加权限代号所表示的权限
    -:向权限范围取消权限代号所表示的权限
    用户符号:
    u:拥有者
    g:拥有者同组用
    o:其它用户
    a:所有用户

例如:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述


  • 以8进制的表示方法修改文件访问权限
    例如:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

2.22改变文件的身份

  1. 改变文件的身份

权限=人+事物属性,所以我们也是可以改身份的;
权限认证是看你当前用户和身份是否匹配,root除外;
注意改变权限对root用户无影响

  • 改拥有者的身份
    指令:chown [参数] 用户名 文件名
    可更改的人root或者sudo
    常用选项:-R :递归修改目录文件的拥有者;
    例如:
    在这里插入图片描述
    因为你要给别人拥有者这个身份,你需要征得别人同意,所以我们采用强制给别人
    sudo+指令(由于sudo暂时没说)或root用户更改文件拥有者;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


  • 改变所属组身份
    指令:chgrp [参数] 用户名 文件名
    可更改的人sudo或者root
    常用选项:-R :递归修改目录文件的所属组;
    例如:

在这里插入图片描述
在这里插入图片描述

  • 改变所属组和拥有者(一起变)
    指令:chown [选项] 用户名:用户名 文件名
    可更改的人sudo或者root
    常见选项:-R :递归修改目录文件的拥有者和所属组;
    例如:

在这里插入图片描述


3.三个问题

在这里插入图片描述
在Linux下

  • 新建文件夹默认权限=0666
  • 新建目录默认权限=0777
    但实际上你所创建的文件和目录,看到的权限往往不是上面这个值;

问题一

注意第一个0是表示8进制的意思
权限掩码umask凡是在umask中出现的权限,不会在最终权限中出现
原因就是创建文件或目录的时候还要受到umask(权限掩码)的影响。假设默认权限是mask,则实际创建的出来的文件权限是: 最终权限=mask & (~umask);
也就是说,我们所创建的文件或目录需要经过上述公式的计算才是我们真正看到的;
例如:
在这里插入图片描述
在这里插入图片描述


补充
umask指令用法:

  • umask:查看当前权限掩码;
  • umask 三位8进制数字:更改权限掩码;

在这里插入图片描述
超级用户默认掩码值为0022,普通用户默认为0002

在这里插入图片描述


问题二

  • r:可读权限,如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容
  • w:可写权限,如果目录没有可写权限, 则无法在目录中创建或更改文件, 也无法在目录中删除文件
  • x:可执行权限,如果目录没有可执行权限, 则无法cd到目录中
  • -:无权限;

在这里插入图片描述
也就意味者我们无法通过家目录来进行文件共享需求
所以我们需要在根目录下建立一个共享目录,这个共享目录能够让我们互相访问文件;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

于是wang一气之下给我删了,因为删文件与目录文件的w权限有关,所以它可以删😭;

在这里插入图片描述
在这里插入图片描述

问题三

当然root除外,因为root不受权限约束;
为了解决这个不科学的问题, Linux引入了粘滞位的概念;
粘滞位是一个特殊的可执行权限( t ),只能放在other上且只能给目录设置(因为我们主要目的就就是防止其他用户删除我们的文件)
用法:chmod o+t 文件名
例如:
在这里插入图片描述
注意粘滞位是给目录的other设置的,上述的设置是给普通文件设置的,自然没用;

在这里插入图片描述
在这里插入图片描述


注意点:
在这里插入图片描述
在这里插入图片描述
那个shared是我切成root自己创建的;

总结

本篇主要介绍了如何切换用户,以及权限的操作,如何防范我们共享文件不被其他普通用户删除等,如果喜欢本篇不妨留下一个❤️,感谢大家观看,下期见;

举报

相关推荐

0 条评论