0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux系统用户权限详解

马哥Linux运维 ? 来源:CSDN技术社区 ? 2025-04-25 10:56 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Shell

Linux是一种开源的、基于Unix的操作系统,它因其灵活性、稳定性和高性能而广泛应用于服务器、嵌入式系统、超级计算机、桌面计算等领域。

Linux内核(Linux Kernel)是操作系统的核心,负责与硬件直接交互,为用户空间(应用程序和服务)提供资源管理和系统服务的接口

Linux内核(Linux Kernel)的主要职责:

?硬件抽象:将底层硬件资源(如CPU、内存、硬盘等)抽象成更易于使用的接口。

?资源管理:负责分配和管理CPU时间、内存空间、文件系统和其他资源。

?系统调用接口:提供一组API,供用户程序通过系统调用访问硬件或操作系统功能。

?设备驱动:管理各种硬件设备(如键盘、显示器、网络卡等)。

一般来说,我们用户是没有办法直接跟Linux内核(Linux Kernel)交互的,而是通过Shell来间接与Linux内核(Linux Kernel)交互的。

Shell是用户与内核之间的交互界面,是一种命令解释器(外壳程序)。它==将用户输入的命令翻译为内核可以理解的系统调用==,进而控制操作系统的行为。

主要作用:

?命令解析:解释并执行用户输入的命令(如文件操作、程序运行等)。

?脚本支持:可以运行编写好的 Shell 脚本,实现任务自动化。

?提供用户环境:允许用户执行程序、管理文件和配置系统。

类比于Windows操作系统,Windows GUI就是相当于Linux中的Shell,我们操作Windows并不是直接操作其内核,而是通过图形接口来完成各种操作。

用户权限

在Linux系统中,root用户普通用户是两类不同权限级别的用户,分别承担着系统管理和普通操作的角色。

?root用户:Linux系统中的超级管理员,拥有系统中所有资源的最高权限,可以执行任何操作。

?普通用户:系统中权限受限的用户,主要用于日常操作。

root用户的命令提示符是“#”,普通用户的命令提示符是“$”。

wKgZO2gK-qCAcv9YAAAHyv_iGiA507.png

切换用户

1. 从普通用户切换到root用户:

? 使用 su 命令:

su

输入 root 密码后切换。

注意,这里的切换直接是从当前目录切换到普通用户。

wKgZPGgK-rSAUe5QAAAIyA3EIck509.png


可以看到,root用户时的目录是LinuxCode,而切换到普通用户后目录依然是LinuxCode。

2. 从root用户切换到普通用户:

? 退出 root 用户:

exit

? 指定切换到某个普通用户:

su username

3.su -指令

su -指令在切换用户时就相当于重新登录,不会在原有的目录下切换。

? root 用户的默认目录:

/root

? 普通用户的默认目录:

/home/username

sudo

普通用户的权限是比较小的,可以执行的操作也较少,但有的时候是需要普通用户执行越权操作的,这个时候就要使用到sudo指令。

sudo(Superuser DO)是Linux和Unix系统中用于以root用户或其他特权用户身份执行命令的工具。它允许普通用户在不直接登录root用户的情况下临时提升权限,从而减少误操作的风险并提高系统安全性。

正常来说,普通用户想要使用sudo还需要将该普通用户加入到白名单中,具体的配置文件在/etc/sudoers,我们可以用 vim 打开然后将普通用户加入白名单。

vim /etc/sudoers

wKgZO2gK-t6ABRX1AAAJXdSVD7o520.png


(演示环境为Ubuntu 20.04.6)

使用示例:

sudo apt update

系统会提示输入当前用户的密码(而不是root用户的密码),然后以root权限执行命令。

文件与目录权限

访问者

Linux中的每个文件和目录的访问者主要由以下三部分组成:

1.用户(Owner):文件或目录的拥有者。

2.用户组(Group):一组用户,可以共享文件或目录的权限。

3.其他人(Others):除了文件拥有者和用户组之外的其他用户。

权限表示

Linux使用rwx模式表示权限:

