【Linux】Linux基础之权限

这篇具有很好参考价值的文章主要介绍了【Linux】Linux基础之权限。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Linux中的用户

Linux中主要有两种用户:

  • root,超级用户
  • 非root,普通用户(xxx)

一般情况下root只有一个,但是可以有多个普通用户
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习

1.1 用户之间的身份切换

指令1:su -

【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习

指令2:su

普通用户,切换成超级用户:
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
输入密码时,密码不显示。

超级用户切换成普通用户:
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习

普通用户切换为另一个普通用户:
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
用户的身份切换后,可以用两种方式返回到原来切换前的用户:

  • 输入exit
  • ctrl + d

【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习

1.2 指令提权

当要执行一条指令,必须是超级用户的身份才行,但是又不想切换成超级用户,还是普通用户的身份,只是可以拥有超级用户的权限去执行这条指令,使用指令:

sudo + 操作指令

比如我想以超级用户的权限去执行一条指令:
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
如何添加配置文件:

vim /etc/sudoers

配置完普通用户可以使用sudo
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
第一次需要普通用户的密码,后面再使用sudo不需要密码。

二、权限管理

2.1 文件权限

Linux下一切皆是文件,文件权限主要分为群体和操作对象的属性。权限的出现是用来限制用户的,这里的用户可以是root超级用户、普通用户。Linux中的群体更多代表的是角色,有——拥有者、所属组、other。用户是否受权限的限制在于这个用户的角色是否有相应的文件权限属性,文件权限属性有——r(读)、w(写)、x(执行)。比如小明是某小学的校长,那么他就有管理这个学校的权限,换句话说小明可以管理这个学校,是因为他叫小明,还是因为他是这个学校的校长呢?很明显,因为小明是这个学校的校长,所以他才能管理整个学校,但是他没有管理其他学校的权限。

【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习

有r代表可读,有w代表可写,有x代表可执行,是横线说明没有该权限

2.2 权限操作

权限的属性是可以修改的:

  • 指令:chmod
  • 拥有者——user——u
  • 所属组——group——g
  • 其他用户——other——o

具体操作如下:
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习

+代表可以增加权限,-代表可以去掉权限

如果一个一个操作太麻烦了,可以使用a+或者a-来操作,a代表所有角色
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习

除此之外,还可以使用二进制的形式来操作,每个角色都有三种权限,有是1,没有是0。有3个1转换成八进制是7,只有读的权限转换成八进制是4,只有写的权限转换成八进制是2,只有执行的权限转换成八进制是1。可输入3个数,这3个数字分为是拥有者、所属组、other的权限。

【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习

有对应的权限才能有对应的操作
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
增加上读写的权限
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习

读写的权限我们已经知道了,现在看看执行权限是怎么回事
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
file.txt有执行权限,但是不能被执行,因为Linux的文件可执行必须有两个条件,缺一不可:

  • 有可执行的权限(x)
  • 必须是一个可执行的程序

file.txt文件虽然有可执行的权限但是它不是可执行的程序,所以不能运行。看可以被运行的:
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习

特殊的情况:
普通用户查看一个文本文件,该拥有者必须要有 r 读的权限
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
如果把拥有者的读权限去掉,会发生什么:
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
操作不被允许,但是我们发现它的所属组有 r 的权限,为什么不行呢?因为系统只识别拥有者是否有可读权限,也就是说,这个文件是yss创建的,同时目前的身份是yss,那么它就只看yss拥有者是否有可读的权限,只以第一次的识别为标准,后面的所属组是否有 r 它就不看了。

这里先使用一下chown修改拥有者:
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
如果把身份改为yyy,是否还能查看呢?
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习

以上的权限管理只是对于普通用户,root超级用户不受权限控制:
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习

2.3 chown和chgrp

  • chown——修改拥有者
  • chgrp——修改所属组

注意:使用这两个指令必须是root或者是以root的权限才能操作

【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习

操作一:使用sudo
1️⃣修改拥有者:
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习

2️⃣修改所属组:
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习

操作二:切换为root用户
1️⃣修改拥有者:
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习

2️⃣修改所属组:
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
操作三:一次性修改
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习

三、文件类型

