首页 > 其他分享 >文件与权限

文件与权限

时间:2024-04-10 23:31:49浏览次数:21  
标签:文件 权限 75541 hecs exp txt mrc

链接:欢迎移步我的博客查看,因为网站不同原因,博客排版更好

1.文件基础

1.1.文件信息简介

使用ls -l指令查看当前目录下文件的详细属性
image.png

1.2.文件

  1. 文件构成
  • 文件 = 内容数据 + 属性数据
  1. 文件树
  • Linux文件系统是一个多叉树结构
  1. 隐藏文件
  • 文件名前带.的文件是隐藏文件,使用ls -a可以查看隐藏文件

image.png

  1. 文件类型
  • 在Linux系统下,文件后缀没有实质意义,操作系统并不认识文件后缀,但是某些软件需要识别文件后缀。使用ls -l指令查看文件类型。

文件类型标识符

  • d:目录
  • -:普通文件
  • p:管道文件
  • b:块设备—>磁盘设备
  • c:字符设备—>键盘或显示器

image.png

  1. 文件思想
  • 在Linux系统下,一切皆是文件。可执行程序不过就是一个文件,安装包是一个文件,一个软件也是一个文件,在Linux系统下能够设计的内容都是文件,所以文件操作的横跨面很广,文件操作符的运用面很广。

2.权限

权限: 权限是由用户和文件/目录属性共同决定的一个文件性质

2.1.用户

  1. Linux下用户有root用户(超级用户)和普通用户两种,两种用户具有不同的权限,切换用户的本质其实就是切换权限。
  • 使用su XXX语句切换用户
  • 使用su -语句切换到root用户
  • 切换到一个用户之后,键盘敲击ctrl+D可以回到上一用户
  1. root用户具有Linux系统的最高权限,凌驾于一切普通用户之上,被信任的用户可以使用sudo指令临时提升自己的权限(相当于让自己临时具有root用户的权限)
  2. 每个用户都有自己的家目录(工作目录)
  • 使用cd ~语句转到自己的家目录
  • 普通用户家目录在/home/XXX
  • root用户家目录在/root

[mrc@hecs-75541 4-10]$ pwd
/home/mrc/code/4-10
[mrc@hecs-75541 4-10]$ cd ~
[mrc@hecs-75541 ~]$ pwd
/home/mrc

2.2.创建/删除用户

  1. 创建用户
  • sudo useradd XXX创建新用户XXX
  • sudo passwd XXX为XXX设置密码
  1. 删除用户
  • sudo userdel XXX删除XXX用户
  • sudo userdel -r XXX删除用户同时删除用户工作目录

2.3.文件/目录的RWX权限

  1. 一个文件/目录默认拥有RWX权限
  2. 文件的RWX权限
  • r:读权限,能否读文件
  • w:写权限,能否修改文件
  • x:执行权限,能否执行文件,可执行文件拥有这个属性才有意义
  1. 目录的RWX权限
  • r:读权限,如果没有目录的读权限,就不能进入该目录(不能cd进入目录)
  • w:写权限,没有该权限,不能对目录下的文件/目录进行修改,也不能在该目录下新建/删除文件和目录
  • x:执行权限,目录是不能运行的,赋予x权限,代表用户可以进入目录,也就是说,赋予 x 权限的用户或群组可以使用 cd 命令。

2.4.文件/目录的对应身份

  1. 使用ls -l指令我们可以看到,文件/目录除了rwx权限之外,还有两个用户名,这两个用户名代表该文件/目录的拥有者own和所属组grp,任何用户,只要不是该文件/目录的own或者grp,那么就是该目录/文件的其他人other
  2. 每个文件,对于own,rgp和other都有RWX3个权限,每个身份的人的权限不同

如下图,以文件t1.txt的权限为例

  • 拥有者权限为rw,即文件拥有者可以阅读和修改该文件
  • 所属组权限为rw,该文件所属组成员也可以阅读和修改该文件
  • 其他人权限为r,即除了该文件拥有者和所属组成员之外,所有其他用户都只能读该文件,没有修改该文件的权限

image.png

2.5.修改文件/目录权限

2.5.1.改权限

使用chmod指令可以修改文件权限
  • u(拥有者),g(所属组),o(其他人),a(所有人)
  • +(增加权限),-(取消权限)

[mrc@hecs-75541 exp]$ ll
-rw-rw---- 1 mrc mrc 0 Apr 10 21:26 t1.txt

[mrc@hecs-75541 exp]$ chmod u+x t1.txt //为拥有者增加x权限
[mrc@hecs-75541 exp]$ ll
-rwxrw---- 1 mrc mrc 0 Apr 10 21:26 t1.txt

[mrc@hecs-75541 exp]$ chmod g-rw t1.txt //为所属组取消rw权限
[mrc@hecs-75541 exp]$ ll
-rwx------ 1 mrc mrc 0 Apr 10 21:26 t1.txt

