Linux文件属性(属主属组权限)

2023-10-24 16:40

本文主要是介绍Linux文件属性(属主属组权限),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Linux文件属性

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组

例如:

[root@bogon /]# ls -l
总用量 24
lrwxrwxrwx.   1 root root    7 6月   6 21:30 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 6月  16 11:29 boot
drwxr-xr-x.  20 root root 3300 6月  16 11:51 dev
drwxr-xr-x. 146 root root 8192 6月  16 12:10 etc drwxr-xr-x. 4 root root 36 6月 8 11:45 home lrwxrwxrwx. 1 root root 7 6月 6 21:30 lib -> usr/lib lrwxrwxrwx. 1 root root 9 6月 6 21:30 lib64 -> usr/lib64 drwxr-xr-x. 2 root root 6 4月 11 2018 media drwxr-xr-x. 2 root root 6 4月 11 2018 mnt drwxr-xr-x. 4 root root 30 6月 6 15:20 opt dr-xr-xr-x. 290 root root 0 6月 16 11:51 proc dr-xr-x---. 6 root root 219 6月 16 11:27 root drwxr-xr-x. 40 root root 1240 6月 16 12:10 run lrwxrwxrwx. 1 root root 8 6月 6 21:30 sbin -> usr/sbin drwxr-xr-x. 2 root root 6 4月 11 2018 srv dr-xr-xr-x. 13 root root 0 6月 16 11:51 sys drwxrwxrwt. 30 root root 4096 6月 16 12:38 tmp drwxr-xr-x. 13 root root 155 6月 6 21:30 usr drwxr-xr-x. 21 root root 4096 6月 6 21:54 var

在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。

  • 当为[ d ]则是目录
  • 当为[ - ]则是文件;
  • 若是[ l ]则表示为链接文档(link file);
  • 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]

属主user/属组group/其他用户others

每个文件的属性由左边第一部分的10个字符来确定

从左至右用0-9这些数字来表示。

第0位确定文件类型,第1-3位确定属主(该文件的所有者)拥有该文件的权限。

第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。

Linux文件属主和属组

分析

[root@bogon /]# ls -l
total 64
drwxr-xr-x 2 root  root  4096 Feb 15 14:46 cron
drwxr-xr-x 3 mysql mysql 4096 Apr 21  2014 mysql
……

对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。

同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。

文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。

因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。

在以上实例中,mysql 文件是一个目录文件,属主和属组都为 mysql,属主有可读、可写、可执行的权限;与属主同组的其他用户有可读和可执行的权限;其他用户也有可读和可执行的权限。

对于 root 用户来说,一般情况下,文件的权限对其不起作用。

更改文件属性

1、chgrp:更改文件属组
chgrp [-R] 属组名 文件名

参数 -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。

2、chown:更改文件属主,也可以同时更改文件属组

语法:

chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

测试

进入 /root 目录(~)看当前 目录有什么文件