windows下的文件,一般是以后缀来区分的;Linux下文件是以第一个字符来区分:

  • 横线(-)——普通文件(文本、图片、视频等等)
  • d——目录文件
  • b——块设备文件
  • c——字符设备文件
  • l——链接文件
  • p——管道文件

常见的是普通文件和目录文件:
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
Linux的文件是可以有后缀的,比如上图的.txt和.c。既然都用第一个字符来识别文件类型,那么有后缀的意义何在呢?这里演示一下:
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
说明了一件事,我们在操作的时候,后缀不管是怎样的,系统不会因为后缀名就不做相应的工作。但是,系统里的工具需要识别后缀名是否对应,比如是gcc和g++,使用gcc就要是.c后缀。所以,为了方便操作,以及看得清楚什么文件做什么,文件的后缀名尽量不要乱用。

除了看第一个字符来区分文件类型外,还可以使用一个指令来查看文件类型:

file + 文件名

【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习

四、目录文件的权限操作

前面的权限操作都是对普通文件,目录文件的权限操作又是一回事

1️⃣进入目录文件的权限
拥有者需要x可执行的权限
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习

2️⃣查看目录文件信息的权限
需要r可读的权限
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习

3️⃣在目录文件新建和删除文件的权限
需要w可写的权限
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
以上就是目录文件的权限管理,但还是只针对普通用户,超级用户不受影响。
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习

五、权限掩码

我们创建一个目录文件或者普通文件时,对应的权限目录文件是775,普通文件是664(有的人可能不同),为什么不是777呢?
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
这与权限掩码有关,每个文件都有一个起始权限,普通文件的起始权限是666,目录文件的起始权限是777

指令 :umask——定制一个文件被创建时的默认权限

【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习

计算:起始权限 & (~umask)= 最终权限

【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
权限掩码是可以修改的
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习

六、粘滞位

假如一个超级用户,在一个普通用户的家目录里创建一个文件,这个文件的拥有者和所属组都是root
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
此时普通用户是可以读root创建的文件的内容
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
如果root不想让别人读文件的内容,去掉该文件的所有权限
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
普通用户既读不了,也不能写入
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
但是可以删除这个root创建的文件
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
root创建的文件的权限没有w,为什么普通用户还能删除呢?因为删除一个文件不在于文件本身,而在于该文件的目录的拥有者是否有w写的权限。很明显,这个文件的所处的目录是普通用户yss的,它的拥有者具有w写的权限,所以可以对它目录下的文件进行删除,不管那个文件是谁的。
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
还有一个问题,为什么别人要在我家里创建文件呢?能不能有一个公共区域共享文件,答案是有的。
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
tmp目录的权限有一个t,先以root身份把这个t去掉,来验证下公共区域tmp里的文件共享
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
再切换为另一个普通用户
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
有读的权限,可以看文件的内容

若该文件的创建者yss把这个文件的所有权限去掉
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
既然不让其他用户看到文件的内容,那么其他用户是否可以把这个文件删除?
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
确实可以删除,可是回到最开始的问题,既然我(一个普通用户)创建的一个文件放在公共区域里,可以让别人读或者写,也有权利不让别人读或者写,但是防不住别人删了这个文件,该怎么办?所以有一个新的权限可以介绍了——粘滞位(t)

还是yss普通用户在tmp里创建一个文件,同时把tmp的粘滞位加上
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
切换为另一个普通用户看是否可以删除该文件
【Linux】Linux基础之权限,Linux,linux,运维,服务器,开发语言,c++,学习
此时就不行,粘滞位t有x的性质,但同时它又对目录权限进行特殊限定,其他用户不能删除该目录下的文件,只要root超级用户和该文件的的拥有者可以删除。文章来源地址https://www.toymoban.com/news/detail-778015.html

