返回顶部
首页 > 资讯 > 操作系统 >怎样搞懂Linux权限体系
  • 245
分享到

怎样搞懂Linux权限体系

2023-06-15 21:06:15 245人浏览 泡泡鱼
摘要

这期内容当中小编将会给大家带来有关怎样搞懂linux权限体系,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。随着年龄的增加,我的经验越来越丰富,而记忆力却越来越差。为了应付繁重的日常事务,我不得不准备了长长

这期内容当中小编将会给大家带来有关怎样搞懂linux权限体系,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

随着年龄的增加,我的经验越来越丰富,而记忆力却越来越差。为了应付繁重的日常事务,我不得不准备了长长的任务清单。每一条事项的背后,都在不断的提醒我:无论生活中充满什么惊喜,还是逃离不了它平庸的本质。

而我对时间,会更加的敏感。每次一次敲击键盘,都会调动骨关节的扭动,留下一洗不可撤回的痕迹:windows的超级用户,名字叫做Administrator。这个单词太长了,我总也记不住。相对来说,linux的超级用户叫做root,只有四个字母。它的耗能值,比前者要低的多。

我们在第三小节,刚接触命令行的时候,就使用chmod命令,给普通文本文件,赋予了执行权限。本小节将看一下用户权限和文件权限这两个息息相关的概念,

1、添加用户

到现在为止,我们的系统中,还孤零零的只有这一个用户,是时候学学女娲,捏几个小泥人了。

首先创建两个用户:张三(zhang3)、李四(li4)。

[root@localhost ~]# useradd zhang3

查看下面命令的三个输出结果。

# 系统中多了一个叫做zhang3的组,group文件保存了系统的组信息 [root@localhost ~]# tail -n1 /etc/group zhang3:x:1000:  # 系统中多了一个叫做zhang3的用户,shadow文件保存了它们的密码。很多安全渗透就是为了拿到它进行暴力破解 [root@localhost ~]# tail -n1 /etc/shadow zhang3:!!:18207:0:99999:7:::  # home目录中,多了一个叫做zhang3的目录 [root@localhost ~]# ll /home --full-time total 0 drwx------. 2 zhang3 zhang3 83 2019-11-06 22:09:33.357165082 -0500 zhang3

接下来,给我们刚刚建立的用户,使用passwd设置一个密码。密码需要输入两次进行确认。如果想要更改密码,可以使用chpasswd命令。

[root@localhost ~]# passwd zhang3 Changing passWord for user zhang3. New password: BAD PASSWORD: The password is shorter than 8 characters Retype new password: passwd: all authentication tokens updated successfully.

那么如何删除一个现有的用户呢?这是通过userdel命令实现的。加上参数f,会在其他用户使用系统的时候,强制退出。

userdel -f zhang3

2、文件权限说明

从上面的命令执行结果中,我们发现了有两件非常有意思的东西。添加用户后,除了在密码文件shadow中增加了一些内容,同时还在group文件中添加了信息。这涉及到用户的两个属性:用户名,组名。

一个用户只有一个名称代号,但是可以有多个组。下面命令创建一个密码为123的用户li4,并给它追加一个叫做zhang3的组。可以看到/etc/group文件中的信息变更。

[root@localhost ~]# useradd  -G zhang3 -p 123 li4 [root@localhost ~]# tail -n 2 /etc/group zhang3:x:1000:li4 li4:x:1001:

好啦,接下来切换到我们的文件权限上面。为了进行下面命令的验证,我们首先创建一个名字叫confirm777.sh的脚本文件。为了让脚本对所有用户可见,我们把它创建在/tmp目录下。

cat > /tmp/confirm777.sh <<EOF echo $USER id EOF

使用ll命令查看文件信息。

[root@localhost ~]# ll /tmp/confirm777.sh --full-time -rw-r--r--. 1 root root 13 2019-11-07 04:25:55.418254935 -0500 confirm777.sh

怎样搞懂Linux权限体系

从ll的命令可以看出,文件的所有者是root用户,文件所属的组,也是root组,它的权限是rw-r--r--。文件权限分为三部分。

  • 所有者权限,缩写为u。文件的所有者所拥有的权限。也就是root用户的权限,是rw-

  • 组用户权限,缩写为g。文件所属组内所有用户的权限。因为root组内只有root一个用户,所以组用户权限是r--。

  • 其他用户权限,缩写为o。其他不相关用户的权限,比如我们刚创建的zhang3、li4用户,对文件的权限就是r--。

  • 全部,缩写为a,表示对上面三类用户集体操作。

