返回顶部
首页 > 资讯 > 操作系统 >Linux如何分配特殊的文件权限
  • 335
分享到

Linux如何分配特殊的文件权限

2023-06-27 19:06:39 335人浏览 八月长安
摘要

今天小编给大家分享一下linux如何分配特殊的文件权限的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在 Linux 上查看文

今天小编给大家分享一下linux如何分配特殊的文件权限的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

Linux如何分配特殊的文件权限

在 Linux 上查看文件权限时,有时你会看到的不仅仅是普通的 r、w、x 和- 。除了在所有者、组和其他中看到 rwx 之外,你可能会看到 s 或者 t,如下例所示:

drwxrwsrwt

要进一步明确的方法之一是使用 stat 命令查看权限。stat 的第四行输出以八进制和字符串格式显示文件权限:

$ stat /var/mail File: /var/mail Size: 4096            Blocks: 8          io Block: 4096   directoryDevice: 801h/2049d      Inode: 1048833     Links: 2Access: (3777/drwxrwsrwt)  Uid: (    0/    root)   Gid: (    8/    mail)Access: 2019-05-21 19:23:15.769746004 -0400Modify: 2019-05-21 19:03:48.226656344 -0400Change: 2019-05-21 19:03:48.226656344 -0400Birth: -

这个输出提示我们,分配给文件权限的位数超过 9 位。事实上,有 12 位。这些额外的三位提供了一种分配超出通常的读、写和执行权限的方法 – 例如,3777(二进制 011111111111)表示使用了两个额外的设置。 该值的第一个1 (第二位)表示 SGID(设置 GID),为运行文件而赋予临时权限,或以该关联组的权限来使用目录。

011111111111

SGID 将正在使用该文件的用户作为该组成员之一而分配临时权限。 第二个 1(第三位)是“粘连”位。它确保只有文件的所有者能够删除或重命名该文件或目录。

011111111111

如果权限是 7777 而不是 3777,我们知道 SUID(设置 UID)字段也已设置。

111111111111

SUID 将正在使用该文件的用户作为文件拥有者分配临时权限。

至于我们上面看到的/var/mail 目录,所有用户都需要访问,因此需要一些特殊值来提供它。

但现在让我们更进一步。 特殊权限位的一个常见用法是使用 passwd 之类的命令。如果查看/usr/bin/passwd 文件,你会注意到 SUID 位已设置,它允许你更改密码(以及 /etc/shadow 文件的内容),即使你是以普通(非特权)用户身份运行,并且对此文件没有读取或写入权限。当然,passwd 命令很聪明,不允许你更改其他人的密码,除非你是以 root 身份运行或使用 sudo。

$ ls -l /usr/bin/passwd-rwsr-xr-x 1 root root 63736 Mar 22 14:32 /usr/bin/passwd$ ls -l /etc/shadow-rw-r----- 1 root shadow 2195 Apr 22 10:46 /etc/shadow

现在,让我们看一下使用这些特殊权限可以做些什么。

如何分配特殊文件权限

与 Linux 命令行中的许多东西一样,你可以有不同的方法设置。 chmod 命令允许你以数字方式或使用字符表达式更改权限。

要以数字方式更改文件权限,你可以使用这样的命令来设置 SUID 和 SGID 位:

$ chmod 6775 tryme

或者你可以使用这样的命令:

$ chmod ug+s tryme

如果你要添加特殊权限的文件是脚本,你可能会对它不符合你的期望感到惊讶。这是一个非常简单的例子:

$ cat tryme#!/bin/bashecho I am $USER

即使设置了 SUID 和 SGID 位,并且 root 是文件所有者,运行脚本也不会产生你可能期望的 “I am root”。为什么?因为 Linux 会忽略脚本的 SUID 和 SGID 位。

$ ls -l tryme-rwsrwsrwt 1 root root 29 May 26 12:22 tryme$ ./trymeI am jdoe

另一方面,如果你对一个编译的程序之类进行类似的尝试,就像下面这个简单的 C 程序一样,你会看到不同的效果。在此示例程序中,我们提示用户输入文件名并创建它,并给文件写入权限。

#includeint main(){   FILE *fp;      char fName[20];   printf("Enter the name of file to be created: ");   scanf("%s",fName);      fp=fopen(fName,"w");      if(fp==NULL)   {       printf("File not created");       exit(0);   }   printf("File created successfully\n");   return 0;}

编译程序并运行该命令以使 root 用户成为所有者并设置所需权限后,你将看到它以预期的 root 权限运行 – 留下新创建的 root 为所有者的文件。当然,你必须具有 sudo 权限才能运行一些需要的命令。

$ cc -o mkfile mkfile.c

请注意,文件所有者是 root – 如果程序未以 root 权限运行,则不会发生这种情况。

权限字符串中不常见设置的位置(例如,rwsrwsrwt)可以帮助提醒我们每个位的含义。至少第一个 “s”(SUID) 位于所有者权限区域中,第二个 (SGID) 位于组权限区域中。为什么粘连位是 “t” 而不是 “s” 超出了我的理解。也许创造者想把它称为 “tacky bit”,但由于这个词的不太令人喜欢的第二个定义而改变了他们的想法。无论如何,额外的权限设置为 Linux 和其他 Unix 系统提供了许多额外的功能。

以上就是“Linux如何分配特殊的文件权限”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网操作系统频道。

--结束END--