[mrc@hecs-75541 exp]$ chmod o+rwx t1.txt //为其他人增加rwx权限
[mrc@hecs-75541 exp]$ ll
-rwx—rwx 1 mrc mrc 0 Apr 10 21:26 t1.txt

[mrc@hecs-75541 exp]$ chmod uo-x t1.txt //为拥有者和其他人权限x权限
[mrc@hecs-75541 exp]$ ll
-rw----rw- 1 mrc mrc 0 Apr 10 21:26 t1.txt

[mrc@hecs-75541 exp]$ chmod a+x t1.txt //为所有人增加x权限
[mrc@hecs-75541 exp]$ ll
-rwx–xrwx 1 mrc mrc 0 Apr 10 21:26 t1.txt

使用8进制修改权限
  1. 每个身份对应的权限有3种,每种权限只有 有和没有 两种状态,所以可以使用8进制数表示权限状态
  2. 使用chmod XXX(八进制数字)filename修改文件权限
  • ---0
  • --x1
  • -w-2
  • -wx3
  • r--4
  • r-x5
  • rw-6
  • rwx7

[mrc@hecs-75541 exp]$ chmod 000 t1.txt
[mrc@hecs-75541 exp]$ ll
---------- 1 mrc mrc 0 Apr 10 21:26 t1.txt

[mrc@hecs-75541 exp]$ chmod 001 t1.txt
[mrc@hecs-75541 exp]$ ll
---------x 1 mrc mrc 0 Apr 10 21:26 t1.txt

[mrc@hecs-75541 exp]$ chmod 010 t1.txt
[mrc@hecs-75541 exp]$ ll
------x— 1 mrc mrc 0 Apr 10 21:26 t1.txt

[mrc@hecs-75541 exp]$ chmod 760 t1.txt
[mrc@hecs-75541 exp]$ ll
-rwxrw---- 1 mrc mrc 0 Apr 10 21:26 t1.txt

[mrc@hecs-75541 exp]$ chmod 765 t1.txt
[mrc@hecs-75541 exp]$ ll
-rwxrw-r-x 1 mrc mrc 0 Apr 10 21:26 t1.txt

2.5.2.改用户

除了修改文件权限,还可以使用root权限修改文件的拥有者和所属组

  • sudo chown username filename修改文件拥有者
  • sudo chgrp username filename修改文件所属组

[mrc@hecs-75541 exp]$ ll
-rwxrw-r-x 1 mrc mrc 0 Apr 10 21:26 t1.txt

[mrc@hecs-75541 exp]$ sudo chown root t1.txt
[sudo] password for mrc:
[mrc@hecs-75541 exp]$ ll
-rwxrw-r-x 1 root mrc 0 Apr 10 21:26 t1.txt

[mrc@hecs-75541 exp]$ sudo chgrp root t1.txt
[mrc@hecs-75541 exp]$ ll
-rwxrw-r-x 1 root root 0 Apr 10 21:26 t1.txt

2.6.粘滞位

  1. 用户能否删除某个文件,并不取决与用户是否拥有该文件的RWX权限,而取决于用户是否拥有该文件所在目录的W权限。
  2. 当我们使用一个公共目录时,使用粘滞位t可以使每个用户只能在该目录下删除和修改自己创建的文件和目录,而不能修改别人的。

[mrc@hecs-75541 4-10]$ ll
total 4
drwxrwxrwx 2 mrc mrc 4096 Apr 10 22:52 exp //所有人都拥有该目录的w权限
[mrc@hecs-75541 4-10]$ tree . //目录下有3个文件
.
└── exp
├── t1.txt
├── t2.txt
└── t3.txt

1 directory, 3 files
[mrc@hecs-75541 4-10]$ cd exp
[mrc@hecs-75541 exp]$ ll
total 0
-rwxrw-r-x 1 root root 0 Apr 10 21:26 t1.txt //t1.txt文件是属于root用户的
-rw-rw-r-- 1 mrc mrc 0 Apr 10 21:26 t2.txt
-rw-rw-r-- 1 mrc mrc 0 Apr 10 21:26 t3.txt

[mrc@hecs-75541 exp]$ rm -f t1.txt //但是我们却可以使用其他的用户删除它
[mrc@hecs-75541 exp]$ ll
total 0
-rw-rw-r-- 1 mrc mrc 0 Apr 10 21:26 t2.txt
-rw-rw-r-- 1 mrc mrc 0 Apr 10 21:26 t3.txt

//这是很不合理的,所以我们需要使用粘滞位
//先将t2.txt的拥有者更改为root
[mrc@hecs-75541 exp]$ sudo chown root t2.txt
[mrc@hecs-75541 exp]$ ll
total 0
-rw-rw-r-- 1 root mrc 0 Apr 10 21:26 t2.txt
-rw-rw-r-- 1 mrc mrc 0 Apr 10 21:26 t3.txt