那rw-这些东西是什么意思呢?

  • r 表示可读权限。read。

  • w 表示可写权限。write。

  • x 表示可执行权限。execute。

  • - 权限占位符,表示没有当前权限。

注意:一个用户拥有文件的w权限,并不代表就可以删除文件。w仅仅针对于文件内容来说的。

一个文件,有3类用户,每类用户,有3种权限。使用最简单的小学乘法,我们能够得出,一个文件的权限位,需要3x3=9个标志位表示。

我们的文件名称,叫做confirm777.sh,这个名字是随便起的么?当然不是,777在linux代表特殊的含义,它代表文件对所有用户具有可读、可写、可执行的权限。可以想象,如果每个文件都有这样的权限,系统将无安全可言。那这一串数字是怎么来的呢?可以看下面的对照表。

  • r 4 读

  • w 2 写

  • x 1 执行

对以上三个属性进行任意组合,可以得到:

  • 4 r-- 4+0+0

  • 6 rw- 4+2+0

  • 5 r-x 4+0+1

  • 2 -w- 0+2+0

  • 3 -wx 0+2+1

  • 1 --x 0+0+1

  • 7 rwx 4+2+1

3、文件权限更改

下面介绍三个文件权限相关的命令。一般常用的,就是chown和chmod。

chown 更改文件的所有者。chgrp 更改文件的组。chmod 更改文件权限。

接下来,我们把confirm777.sh的所有者和组,修改成刚刚创建的用户zhang3。

cd /tmp [root@localhost tmp]# chown zhang3:zhang3 confirm777.sh [root@localhost tmp]# ll confirm777.sh -rw-r--r--. 1 zhang3 zhang3 13 Nov  7 04:25 confirm777.sh

给文件所有者增加执行权限。然后分别切换到zhang3,li4用户执行一下。

通过su 命令,可以切换到其他用户,一般使用su -进行环境变量的清理;而命令id,能够看到当前正在执行的用户信息。

[root@localhost tmp]# chmod u+x confirm777.sh [root@localhost tmp]# su li4 [li4@localhost tmp]$ ./confirm777.sh bash: ./confirm777.sh: Permission denied [li4@localhost tmp]$ exit exit  [root@localhost tmp]# su zhang3 [zhang3@localhost tmp]$ ./confirm777.sh root uid=1000(zhang3) gid=1000(zhang3) groups=1000(zhang3) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

可以看到,文件所有者zhang3可以执行文件,但不相关的li4,提示没有权限。接下来,我们验证用户组相关的权限位。

# 去掉zhang3的执行权限 root@localhost tmp]# chmod u-x confirm777.sh [root@localhost tmp]# ll confirm777.sh -rw-r--r--. 1 zhang3 zhang3 13 Nov  7 04:25 confirm777.sh  # 增加zhang3组的执行权限,由于li4在zhang3组里,它拥有权限 [root@localhost tmp]# chmod g+x confirm777.sh [root@localhost tmp]# ll confirm777.sh -rw-r-xr--. 1 zhang3 zhang3 13 Nov  7 04:25 confirm777.sh  # 切换到zhang3进行执行 [root@localhost tmp]# su - zhang3 [zhang3@localhost tmp]$ ./confirm777.sh bash: ./confirm777.sh: Permission denied [zhang3@localhost tmp]$ exit exit  # 切换到li4进行执行 [root@localhost tmp]# su - li4 [li4@localhost tmp]$ ./confirm777.sh root uid=1001(li4) gid=1001(li4) groups=1001(li4),1000(zhang3) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

从命令的执行结果可以看出。这次,li4能够执行文件,相反的,zhang3却不能。

我们使用chmod命令来修改文件权限,使用的是类似于a+x这样的英文字母。拿第一个脚本来说,初始的权限是rw-r--r--,也就是644,在这种情况下,下面的两个脚本等效。

chmod u+x confirm777.sh chmod 744 confirm777.sh

可以看到,第二个命令,使用的是数字样式的权限位,多了一步人脑转换过程。这在日常的使用中,是非常不方便的。所以,使用符号法的表示方式,能够更加直观,非常推荐。

怎样搞懂Linux权限体系

为了更直观的表现这个过程,我专门制作了一张图。

4、目录权限

这里有一个非常有意思的地方。把文件设置成可执行,可以把普通文件变成脚本,目录文件的可执行权限是什么鬼?有什么意义?对文件夹来说:

  • r 表示允许读取目录中的文件名,但不能进入该目录

  • w 表示允许用户修改目录,可以创建、迁移、删除、更名目录下的文件

  • x 可以获得目录下文件的列表,以及进入目录,执行cd命令

