Linux·文件权限与文件类型

一、 文件权限的概念

1.Linux下用户分类

Linux下有两种用户:超级用户(root)、普通用户。

  • 超级用户:可以再linux系统下做任何事情,不受限制
  • 普通用户:在linux下做有限的事情。
  • 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。

命令:su [用户名]
功能:切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su
root(root可以省略),此时系统会提示输入root用户的口令。

2.权限概念

权限是操作系统用来限制对资源访问的机制,权限一般分为读、写、执行。系统中的每个文件都拥有特定的权限、所属用户及所属组,通过这样的机制来限制哪些用户、哪些组可以对特定文件进行什么样操作。

在Linux下一切皆文件

二、 Linux权限管理

1.文件访问者的分类(人)

  • 文件和文件目录的所有者:u—User
  • 文件和文件目录的所有者所在的组的用户:g—Group
  • 其它用户:o—Others

2.文件类型和访问权限(事物属性)

文件类型和访问权限

① 文件类型

简称文件类型
d文件夹
-普通文件
l软链接(类似Windows的快捷方式)
b块设备文件(例如硬盘、光驱等)
p管道文件
c字符设备文件(例如屏幕等串口设备)
s套接口文件

② 基本权限

  1. 读(r):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  2. 写(w):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
  3. 执行(x):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
  4. “—”表示不具有该项权限
权限符号说明八进制二进制
r–只读4100
-w-仅可写2010
–x仅可执行1001
rw-可读可写6110
r-x可读可执行5101
-wx可写可执行3011
rwx可读可写可执行7111
无权限0000

3. 所属组是什么

文件所属组用于帮助文件所有者管理文件的访问权限。每个文件都关联着一个用户组,组中的所有成员都可以根据文件设置的组权限来访问文件

4.为什么要有所属组

①用户分组

用户组是一种将用户分类的方法,组中的用户可以共享文件权限。这对于团队协作、项目开发或服务管理非常有用。

例如,一个开发团队可以拥有一个共同的组,组内的每个成员都可以访问特定项目的文件,而不需要单独为每个用户设置权限。

②提高安全性

通过将文件的权限限制在特定的组内,系统管理员可以减少不必要的权限暴露,避免非授权用户访问敏感文件。这种方式有效地提升了系统的整体安全性。

③简化权限管理

当需要为多个用户赋予同样的权限时,通过将这些用户添加到一个组,并设置文件的组权限,可以大大简化权限管理的过程。避免逐一配置每个用户的权限。

④所属组的创建与管理

groupadd命令

创建组群
groupadd GroupName

groupdel命令

删除组

参数作用
-f组内存在用户时,强制删除

groupdel GroupName
强制删除Group组
groupdel -f GroupName

gpasswd命令

在附属组中增加、删除用户,只有root用户和组管理员可以使用

参数作用
-a把用户加入组
-d把用户从组中删除
-r取消组的密码
-A给组指派管理员

把User用户添加进Group组
gpasswd -a User Group
把User用户从Group组中删除
gpasswd -d User Group

5.默认权限

在 Linux 系统中,文件和目录的默认权限是通过 umask 命令来确定的。umask 是一个值,用于定义创建新文件或目录时的默认权限掩码。

  • 普通文件的默认权限为 666
  • 目录文件的默认权限为777

但是在日常使用中,我们所创建的目录文件和普通文件都与上述不同,这是由于umask掩码的存在,系统会应用权限掩码来减去默认权限的某些部分。

最终权限 = 默认权限 & umask
默认权限值与umask进行按位与运算

一般情况下linux系统的默认权限掩码为0002,可以通过umask命令查看权限掩码,umask 后跟三位八进制的数字来改变系统默认的权限掩码。

$ umask
0002
$ touch test.c
$ mkdir test
$ ll
drwxrwxr-x 2 c  c  4096 Aug 30 15:46 test
-rw-rw-r-- 1 c  c     0 Aug 30 15:45 test.c
$ umask 003
$ mkdir test_change
$ touch test_change.c
$ ll
drwxrwxr-x 2 c  c  4096 Aug 30 15:46 test
-rw-rw-r-- 1 c  c     0 Aug 30 15:45 test.c
drwxrwxr-- 2 c  c  4096 Aug 30 15:48 test_change
-rw-rw-r-- 1 c  c     0 Aug 30 15:48 test_change.c

可以看到修改umask值后,创建文件的默认权限发生更改

6.文件权限的设置

chmod

修改文件或者目录的权限
将文件Name权限改为rwxrwxrwx
chmod 777 Name( 使用数字表示法修改权限)
将文件Name权限改为rwxr-xrw-
chmod rwxr-xrw- Name(使用文字表示法修改权限)

chown

文件或者文件夹属主及属组的修改
将Name文件属主改为User
chown User Name
将Name文件属主改为User、属组改为Group
chown User.Group Name
chown User:Group Name(可用. 也可用:)
将Name文件下所有的目录及文件的属主改为User
chown -R User Name

chgrp

修改文件属组
charp User Group(将文件User属组改为Group)

三、目录权限与粘滞键

1.目录权限

用户查看目录的文件列表需要 r 权限
用户在目录下新建文件需要 w 权限
用户进入一个目录需要 x 权限

  • 一个文件一定是属于一个目录的,一个文件的属性能不能查看,是由目录的权限决定的
  • 一个文件一定是属于一个目录的,一个文件能不能被删除,是由目录的权限和对应用户是否拥有w权限决定的
drwx---r-- 2 root root 4096 Aug 29 20:32 testdir
[c@mix test]$ ll testdir
ls: cannot access testdir/test3.c: Permission denied
ls: cannot access testdir/test5.c: Permission denied
ls: cannot access testdir/test1.c: Permission denied
ls: cannot access testdir/test2.c: Permission denied
ls: cannot access testdir/test4.c: Permission denied
total 0
-????????? ? ? ? ?            ? test1.c
-????????? ? ? ? ?            ? test2.c
-????????? ? ? ? ?            ? test3.c
-????????? ? ? ? ?            ? test4.c
-????????? ? ? ? ?            ? test5.c
//当用户只拥有某目录的`r`权限时,用户只能查看此中的文件名列表,不能查看文件的属性
//此时用户为other用户

2.粘滞键

在 Linux 系统中,粘滞位(Sticky Bit)是一种文件权限位,用于目录中的文件和子目录管理。它最常用于公共目录,如 /tmp,以防止用户删除或修改其他用户的文件。粘滞位有助于更好地管理和保护多用户环境中的共享资源。
粘滞位设置在一个目录上时,该目录中的文件或子目录只能由以下几类用户删除或重命名:

  • 文件的所有者:创建该文件的用户。
  • 目录的所有者:拥有该目录的用户。
  • 超级用户(root):系统管理员。

其他用户,即使在该目录中有写权限,也无法删除或重命名他们不拥有的文件。这在共享目录中非常有用,可以防止用户误删除或恶意删除他人的文件。
设置粘滞位:

使用 chmod 命令来设置和移除粘滞位。
例如,要为 /shared 目录设置粘滞位:
chmod +t /shared
可以使用 chmod 命令来移除粘滞位:
chmod -t /shared

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值