Linux:权限的理解

目录

引言:为何Linux需要权限?

一、用户分类与切换

1.1、用户角色

1.2、用户切换命令

二、权限的基础概念

2.1、文件属性

三、权限的管理指令

3.1、chmod:修改文件权限

3.2、chown与chgro:修改拥有者与所属组

四、粘滞位与umask

4.1、问题1:起始权限问题

 4.2、关于目录权限


引言:为何Linux需要权限?

想象一下,你的私人日记被陌生人随意修改,或是公司服务器上的关键数据被误删——这类风险在Linux系统中通过权限机制得以有效防范。
作为多用户操作系统的核心安全特性,Linux权限不仅保护用户隐私,还确保系统稳定性。本文将带你深入理解权限管理的每个细节。


一、用户分类与切换

Linux中,不同用户有着不同的权限。所以在讲解权限之前,先了解用户概念:

1.1、用户角色

  • 超级用户(root):

        权限最高,可执行任何操作(如修改系统文件、管理用户)

        类似windows的管理员,但权限比它更大。

  • 普通用户:

        Linux中除了root用户,其他都是普通用户。

        普通用户受权限约束,操作受限。

1.2、用户切换命令

  • su + 用户名 :切换用户身份(需要输入目标用户密码)    
  • exit或ctrl+D:退回原用户    

  • sudo命令:临时以root权限执行命令(需当前用户密码)
sudo apt update  # 普通用户临时提权更新系统

不过目前我们用adduser新建的用户,没有办法执行sudo,因为系统不信任你。除非将普通用户添加到系统的白名单里。普通用户需被添加到/etc/sudoers文件才可使用。

userA ALL=(ALL:ALL) ALL   # 允许userA使用sudo执行所有命令

二、权限的基础概念

2.1、文件属性

一个文件创建出来无非就是读/写,有些文件还可执行。

而每个文件/目录的权限由三组角色控制:

  • 拥有者(Owner):文件创建者,拥有最高控制权。

  • 所属组(Group):共享权限的用户组(如开发团队)。

  • 其他人(Others):系统内其他所有用户。

文件类型:
d:文件夹

-:普通文件(文本文件,二进制文件等)

l:软链接(类似Windows的快捷方式)

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

p:管道文件

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

s:套接口文件

  • 读(r)

    • 文件:查看内容(如cat test.txt)。

    • 目录:列出内容(如ls /dir)。

  • 写(w)

    • 文件:修改内容(如vim test.txt)。

    • 目录:创建或删除文件(需配合x权限)。

  • 执行(x)

    • 文件:运行脚本或程序(如./install.sh)。

    • 目录:进入目录(如cd /project)。

  • 无权限(-)

通过ll指令查看文件属性,下面有详细说明:

以上图test.txt为例说明:

  • test.txt:文件类型是普通文件,拥有者权限可读可写不可执行,所属组权限可读可写不可执行,其他人权限可读不可写不可执行

三、权限的管理指令

3.1、chmod:修改文件权限

符号模式:直观增删权限。

chmod u+rwx,g+rx,o-r test   # 拥有者加rwx,组加rx,其他人去r

  • u(user拥有者)、g(group所属组)、o(other其他)、a(所有角色)

数字模式(八进制):快速设置权限。

chmod 755 test   # rwxr-xr-x(7=4+2+1, 5=4+1)
  • r=4, w=2, x=1,按角色顺序组合。

3.2、chown与chgro:修改拥有者与所属组

修改拥有者与所属组

chown alice:developers test.txt   # 将文件拥有者设为alice,组设为developers

仅修改s所属组(需root权限):

sudo chgrp team /project/   # 将目录/project的组设为team

四、粘滞位与umask

4.1、问题1:起始权限问题

为什么我们创建普通文件的默认权限是:664,目录文件的默认权限是:775   ???

补充知识:
1、默认给普通文件的起始权限其实是666

2、默认给目录文件的起始权限其实是777

3、权限掩码(umask):凡是在umask中出现的权限,不会再最终的文件权限中出现,默认权限掩码是0002

4、最终权限 = 起始权限 & (~umask)


 4.2、关于目录权限

对于目录文件:
r:
是否允许我们查看指定目录下的文件内容

w:是否允许我们在当前目录下进行创建、更改、删除

x:是否允许用户进入对应的目录

mkdir demo
chmod 300 demo     # 权限为-wx--x---(可进入但不可查看内容)
cd demo            # 允许进入(有x)
touch file.txt     # 失败!需目录的w权限

1、普通用户自己的家目录权限是700,这意味着我在我的家目录下创建的文件,别人都看不到

2、有时,我们多个用户想进行文件数据的共享。那么我们所建立的共享文件不能再任何一个人的家目录下

3、一个文件能否被删除,并不由文件本身决定,由这个文件所处的目录决定

4、如果我们去掉了共享文件目录的w权限,我们也无法创建文件,无法共享

5、粘滞位:给目录设置,一般是文件共享,大家可以在目录进行各自文件的增删查改,只允许文件拥有者或 root 能删这个文件,其他人一概不允许,t是一种特殊的x权限。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值