关于r和x的区别,可以看下面的命令结果,仔细感受一下它们的区别。一般的,几乎所有的目录,都拥有执行权限,不要随意对其进行设置。

[root@localhost tmp]# su - li4 [li4@localhost ~]$ cd /tmp  [li4@localhost tmp]$ mkdir nox [li4@localhost tmp]$ touch nox/{a,b,c,d} [li4@localhost tmp]$ chmod a-x nox [li4@localhost tmp]$ ls nox ls: cannot access nox/a: Permission denied ls: cannot access nox/b: Permission denied ls: cannot access nox/c: Permission denied ls: cannot access nox/d: Permission denied a  b  c  d [li4@localhost tmp]$ cat nox/a cat: nox/a: Permission denied  [li4@localhost tmp]$ chmod a+x nox [li4@localhost tmp]$ chmod a-r nox [li4@localhost tmp]$ ls nox ls: cannot open directory nox: Permission denied

5、sticky bit

接下来,我们介绍一个比较烧脑的粘贴位。

假如你要删除一个文件,你可以没有这个文件的写权限,但是你必须要拥有这个文件上级目录的写权限。如何创建一个目录,可以让任何人些人文件,但是又不能删除其他用户的文件?这就是stick  bit的作用。粘贴位一般只用于目录上,对文件来说并没有什么用处。粘贴位一般使用t表示。

我们可以看一个典型的目录/tmp

[root@localhost tmp]#  ls -dl /tmp drwxrwxrwt. 9 root root 4096 Nov  7 06:27 /tmp

怎样搞懂Linux权限体系

可以看到,最后一位,显示的是t,而不是x,意思是普通用户不能删除其他用户的文件。所有用户在/tmp目录中,都可以随意创建文件,但是却删除不了其他人的文件,即使文件的权限是777。

[root@localhost tmp]# touch /tmp/stick [root@localhost tmp]# chown li4:li4 /tmp/stick [root@localhost tmp]# chmod 777 /tmp/stick [root@localhost tmp]# su - zhang3 [zhang3@localhost ~]$ rm /tmp/stick rm: cannot remove &lsquo;/tmp/stick&rsquo;: Operation not permitted

6、小结

本小节创建了两个用户zhang3和li4,并拿它们测试了chown和chmod命令,最后介绍了粘贴位。linux比较安全的原因,就是因为有比较详尽的权限划分。但权限是枚双刃剑,超权用户一个命令就可以搞垮系统,许多隐藏的木马,通过提权运行在不为人知的地方。

权限相关的几个命令会经常被使用,下面举几个例子。

# 设置/var/lib/mysql的用户和组为Mysql chown -R mysql:mysql /var/lib/mysql  # 设置目录可读可写,能够上传文件 chmod  777 /var/www/uploads  # 增加本目录下所有sh的执行权限 chomd a+x *.sh  # 变更file为可读可写可执行 chmod u=rwx,g=rwx,o=rwx file

7、思考&扩展

下面这个命令,执行以后,会发生什么情况?警告:不要执行,哪怕把000改成其他数字。

# R遍历子目录的意思 chmod -R 000 /

有一天,我看到一个命令chmod u+s file,文中并没有介绍s是什么意思,这是什么意思?

如何删除一个用户的组?

EndLinux系统的命令是十分枯燥的。本系列不知不觉已经持续了8个周。和预想的一样,它并未取得广泛的欢迎,从它和其他文章迥然的阅读量就可以看出--标题就让人失去了点击的欲望。

技术类文章完全不同于扯淡型的天马行空,耗费的精力也是巨大的,尤其对我一个对正确性有强迫症的人来说。有时候,我会产生迷茫。不知道这依靠兴趣支撑的输出,能够持续多久。

能够翻到结尾,翻到这里的朋友,xjjdog非常感谢。还有几篇就要结束了,加上以前关于Linux的一些文章,已经可以成为一个体系了。如果你跟踪至此,至少已经可以在平常的工作中游刃有余了。

xjjdog接下来会找一些让人欢迎的主题,而不是这么枯燥的知识点。毕竟,有的时候,人家毕竟还是个可爱的女孩纸嘛。

上述就是小编为大家分享的怎样搞懂Linux权限体系了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网操作系统频道。

--结束END--

本文标题: 怎样搞懂Linux权限体系