1.r(read:读取权限。

? 对文件:可以查看内容。

? 对目录:可以列出目录内容。

2.w(write:写入权限。

? 对文件:可以修改内容。

? 对目录:可以创建、删除或重命名目录内的文件。

3.x(execute):执行权限。

? 对文件:可以作为程序运行。

? 对目录:可以进入该目录。

每个文件的权限用 10 个字符表示,例如:

-rwxr-xr--

第一个字符文件类型

?-表示普通文件

?d表示目录

?l表示符号链接

?b表示块设备文件(例如硬盘、光驱等)

?p表示管道文件

?c表示字符设备文件(例如屏幕等串口设备)

?s表示套接口文件

接下来的 9 个字符:分为三组(用户、用户组、其他人)。

? 用户(Owner):rwx表示可读、可写、可执行

? 用户组(Group):r-x表示可读、不可写、可执行

? 其他人(Others):r--表示可读、不可写、不可执行

文件的权限还可以使用八进制二进制表示:

权限 八进制 二进制
rwx 7 111
rw- 6 110
r-w 5 101
r– 4 100
-wr 3 011
-w- 2 010
–x 1 001
0 000

使用ls -l(ll) 指令来查看文件和目录的权限:

ls -l

输出示例:

-rw-r--r-- 1user group 1234Dec 110:00file.txt

?-rw-r--r--:权限位。

?user:文件拥有者。

?group:文件所属的用户组。

wKgZPGgK-wWAIhMHAAAYYeLcQZo025.png

修改权限

1.chmod命令:用于修改文件或目录的权限。

? 符号模式:

chmod u+x file.txt # 给拥有者增加执行权限
chmod g-w file.txt # 去掉用户组的写权限
chmod o+r file.txt # 给其他用户增加读取权限
chmod o=r filename # 设置其他用户的权限为只读(覆盖其他权限)

? 数字模式(每种权限对应一个数字):

?r= 4

?w= 2

?x= 1

? 无权限 = 0

? 权限组合:rwx= 7,rw-= 6,r--= 4 等。

chmod754file.txt # 设置权限为 rwxr-xr--

?-R递归修改权限:

//对目录及其子目录和文件修改权限
chmod -R755/path/to/directory

2.chown命令 和chgrp:修改文件的拥有者和用户组。

chown user file.txt     # 更改文件拥有者
chgrp group file.txt    # 更改文件用户组
chown user:group file.txt  # 更改文件拥有者和用户组

?-R递归修改:

chown -R user:group /path/to/directory

umask

umask(User File Creation Mode Mask)是一个用于设置文件和目录的默认权限的命令或配置。它定义了新创建的文件或目录的权限屏蔽位,从而控制默认权限的初始值。

1.文件和目录的默认权限

? 在Linux中,新创建的文件和目录的权限基于以下默认值:

?文件:666(可读写,无执行权限)。

?目录:777(可读写执行)。

? 然而,这些默认权限会被umask所屏蔽,最终权限是:

最终权限 = 默认权限 - umask

2.umask的表示形式

umask 的值通常有4位,但第一位的 0 表示特殊权限,不用理会,所以可将其视为3位八进制数字,每一位分别表示权限屏蔽:

?第一位:用户(Owner)。

?第二位:用户组(Group)。

?第三位:其他人(Others)。

屏蔽规则:

? 4:屏蔽读取权限(r)。

? 2:屏蔽写入权限(w)。

? 1:屏蔽执行权限(x)。

? 0:不屏蔽任何权限。

比如,umask的值为 0002,表示对其他人的写入权限(w)进行屏蔽;0033表示对用户组和其他人的写入权限(w)和执行权限(x)进行屏蔽。

3.查看和设置 umask

查看当前 umask 值:

umask

wKgZPGgK-yKAKJpkAAAHzfBlmKw564.png


设置umask:

umask0xxx  //将umask码设置成0xxx

目录权限

在Linux系统中,目录权限(Directory Permissions)决定了用户对目录的访问和操作能力。目录的权限与文件的权限类似,但其具体作用略有不同,因为目录主要用于组织文件,而不是直接存储内容。

读权限(r,read)

? 允许查看目录下的文件和子目录列表。

? ==没有执行权限==时,无法进入目录,即使有读权限也无法查看目录内容。

写权限(w,write)

? 允许在目录内进行写操作,包括:

? 创建新文件或目录。

? 删除或重命名文件/子目录。

? ==需要执行权限配合==才能生效。

执行权限(x,execute)

? 允许进入目录。

? 没有读权限时,可以进入目录但无法列出内容。

粘滞位

粘滞位(Sticky Bit)是 Linux 和 Unix 系统中的一种特殊权限,主要用于目录权限管理。它==确保目录内的文件只能由文件的所有者或具有管理员权限的用户删除或修改==,即使目录本身的写权限对其他用户开放。

1.粘滞位的作用

在常规权限设置下,==如果一个用户对目录有写权限,就可以删除或修改该目录中的任何文件,而不管这些文件是否属于自己==。粘滞位的作用是限制这种行为,提供更精细的权限控制:

? 只有文件的所有者、目录的所有者或超级用户(root)才能删除或修改文件。

? 其他用户即使对目录有写权限,也不能删除或修改非自己创建的文件。

2.粘滞位的典型使用场景

? 公共目录:

? 如/tmp目录,所有用户都可以在其中创建文件,但不能随意删除其他用户的文件。

? /tmp 的权限通常设置为:

drwxrwxrwt # 注意最后的 t 表示启用了粘滞位

? 协作环境:

? 共享目录中,不同用户可以创建自己的文件,但不能影响其他用户的文件。

3.查看和设置粘滞位

使用ls -ld命令可以查看目录的权限状态:

ls -ld directory_name

示例输出:

wKgZPGgK-zSAcXSmAAALKgNeWGE830.png

? 最后一位的t表示该目录启用了粘滞位。

?rwxrwxr-是基本权限(用户、组、其他用户)。

使用chmod命令可以设置或移除粘滞位。

//添加粘滞位
chmod +t directory
chmod1775directory  //粘滞位对应的八进制值是 1000

//移除粘滞位
chmod -t directory
chmod0775directory

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式系统
    +关注

    关注

    41

    文章

    3686

    浏览量

    131599
  • Linux
    +关注

    关注

    87

    文章

    11522

    浏览量

    214291
  • 操作系统
    +关注

    关注

    37

    文章

    7173

    浏览量

    125877
  • Shell
    +关注

    关注

    1

    文章

    372

    浏览量

    24272

原文标题:【Linux系统】权力与优雅:Linux 权限的隐秘诗篇

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    LINUX修改文件权限

    本帖最后由 Stark扬 于 2018-9-28 16:56 编辑 用户权限在Windows操作系统里也不陌生,但是Linux操作系统
    发表于 09-26 13:58

    linux权限和指令

    /etc/sysctl.conf文件设置和更改其默认值;变量时实时的变更,有很多设置很象是开关,设置后马上生效;/bin——目录又称为二进制目录,包含了那些供系统管理员和普通用户使用的重要linux命令
    发表于 07-04 06:58

    Linux如何修改用户权限

    迅为IMX6ULL开发板-Linux用户权限
    发表于 12-29 06:18

    Linux 中文件权限管理的探讨

    Linux 是一种多用户的操作系统,其文件权限管理在文件管理中占有重要的地位。为了更好地把握Linux 的文件
    发表于 06-11 09:37 ?11次下载

    浅谈Linux权限管理的ACL权限

    Linux权限管理是Linux很重要的一项内容,重则引起用户信息泄露,轻则导致文件错乱和丢失。企业服务器里有些目录下面的东西暂时保密,不希望别人可以进入目录并查看。有些文件希望别人可以
    的头像 发表于 08-18 11:13 ?9270次阅读

    Linux进程权限的分析说明

     在linux下,关于文件权限,大部分人接触比较多,也比较熟悉了解。但是对进程权限一般知之甚少。本文总结一下linux系统下进程
    发表于 07-17 10:55 ?996次阅读

    Linux基础的用户权限

    sudo是一种权限管理机制,其权限管理记录在/etc/sudoers文件中,约定普通用户可以以管理员的身份执行命令。
    的头像 发表于 02-15 11:08 ?997次阅读

    Linux系统如何修改文件属性与权限

    我们已经深入学习了Linux系统用户用户组的基本概念。每个文件和目录都具有“所属用户”和“所属用户
    的头像 发表于 05-12 15:29 ?2913次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>系统</b>如何修改文件属性与<b class='flag-5'>权限</b>

    linux文件访问权限怎么设置

    Linux 文件访问权限是操作系统中一个非常重要的概念。正确地设置文件访问权限可以保护系统的安全性,防止未经授权的人员对文件进行修改、删除或
    的头像 发表于 11-23 10:20 ?2183次阅读

    Linux把目录权限给指定用户

    Linux是一个开放源代码的操作系统,它基于Unix的设计原则,提供了丰富的权限管理功能,允许用户系统中的文件和目录进行精确的控制。在
    的头像 发表于 11-23 10:30 ?9456次阅读

    详解Linux中的权限控制

    本章将和大家分享Linux中的权限控制。废话不多说,下面我们直接进入主题。
    的头像 发表于 08-05 15:32 ?1057次阅读
    <b class='flag-5'>详解</b><b class='flag-5'>Linux</b>中的<b class='flag-5'>权限</b>控制

    Linux用户身份与进程权限详解

    在学习 Linux 系统权限相关的主题时,我们首先关注的基本都是文件的 ugo 权限。ugo 权限信息是文件的属性,它指明了
    的头像 发表于 10-23 11:41 ?799次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>用户</b>身份与进程<b class='flag-5'>权限</b><b class='flag-5'>详解</b>

    Linux文件权限详解

    权限的意义在于允许某一个用户或某个用户组以规定的方式去访问某个文件。
    的头像 发表于 11-01 09:45 ?702次阅读

    linux权限管理详解

    权限:在计算机系统中,权限是指某个计算机用户具有使用软件资源的权利。
    的头像 发表于 12-25 09:43 ?652次阅读

    Linux权限管理基础入门

    Linux的广阔天空中,权限管理犹如一只翱翔的雄鹰,掌控着系统的安全与秩序。掌握Linux权限,不仅能让你的
    的头像 发表于 05-06 13:44 ?292次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>权限</b>管理基础入门