[root@bogon /]# cd ~
[root@bogon ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg

[root@bogon ~]# ls -l
总用量 8
-rw-------. 1 root root 1755 6月 6 21:43 anaconda-ks.cfg
-rw-r--r--. 1 root root 1783 6月 6 14:02 initial-setup-ks.cfg

将anaconda-ks.cfg修改属主

[root@bogon ~]# chown bin anaconda-ks.cfg
[root@bogon ~]# ls -l
总用量 8
-rw-------. 1 bin  root 1755 6月   6 21:43 anaconda-ks.cfg
-rw-r--r--. 1 root root 1783 6月   6 14:02 initial-setup-ks.cfg

将anaconda-ks.cfg的拥有者与群组改回为root:

[root@bogon ~]# chown root:root anaconda-ks.cfg
[root@bogon ~]# ls -l
总用量 8
-rw-------. 1 root root 1755 6月 6 21:43 anaconda-ks.cfg
-rw-r--r--. 1 root root 1783 6月 6 14:02 initial-setup-ks.cfg

3、chmod:更改文件9个属性

Linux文件属性有两种设置方法,一种是符号,一种是数字。

Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。

先复习一下刚刚上面提到的数据:文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:

  • r:4
  • w:2
  • x:1

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:

  • owner = rwx = 4+2+1 = 7
  • group = rwx = 4+2+1 = 7
  • others= --- = 0+0+0 = 0

我们设定权限的变更时,该文件的权限数字就是770

变更权限的指令chmod的语法是这样的:

 chmod [-R] xyz 文件或目录

选项与参数:

  • xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
  • -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更

举例来说,如果要将.bashrc这个文件所有的权限都设定启用,那么命令如下:

[root@bogon ~]# ls -al .bashrc
-rw-r--r--. 1 root root 176 12月 29 2013 .bashrc
[root@bogon ~]# chmod 777 .bashrc
[root@bogon ~]# ls -al .bashrc
-rwxrwxrwx. 1 root root 176 12月 29 2013 .bashrc

同样返回刚刚这个文件的权限 只需要计算一下最初的权限之和

[root@bogon ~]# chmod 644 .bashrc
[root@bogon ~]# ls -al .bashrc
-rw-r--r--. 1 root root 176 12月 29 2013 .bashrc

这就跟最开始查询的时候权限一样了

符号类型改变文件权限

还有一个改变权限的方法,从之前的介绍中我们可以发现,基本上就九个权限分别是:

  • (1)user
  • (2)group
  • (3)others

那么我们就可以使用 u, g, o 来代表三种身份的权限!

此外, a 则代表 all,即全部的身份。读写执行的权限可以写成 r, w, x

可以用 + - =来修改权限:

例如我们需要将文件权限设置为 -rwxr-xr-- ,可以使用 chmod u=rwx,g=rx,o=r 文件名 来设定:

我们创建一个文件来测试下

[root@bogon ~]# touch test1    //创建测试文件
[root@bogon ~]# ls -al test1
-rw-r--r--. 1 root root 0 6月  16 14:08 test1

修改权限:

[root@bogon ~]# chmod u=rwx,g=rx,o=r test1
[root@bogon ~]# ls -al test1
-rwxr-xr--. 1 root root 0 6月  16 14:08 test1

如果想将权限去掉而不改变其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:

[root@bogon ~]# chmod a-x test1
[root@bogon ~]# ls -al test1
-rw-r--r--. 1 root root 0 6月  16 14:08 test1

 

转载于:https://www.cnblogs.com/CYHISTW/p/11031429.html

这篇关于Linux文件属性(属主属组权限)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/276490

相关文章

Linux磁盘分区、格式化和挂载方式

《Linux磁盘分区、格式化和挂载方式》本文详细介绍了Linux系统中磁盘分区、格式化和挂载的基本操作步骤和命令,包括MBR和GPT分区表的区别、fdisk和gdisk命令的使用、常见的文件系统格式以... 目录一、磁盘分区表分类二、fdisk命令创建分区1、交互式的命令2、分区主分区3、创建扩展分区,然后

Linux中chmod权限设置方式

《Linux中chmod权限设置方式》本文介绍了Linux系统中文件和目录权限的设置方法,包括chmod、chown和chgrp命令的使用,以及权限模式和符号模式的详细说明,通过这些命令,用户可以灵活... 目录设置基本权限命令:chmod1、权限介绍2、chmod命令常见用法和示例3、文件权限详解4、ch

Linux内核之内核裁剪详解

《Linux内核之内核裁剪详解》Linux内核裁剪是通过移除不必要的功能和模块,调整配置参数来优化内核,以满足特定需求,裁剪的方法包括使用配置选项、模块化设计和优化配置参数,图形裁剪工具如makeme... 目录简介一、 裁剪的原因二、裁剪的方法三、图形裁剪工具四、操作说明五、make menuconfig

Linux使用nohup命令在后台运行脚本

《Linux使用nohup命令在后台运行脚本》在Linux或类Unix系统中,后台运行脚本是一项非常实用的技能,尤其适用于需要长时间运行的任务或服务,本文我们来看看如何使用nohup命令在后台... 目录nohup 命令简介基本用法输出重定向& 符号的作用后台进程的特点注意事项实际应用场景长时间运行的任务服

什么是cron? Linux系统下Cron定时任务使用指南

《什么是cron?Linux系统下Cron定时任务使用指南》在日常的Linux系统管理和维护中,定时执行任务是非常常见的需求,你可能需要每天执行备份任务、清理系统日志或运行特定的脚本,而不想每天... 在管理 linux 服务器的过程中,总有一些任务需要我们定期或重复执行。就比如备份任务,通常会选在服务器资

Linux限制ip访问的解决方案

《Linux限制ip访问的解决方案》为了修复安全扫描中发现的漏洞,我们需要对某些服务设置访问限制,具体来说,就是要确保只有指定的内部IP地址能够访问这些服务,所以本文给大家介绍了Linux限制ip访问... 目录背景:解决方案:使用Firewalld防火墙规则验证方法深度了解防火墙逻辑应用场景与扩展背景:

Mybatis拦截器如何实现数据权限过滤

《Mybatis拦截器如何实现数据权限过滤》本文介绍了MyBatis拦截器的使用,通过实现Interceptor接口对SQL进行处理,实现数据权限过滤功能,通过在本地线程变量中存储数据权限相关信息,并... 目录背景基础知识MyBATis 拦截器介绍代码实战总结背景现在的项目负责人去年年底离职,导致前期规

Linux下MySQL8.0.26安装教程

《Linux下MySQL8.0.26安装教程》文章详细介绍了如何在Linux系统上安装和配置MySQL,包括下载、解压、安装依赖、启动服务、获取默认密码、设置密码、支持远程登录以及创建表,感兴趣的朋友... 目录1.找到官网下载位置1.访问mysql存档2.下载社区版3.百度网盘中2.linux安装配置1.

Linux使用粘滞位 (t-bit)共享文件的方法教程

《Linux使用粘滞位(t-bit)共享文件的方法教程》在Linux系统中,共享文件是日常管理和协作中的常见任务,而粘滞位(StickyBit或t-bit)是实现共享目录安全性的重要工具之一,本文将... 目录文件共享的常见场景基础概念linux 文件权限粘滞位 (Sticky Bit)设置共享目录并配置粘