到了这里,关于【Linux】Linux基础之权限的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux运维】shell脚本检查服务器内存和CPU利用率

    在管理服务器时候写了一个 shell脚本,在服务上实现每天凌晨3点查系统的指定文件夹下的容量大小,如果超过10G就要删除3天前的内容,还要时刻查询内存和cpu利用率,如果超过80%就要提示用户出现过载 将以上代码保存为一个.sh文件,然后通过crontab在每天凌晨3点运行即可:

    2024年02月09日
    浏览(67)
  • Linux - 进阶 NFS 服务器 NFS文件权限与共享目录权限主次问题

            #    NFS 的权限本身没有用户密码和账户验证登录过程               ( 你可以回忆下,我们前面访问远程共享目录的时候,是没有输入账户,密码啥的,是没                 有这个步骤的)              所以客户端登录到服务器后,会把客户端的

    2024年02月04日
    浏览(54)
  • Linux本地部署1Panel服务器运维管理面板并实现公网访问

    1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器,包括主机监控、文件管理、数据库管理、容器管理等 下面我们介绍在Linux 本地安装1Panel 并结合cpolar 内网穿透工具实现远程访问1Panel 管理界面 执行如下命令一键安装 1Panel: 安

    2024年02月04日
    浏览(98)
  • Linux服务器常见运维性能测试(1)综合跑分unixbench、superbench

    最近需要测试一批服务器的相关硬件性能,以及在常规环境下的硬件运行稳定情况,需要持续拷机测试稳定性。所以找了一些测试用例。本次测试包括在服务器的高低温下性能记录及压力测试,高低电压下性能记录及压力测试,常规环境下CPU满载稳定运行的功率记录。 这个系

    2024年02月04日
    浏览(83)
  • 如何在LINUX(UBUNTU)实现FTP服务器多用户多权限

    要求 实现两个用户,使得一个student可以上传,下载文件 另一个teacher可以上传,下载,删除文件 首先现在Ubuntu上安装ftp(以下使用vsftp演示) 为了使student用户没有删除的权力,需要做以下更改 ftp服务器配置文件如下

    2024年01月21日
    浏览(47)
  • 必看>>>>Linux数据库被其他服务器远程访问(修改权限、开设端口)

    目录 一:修改权限 1.1 进入Linux数据库 1.2 修改数据库的远程连接权限 1.2.1 数据库远程权限修改命令 1.2.2 数据库远程权限查看命名 1.3 给Linux机添加端口 1.4 远程数据库连接 文章中的四:Linux中mysql数据库的安装 1.2.1 数据库远程权限修改命令 grant all privileges on *.* to \\\'root\\\'@\\\'%\\\'id

    2023年04月17日
    浏览(116)
  • [1Panel]开源,现代化,新一代的 Linux 服务器运维管理面板

    本期测评试用一下1Panel这款面板。1Panel是国内飞致云旗下开源产品。整个界面简洁清爽,后端使用GO开发,前端使用VUE的Element-Plus作为UI框架,整个面板的管理都是基于docker的,想法很先进。官方还提供了视频的使用教程,本期为大家按照本专栏的基本内容进行多方面的测评。

    2024年02月07日
    浏览(95)
  • Linux服务器常见运维性能测试(3)CPU测试super_pi、sysbench

    最近需要测试一批服务器的相关硬件性能,以及在常规环境下的硬件运行稳定情况,需要持续拷机测试稳定性。所以找了一些测试用例。本次测试包括在服务器的高低温下性能记录及压力测试,高低电压下性能记录及压力测试,常规环境下CPU满载稳定运行的功率记录。 这个系

    2024年02月02日
    浏览(55)
  • 华为云云耀云服务器L实例评测 | Linux系统宝塔运维部署H5游戏

    本章节内容,我们主要介绍华为云耀服务器L实例,从云服务的优势讲起,然后讲解华为云耀服务器L实例资源面板如何操作,如何使用宝塔运维服务,如何使用运维工具可视化安装nginx,最后部署一个自研的H5的小游戏(6岁的小朋友玩的很开心😁)。 前端的同学如果想把自己

    2024年02月07日
    浏览(58)
  • linux 服务器安装多版本 cuda (无 sudo 权限 非 root 用户也适用)

    linux 服务器安装多版本 cuda (无 sudo 权限 非 root 用户也适用) 下载想要版本的 cuda toolkit 下载对应版本 cudnn 以 cuda 10.0 为例 每个用户修改自己home目录下的 /bashrc 文件 对于无 sudo 权限 或者 非 root 用户,在安装第一步中安装cuda的时候,将cuda toolkit的安装路径设置为自己有权限

    2024年02月10日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包