//为该目录设置粘滞位
[mrc@hecs-75541 exp]$ cd …
[mrc@hecs-75541 4-10]$ ll
total 4
drwxrwxrwx 2 mrc mrc 4096 Apr 10 22:54 exp
[mrc@hecs-75541 4-10]$ chmod +t exp
[mrc@hecs-75541 4-10]$ ll
total 4
drwxrwxrwt 2 mrc mrc 4096 Apr 10 22:54 exp

//此时就不能再删除其他用户的文件了(当然root用户来了想删谁就删谁)
//使用测试用户testuser进入该目录
//提示权限不允许删除t2.txt
[testuser@hecs-75541 exp]$ ll
total 0
-rw-rw-r-- 1 root mrc 0 Apr 10 22:59 t2.txt
-rw-rw-r-- 1 mrc mrc 0 Apr 10 21:26 t3.txt
[testuser@hecs-75541 exp]$ rm t2.txt
rm: remove write-protected regular empty file ‘t2.txt’? y
rm: cannot remove ‘t2.txt’: Operation not permitted

标签:文件,权限,75541,hecs,exp,txt,mrc
From: https://blog.csdn.net/weixin_69356744/article/details/137615688

相关文章

  • IO流【 文件字符输入、出流;带缓冲区的字符输入、出流;对象流】
    day36IO流字符流继承图字符流继day35应用场景:操作纯文本数据注意:字符流=字节流+编译器编译器:可以识别中文字符和非中文字符,非中文字符获取1个字节(一个字节=一个字符),编译器会根据编码格式获取中文字符对应的字节数(GBK获取两个字节,UTF-8获取三个字节)abstrac......
  • go写入配置文件
    packageinstallimport("fmt""io/ioutil""os"v2"gopkg.in/yaml.v2""github.com/fanux/sealos/net""github.com/fanux/sealos/pkg/logger")const(defaultConfigPath="......
  • SpringBoot中application.yml引入多个YML文件
    系列文章目录文章目录系列文章目录前言前言前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。首先,你要了解SpringBoot配置文件加载顺序,加载位置(代码内,Nacos等),当然这......
  • 继上期讲述MATLAB如何读取音频文件,这期讲述如何实现播放读取的音频文件并可以随时停止
    1.右击上期保存的GUI界面(.fig格式文件),点击“在GUIDE中打开“,如下图所示:2.然后按照上期绘制按钮操作,绘制出下图所示的GUI界面:3.再分别右击播放音频按钮和停止播放按钮,按照上期教学,输入各按钮所相对应的代码 ,播放音频按钮的代码是:globalyfs%定义全局变量sound(y,fs);......
  • Java程序中两种配置文件(xml和properties)的加载读取方法
    ​ Java程序中,经常需要从配置文件中加载并读取设置,以支持不同的配置环境和参数。最常用的配置文件格式是XML和properties。两种方法都非常基础,适合于简单的配置文件读取需求。对于更复杂的需求,可能需要更高级的解析技术或第三方库。参考文档:Java程序中两种配置文件(xml和prope......
  • 在Linux终端查找指定类型的文件并统计数量
    下面举例说明:find/path/to/directory-typef-execfile{}\;|grep"MIDI"它的作用是在指定的目录(/path/to/directory)中搜索所有的文件(-typef),然后使用file命令检查每个文件的类型,并将结果通过管道传递给grep命令,用于过滤出包含"MIDI"关键词的文件信息。find:......
  • Linux文件和目录管理及文本搜索命令find grep
    在Linux操作系统中,“find”和“grep”是两个非常常用的命令,它们在文件和目录管理以及文本搜索方面提供了强大的功能。首先,让我们来看一下"find"命令。“find"命令用于在文件系统中搜索文件和目录。它可以根据指定的条件来搜索文件,如文件名、文件大小、权限等。例如,如果......
  • Linux之文件查找
    一.find  路径  条件  动作1.按文件名查找eg:find/etc-name"zxy"查找所有以8开头以9结尾的文件eg: find/ -name"8*"-o-name"*9" 2.按文件类型查找find/dev-typef查找普通文件d目录l链接b块设备c字符设备s套接字p管道文件3.按文件大小来......
  • 26_文件IO
    文件IO文件描述符​ 对于文件IO来说,一切都是围绕文件操作符来进行的。在Linux系统中,所有打开的文件都有一个对应的文件描述符。​ 文件描述符的本质是一个非负整数,当我们打开一个文件时,系统会给我们分配一个文件描述符。​ 当我们对一个文件做读写操作的时候,我们使......
  • VMware配置共享文件夹
    前两天用petalinux配置ARMLinux操作系统,可能是电脑用久了性能下降,虚拟机卡死了,不得不重新安装一次。设置了共享文件夹后,点进/mnt目录发现居然是空的,很早之前就遇到过这个问题,但是时间太久了忘了怎么解决了,不得不重新上网查一查。要先安装VMwareTools,但是按钮是灰色的点不了:......