本文标题: Linux如何分配特殊的文件权限

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

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

猜你喜欢
  • Linux如何分配特殊的文件权限
    今天小编给大家分享一下Linux如何分配特殊的文件权限的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在 Linux 上查看文...
    99+
    2023-06-27
  • 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 特殊权限
  • linux的3种特殊权限
    特殊权限分为3种,分别是:SUID:作用于用户;只能作用于可执行的二进制文件SGID:作用于所属组;只能作用于可执行的二进制文件Sticky:粘滞位。作用于其他人,只有自己才能删除自己的文件(root除外)用户通过程序(一般程序对所有人都是...
    99+
    2023-01-31
    权限 linux
  • linux的特殊权限有哪些
    linux中特殊权限有:1.SUID权限,让可执行文件以当前用户文件的所有者来执行;2.SGID权限,改变执行者的所属组;3.SBID权限,设置目录权限为777;linux中特殊权限有以下三种SUID权限linux中SUID权限的作用是让可...
    99+
    2024-04-02
  • Linux中特殊权限SUID SGID和SBIT的示例分析
    这篇文章主要介绍Linux中特殊权限SUID SGID和SBIT的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、SUID,就重要的作用就是让其它用户在执行这个授有SUID的程序时拥有该程序拥有者的权限。就...
    99+
    2023-06-12
  • linux如何改变文件的权限
    本文小编为大家详细介绍“linux如何改变文件的权限”,内容详细,步骤清晰,细节处理妥当,希望这篇“linux如何改变文件的权限”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。linux可以改变文件的权限。在lin...
    99+
    2023-07-02
  • Linux中如何删除特殊名字的文件
    小编给大家分享一下Linux中如何删除特殊名字的文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!linux文件命名规则在介绍之前,简单说明一下linux中文件命...
    99+
    2023-06-15
  • linux如何修改文件权限
    小编给大家分享一下linux如何修改文件权限,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!在linux中,可以利用chmod命令来修改文件权限,它是控制用户对文件的权限的命令,可以使用绝对模式(八进制数字模式)或符号模式来...
    99+
    2023-06-22
  • linux如何查看文件权限
    在Linux中,可以使用`ls -l`命令来查看文件权限。该命令会列出当前目录下所有文件和文件夹的详细信息,包括文件权限、所有者、所...
    99+
    2023-09-14
    linux
  • Linux文件权限的示例分析
    这篇文章主要介绍了Linux文件权限的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何...
    99+
    2023-06-27
  • Linux中文件权限目录权限的示例分析
    这篇文章主要介绍Linux中文件权限目录权限的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!linux中目录与文件权限的意义一、文件权限的意义r:可以读这个文件的具体内容;w:可以编辑这个文件的内容,包括增加...
    99+
    2023-06-09
  • Linux如何给文件权限?linux给文件添加可执行权限的技巧
    如果我们要运行这样的文件是需要单独给这个文件添加一个可执行的权限,该怎么给文件添加可执行文件呢?文件或目录的访问权限分为只读,只写和可执行三种。下面我们就来看看详细的操作过程。 登录Linux系统,新建一个终端 在终端中使...
    99+
    2022-06-04
    linux 给文件权限 可执行权限
  • Linux的文件权限与目录配置
    1、用户与用户组 举个例子:假设有一家人,家里只有三兄弟,分别是王大毛、王二毛、王三毛,而这个家庭是登记在王大毛名下,所以“王大毛家里有三个人,分别是王大毛、王二毛、王三毛”,而且这三个人都有自己的房间,并且共同拥有一间客厅。假如还有一...
    99+
    2023-09-12
    linux 运维 服务器
  • Linux中特殊权限SUID、SGID与SBIT的深入讲解
    前言 对于linux中文件或目录的权限,应该都知道普通的rwx权限(关于linux中rwx权限的看我的这篇博文http://www.cnblogs.com/javaee6/p/3994750.html)。我们先看看下面两...
    99+
    2022-06-04
    suid sgid 取消 suid sgid linux特殊权限详解
  • Linux下的特殊文件有哪些
    这篇文章跟大家分析一下“Linux下的特殊文件有哪些”。内容详细易懂,对“Linux下的特殊文件有哪些”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“Linux下的特殊文件有哪些”...
    99+
    2023-06-28
  • linux中文件权限与目录配置的示例分析
    这篇文章给大家分享的是有关linux中文件权限与目录配置的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。===一个简单的ls -al的例子:===-rw-r–r–....
    99+
    2023-06-13
  • 如何在Linux中设置文件权限
    今天就跟大家聊聊有关如何在Linux中设置文件权限,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 Linux中,每一个文件都具有特定的属性。主要包括文件类型和文件权限两个方...
    99+
    2023-06-13
  • Linux中如何处理文件夹权限
    小编给大家分享一下Linux中如何处理文件夹权限,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Linux下的文件权限r(read):可以读取文件的内容w(writ...
    99+
    2023-06-13
  • linux文件只读权限如何设置
    要将Linux文件设置为只读权限,可以使用chmod命令。下面是设置只读权限的方法:1. 使用绝对路径或相对路径进入到要设置权限的文...
    99+
    2023-09-28
    linux
  • linux如何给文件夹赋予权限
    在Linux中,可以使用chmod命令为文件夹赋予读、写、执行权限。要为文件夹赋予权限,可以使用以下命令格式:```bashchmo...
    99+
    2023-09-18
    linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作