本文链接: https://lsjlt.com/news/281620.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎样搞懂Linux权限体系
    这期内容当中小编将会给大家带来有关怎样搞懂Linux权限体系,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。随着年龄的增加,我的经验越来越丰富,而记忆力却越来越差。为了应付繁重的日常事务,我不得不准备了长长...
    99+
    2023-06-15
  • Linux系统是怎样修改root权限
    Linux系统是怎样修改root权限,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。root是Linux系统中的超级用户,对于Linux初学者来说最重要的一个知识点就是root权...
    99+
    2023-06-28
  • 怎样进行Linux文件权限授权
    怎样进行Linux文件权限授权,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Linux系统每个用户都用不同的权限,对于文件或者目录来说也有不同的权限,针对不同的群组设置不同...
    99+
    2023-06-28
  • Linux怎样修改文件权限
    小编今天带大家了解Linux怎样修改文件权限,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“Linux怎样修改文件权限”的知识吧。Li...
    99+
    2023-06-28
  • 怎么搞懂Linux内存管理
    今天就跟大家聊聊有关怎么搞懂Linux内存管理,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。内存管理应该是Linux内核中非常重要的子系统,之前一直在构思怎么去写一篇Linux内存管...
    99+
    2023-06-16
  • 怎样介绍Linux chmod目录权限
    这期内容当中小编将会给大家带来有关怎样介绍Linux chmod目录权限,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的...
    99+
    2023-06-05
  • linux系统权限怎么配置
    Linux系统的权限配置是通过文件权限和用户权限来实现的。1. 文件权限:- 文件权限包括读(r)、写(w)和执行(x)权限。- 使...
    99+
    2023-10-11
    linux
  • linux系统chmod 755权限
    chmod 755意味着你给文件或目录设置了以下权限:- 所有者(Owner)具有读、写和执行权限- 所有者所在的组(Group)具...
    99+
    2023-09-28
    linux
  • Linux系统777权限怎么理解
    Linux系统777权限怎么理解,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Linux系统中的777权限是什么意思?Linux系统赋予文件权限有两种方式:一是...
    99+
    2023-06-28
  • Linux目录权限具体都有哪些
    Linux目录权限具体都有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。目录的读权限位意味着可以列出其中的内容。写权限位意味着可以在该目录中创建文件,执行权限位则意味着搜索...
    99+
    2023-06-16
  • Linux系统怎么修改文件权限
    小编今天带大家了解Linux系统怎么修改文件权限,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“Linux系统怎么修改文件权限”的知识...
    99+
    2023-06-28
  • Linux系统文件的默认权限和特殊权限
    默认权限 umask [root@CentOS7 data]# touch file1 ; ll file1 -rw-r--r--. 1 root root 0 Oct 9 13:55 file1 [root@Cen...
    99+
    2022-06-04
    linux 默认权限 linux 特殊权限
  • gg怎样获得root权限,gg怎么获得root权限
    gg修改器怎样获得root权限 gg修改器获得root权限的方法如下: 1、打开下载gg修改器。 2、接下来点击设置,选择应用。 3、接着点击权限管理。 4、然后选择gg修改器。 5、接着点击下方的更多权限。 6、最后开启所有...
    99+
    2023-09-12
    前端 服务器 linux Powered by 金山文档
  • Linux系统修改文件权限的具体方法是什么
    Linux系统修改文件权限的具体方法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Linux系统中一切皆为文件,所以文件的管理非常重要,每一个文件都有特定...
    99+
    2023-06-28
  • Discuz权限设置实操指南:轻松规划用户权限体系
    【Discuz权限设置实操指南:轻松规划用户权限体系,需要具体代码示例】 在现今互联网时代,网站作为各种信息传播和交流的主要场所,严谨的权限体系管理显得尤为重要。Discuz作为一款功...
    99+
    2024-03-10
    操作指南 用户权限 规划体系
  • Linux系统中怎么设置文件权限
    Linux系统中怎么设置文件权限,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.读 &mdash; 允许该分组读文件(用r表示)2.写 &mdash; 允...
    99+
    2023-06-12
  • Linux中怎么设置文件系统权限
    本篇文章给大家分享的是有关Linux中怎么设置文件系统权限,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。  一、锁定系统重要文件  系统运维人员有时候可能会遇到通过root用户...
    99+
    2023-06-13
  • Linux系统的文件权限怎么设置
    今天小编给大家分享一下Linux系统的文件权限怎么设置的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、文件类型共七种:d&...
    99+
    2023-06-28
  • linux系统中怎么修改文件权限
    这篇文章给大家介绍linux系统中怎么修改文件权限,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。文件或目录的访问...
    99+
    2023-06-28
  • Linux系统中怎么查看用户权限
    这篇文章主要为大家分析了Linux系统中怎么查看用户权限的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux系统中怎么查看用户权限”的知识吧。Linux...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作