【Linux】用户切换及文件权限详解

目录

一、Linux简介

二、shell命令和运行原理

三、Linux用户切换

四、Linux权限管理

1、 文件访问者的分类

2、文件类型和访问权限

2.1 修改文件权限

2.2修改文件隶属者

2.3 目录的权限

五、易错点


一、Linux简介

Linux是一个基于Unix的操作系统内核,由芬兰程序员Linus Torvalds于1991年开发。Linux内核是开源的,这意味着任何人都可以查看、修改和重新分发它。Linux操作系统则是由Linux内核与其他软件组件(如GNU工具和图形界面)组成的完整操作系统。

但Linux只是操作系统内核本身,但通常采用“Linux内核”来表达该意思。而Linux则常用来指基于Linux内核的完整操作系统, 它包括GUI组件和许多其他实用工具。

二、shell命令和运行原理

shell外壳的核心工作 : 用户和内核之间,需求指令 <-shell-> 结果

  • 将使用者的命令翻译给核心(kernel)处理。

  • 同时,将核心的处理结果翻译给使用者。

对比windows GUI,我们操作windows不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的 操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。

shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。(张三 --- 用户 王婆 --- shell外壳程序 / 图形化界面 如花 --- 操作系统)

shell ---本质:其实也是一个执行起来的程序(进程),系统启动期间,一直存在。

shell命令有风险吗? 用户自定义的指令---shell都是通过创建子进程的方式让子进程去执行有风险的指令。

Shell是一种计算机操作系统的命令行解释器,它提供了与操作系统内核进行交互的接口。通过Shell,用户可以输入命令并执行操作系统提供的功能和应用程序。

Shell可以理解为一个命令解释器,它接收用户输入的命令,并将其解析并转发给操作系统内核执行。它还提供了一些额外的功能,如变量、条件语句、循环等,使用户能够编写脚本来自动化任务和批量处理操作。 在Unix、Linux和类Unix系统中,常见的Shell有Bourne Shell(sh)、Bourne Again Shell(bash)、C Shell(csh)、Korn Shell(ksh)等。每种Shell都有自己的特点和语法,但它们都提供了基本的命令行操作和脚本编程功能。

对于图形界面,用户点击某个图标就能启动某个程序;对于命令行,用户输入某个程序的名字(可以看做一个命令)就能启动某个程序。这两者的基本过程都是类似的,都需要查找程序在硬盘上的安装位置,然后将它们加载到内存运行。 ​ 换句话说,图形界面和命令行要达到的目的是一样的,都是让用户控制计算机。 ​ 然而,真正能够控制计算机硬件(CPU、内存、显示器等)的只有操作系统内核(Kernel),图形界面和命令行只是架设在用户和内核之间的一座桥梁。 ​ 由于安全、复杂、繁琐等原因,用户不能直接接触内核(也没有必要),需要另外再开发一个程序,让用户直接使用这个程序;该程序的作用就是接收用户的操作(点击图标、输入命令),并进行简单的处理,然后再传递给内核,这样用户就能间接地使用操作系统内核了。你看,在用户和内核之间增加一层“代理”,既能简化用户的操作,又能保障内核的安全,何乐不为呢? ​ 用户界面和命令行就是这个另外开发的程序,就是这层“代理”。在Linux下,这个命令行程序叫做 Shell。 ​ Shell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核,这就是 Shell 的本质。 ​ Shell 本身并不是内核的一部分,它只是站在内核的基础上编写的一个应用程序,它和 QQ、迅雷、Firefox 等其它软件没有什么区别。然而 Shell 也有着它的特殊性,就是开机立马启动,并呈现在用户面前;用户通过 Shell 来使用 Linux,不启动 Shell 的话,用户就没办法使用 Linux。

每次进行xshell登录时,操作系统(OS)都给你这个用户的当前登录,新启动一个shell或者bash。

如何一个系统内没有人登录,则没有shell,没有用户。则外壳程序不存在。


三、Linux用户切换

  1. root 超级管理员

  2. 非root 普通用户。root只有一个,非root可以多个。

身份切换:root和非root密码尽量不一样

  1. 普通用户切换到root:

使用 su 或 su - 切换身份

  • su :用户身份切换root ,以此方式切换到root后pwd,路径仍是切换前的路径。(普通用户切换root,需要输入root密码。而root切换普通用户不需要。)

  • su - :以root身份重新登陆一次,由于此方式相当于重新登陆,则路径变为/root。

  • ctrl + d 或 exit 退出 。

  1. root切换到其他:

  • su 名字:可以变成任何人,不需要密码。

  • ctrl + d 或 exit 退出。

  1. 普通用户切换到另一个普通用户:

  • su 名字 :需要输入对方的密码。

什么样的人,会具有root的密码? 一般都是管理员。

  1. 不把自己变成root,还想让我(普通用户)以root的权限执行一条命令。

sudo 指令 :对指定的指令进行提权(以root用户执行指令)。

若一个用户用户名在该配置文件中,才允许用户执行sudo。若一个用户用户名不在该配置文件中,则不允许这个用户执行sudo。


四、Linux权限管理

权限一定是限制人的。对应的操作对象,一定要有对应的满足人的需求的属性。

root账号几乎不被权限限制。

Linux下有两种用户:

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

  • 普通用户:在linux下做有限的事情。 注:超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。


1、 文件访问者的分类

Linux群体(人)--- 更多的是角色(身份)

文件访问者的分析:

  • 文件和文件目录的所有者: u---User

  • 文件和文件目录的所有者所在组的用户:g ---Group

  • 其他用户: o --- Others

Linux中是操作对象的属性。


2、文件类型和访问权限

文件权限属性上 --- r(读) w(写) x(执行)

访问文件时首先确认自己的权限,由前一次往后。只匹配权限一次,从前往后访问。若你是拥有者,则与拥有者权限的字母匹配,依次往后。

linux下一切都是文件。目录文件也是文件。

-: 代表普通文件,文本,源代码,图片,视频,库,可执行等。 d:目录文件 b:block,块设备文件—— 磁盘(允许随机访问被称为块设备) (查看磁盘:ll /dev/vda) c:char,字符设备文件(进行显示)—— 键盘、显示器(不支持随机访问, 按顺序访问)显示器通常以终端(xshell黑色的终端)的形式显示出来。(查看 :ll /dev) l:链接文件——类似快捷方式 p:管道文件—— s:socket文件——

linux的文件类型不通过后缀区分。(不代表Linux文件不用后缀,而是代表两者关系不大。) ​ Linux中对于文件后缀的态度:虽然Linux不通过文件后缀识别文件类型,但是不推荐没有后缀。原因:1、工具使用 2、人需要

权限:拦住特定的人,不让他做特定的事。

读(r):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限 写(w):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限 执行(x):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限 “—”:表示不具有该项权限

2.1 修改文件权限

文件权限属性的修改(这个文件的拥有者才能改权限):

  • chmod u-r 文件 :即给文件的拥有者减去读的权限

  • chmod u-x,g-w,o+w 文件 :即u减去读,g减去写,o加上执行

  • chmod u-rwx,g-rwx,o-rwx 文件:即此对此文件什么权限都没有

  • chmod a+r 文件: 即给u,g,o(a代表所有人)读的权限

  • chmod 777 文件: 等同于chmod a+rwx

2.2修改文件隶属者

chown 改变文件的拥有者

 普通用户 :sudo chown 用户名 文件名 
 root用户:chown 用户名 文件名 

chgrp 改变文件的所属组

 普通用户 :sudo chgrp 用户名 文件名 
 root用户:chgrp 用户名 文件名

chown 改变文件的拥有者和所属组

 chown 用户名:所属组 文件名

2.3 目录的权限
  • 可执行权限(x): 如果目录没有可执行权限, 则无法cd到目录中。

  • 可读权限(r): 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容。

  • 可写权限(w): 如果目录没有可写权限,,则无法在目录中创建文件, 也无法在目录中删除文件。

file 文件名 :可以查看文件类,辨识文件类型。


常见的权限三个问题:
1、对一个目录而言,进入他需要什么权限? 进入目录与读(r)写(w)权限无关 与可执行权限(x)有关。对一个目录没有读权限则无法查看次此文件的内容。 在目录权限中,读(r)权限决定了我们是否可以查看此文件。 在目录权限中,写(w)权限决定了我们是否可以在此目录中创建、删除内容、修改文件 。没有写权限可以改文件的属性, 不能创建文件,不能删除内容,不能修改内容、不能改名字。

root在目录权限000的情况下,可以对目录进行任何操作。即root不受权限控制。

2、权限最大时是777,为什么我们创建的普通文件默认权限是664,创建的目录文件是775?(起始权限:普通文件666 普通目录777) umask:权限掩码(定制一个文件被创建的时后的默认权限—)。umask指令可以查看默认掩码。 从起始权限中,去掉在umask中出现的权限。 因此,起始权限&(~umask) = 最终权限

目录拥有者的目录中一个文件是否可以被删除,并不取决于文件本身!!而取决于文件所处的目录,目录的拥有者是否具有w权限。就算文件是root的,且此时用户没有权限,也能删除。

3、如果大家需要在一个特定的文件内工作,实现数据的共享?

 drwxrwxrwt.  8 root root  4096 Oct 24 19:17 tmp

权限t:粘滞位。即给目录(共享目录)中的other设置的一个权限位,既具有x的意义,同时也进一步对目录权限进行特殊限定: 该目录里面的文件,只有root或者文件的拥有者有权利删除,其他人都不允许。

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

  1. 超级管理员删除

  2. 该目录的拥有者删除

  3. 该文件的所有者删除

当多个用户在公共目录下文件共享时,使用粘滞位。


五、易错点

目录的可执行权限是表示你可否在目录下执行命令。

如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这 个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)。

而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限。

所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无敌岩雀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值