LINUX学习之文件基本属性(二)

news2024/9/22 13:29:56

查看文件属性

Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位并拥有不同的权限。在 Linux 系统中,通常使用 chown 命令来修改文件或目录的所有者,chmod 命令则用于设置用户的权限。

  • chown (change owner) :用于修改文件或目录的所有者和组。
  • chmod (change mode) :用于修改文件或目录的权限,如读、写、执行权限

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

1

如上图所示, Mail文件的第一个属性用d表示, 则代表此文件是一个目录文件, 在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等

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

如下图所示, 每个文件的属性由左边第一部分的 10 个字符来确定, 从左至右用 0-9 这些数字来表示。

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

1


文件的属主和属组

对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。在 Linux 系统中,用户是按组分类的,一个用户可以属于一个或多个组。

文件所有者以外的用户可以分为文件所属组的同组用户和其他用户。这些用户对文件的访问权限可能不同,因此在 Linux 系统中,需要对文件的访问权限进行管理。

在如下实例中, mysql 文件是一个目录文件, 属主和属组都为 mysql, 属主有可读、可写、可执行的权限; 与属主同组的其他用户有可读和可执行的权限; 其他用户也有可读和可执行的权限。而对于root用户来说, 文件的权限对其不起作用

[root@www /]# 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
……

更改文件属性的命令

1.chgrp: 更改文件属组

命令语法如下所示:

chgrp [-R] 属组名 文件名

-R: 如果加上-R的参数,那么该目录下的所有文件的属组都会更改


2.chown: 更改文件属主, 也可同时修改文件属组

命令语法如下所示:

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

进入/root目录(~)将install.log的拥有者改为bin这个账号:

[root@www ~] cd ~
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log

install.log的拥有者与群组改回为root

[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r--  1 root root 68495 Jun 25 08:53 install.log

3.chmod: 更改文件权限

首先了解下文件的权限等级, Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)

1

  • u表示文件所有者, g表示与文件拥有者属于同一个群体, o表示其他人, a表示这三者皆是
  • +表示添加权限、-表示取消权限、=表示设定唯一权限
  • r表示可读取, w表示可写入, x表示可执行

使用符号模式可以设置多个项目: who(用户类型)、operator(操作符)、permission(权限)

以下是各个项目的符号模式表:

who用户类型说明
uuser文件所有者
ggroup文件所有者所在组
oothers所有其他用户
aall所有用户, 相当于 ugo
Operator说明
+为指定的用户类型增加权限
-去除指定用户类型的权限
=设置指定用户权限的设置,即将用户类型的所有权限重新设置
permission名字说明
r设置为可读权限
w设置为可写权限
x执行权限设置为可执行权限
X特殊执行权限只有当文件为目录文件,或者其他类型的用户有可执行权限时,才将文件权限设置可执行
ssetuid/gid当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限
t粘贴位设置粘贴位,只有超级用户可以设置该位,只有文件所有者u可以使用该位

chmod命令可以使用八进制来指定权限

#权限rwx
7读(4) + 写(2) + 执行(1)rwx
6读(4) + 写(2)rw-
5读(4) + 执行(1)r-x
4只读(4)r–
3写(2) + 执行(1)-wx
2只写(2)-w-
1只执行(1)–x
0

chmod命令使用实例如下表格所示:

描述命令
将file1.txt设为所有人都可读chmod ugo+r file1.txt
chmod a+r file1.txt
将file1.txt和file2.txt权限设为文件拥有者和用户组可写,其他用户不可写chmod ug+w,o-w file1.txt file2.txt
将当前目录下的所有文件与子目录皆设为任何人可读取chmod -R a+r *
将file文件设为任何人可读可写可执行chmod 777 file
chmod a=rwx file
使文件具有超级用户权限,chmod 4755 filename

4.umask:更改文件默认权限

创建文件的默认权限为rw-rw-rw-, 创建目录的默认权限为rwxrwxrwx

使用umask命令即可查询umask值, umask值表示从默认权限了去掉一些权限,然后成为最终的默认权限

[root@localhost 桌面]# umask
0022

可以看到umask的值为0022,第一个0为特殊权限暂且不用理他,后面三个数字分别代表u(文件拥有者)、g(用户组用户)、o(其他用户)的权限变化。u为0,权限没发生改变;g为2,权限-2,失去w(写)权限;o为2,同理


新创建一个文件, 其默认权限为rw-rw-rw-, 由于umask值为0022, 即group和Other Users失去w权限, 最终文件的权限为rw-r--r--

[root@localhost 桌面]# touch test.txt
[root@localhost 桌面]# ls -l test.txt 
-rw-r--r--. 1 root root 0 10月 20 17:36 test.txt

新创建一个目录, 其默认权限为rwx-rwx-rwx, 由于umask值为0022, 即group和Other Users失去w权限, 最终文件的权限为rwxr-xr-x

[root@localhost 桌面]# mkdir test
[root@localhost 桌面]# ls -al test
总用量 0
drwxr-xr-x. 2 root  root   6 10月 20 17:42 .
drwxr-xr-x. 3 herry herry 34 10月 20 17:42 ..

还可使用umask命令修改文件默认权限

[root@localhost 桌面]# umask 027
[root@localhost 桌面]# touch test1.txt
[root@localhost 桌面]# ls -l test1.txt
-rw-r-----. 1 root root 0 10月 20 23:11 test1.txt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/171883.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux下的进程通信之system V共享内存

目录 使用system V共享内存进行进程间通信: 获取共享内存shmget 将共享内存关联到进程 去关联共享内存 删除共享内存 简易模拟实现server和client之间的通信: 服务端代码: 客户端代码: 共享内存的特点: 其他…

solrCloud一:zookeeper集群搭建

SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心。SolrCloud是Solr的一种分布式部署方式 ,当索引越来越大时,一个单一的系统无法满足空间和查询效率上的要求,这个时候往往需要…

SpringCloud(11):Hystrix请求合并

1 简介 如图,多个客户端发送请求调用(消费者)项目中的findOne方法,这时候在这个项目中的线程池中会发申请与请求数量相同的线程数,对EurekaServiceProvider(服务提供者)的getUserById方法发起调用,每个线程都要调用一次&#xff0…

圆满落幕!56 人参加,龙蜥社区技术委员会、运营委员会会议顺利完成

1 月 13 日,龙蜥社区分别召开了第 10 次技术委员会会议和第 14 次运营委员会会议,来自 21 家理事单位的委员代表出席。两个会上分别总结和回顾了龙蜥社区 2022 年度整体技术和运营发展情况,就社区产品、重要技术决策、社区治理、2023 年度运营…

塔望3W消费战略全案丨火出天际的预制菜,能否拯救开饭焦虑?

2022年6月塔望咨询开设塔望食品大健康消费研究院(简称塔望食研院)栏目,塔望食研院以“为食品行业品牌高质量发展赋能”为理念,将不定期发布食品大健康行业研究、消费研究报告。塔望食研院致力于结合外部数据、消费调研数据、企业内…

Web(九)

Web服务器软件Tomcat web服务器软件: 服务器:安装了服务器软件的计算机 服务器软件:接收用户的请求,处理请求,做出响应 web服务器软件:接收用户的请求,处理请求,做出响应。 在…

说话人识别损失函数的PyTorch实现与代码解读

概述 说话人识别中的损失函数分为基于多类别分类的损失函数,和端到端的损失函数(也叫基于度量学习的损失函数),关于这些损失函数的理论部分,可参考说话人识别中的损失函数本文主要关注这些损失函数的实现,…

SQL 分组条件深入剖析

问题在 stackoverflow 网站上看到这样一个 SQL 分组条件的需求,需求看似挺简单,但能把 SQL 写正确对于新手来说也不容易,我们拿过来深入剖析一下,数据如下:需求是查找只有Ready 状态的设备。解答自然思路:按…

寅辞旧岁,卯定常虹丨ASKO洗碗机“净”护新春团圆时刻

农历新年是一年中最重要的节日,但过去三年的特殊时光阻碍了很多人的归乡之行,如今当阴霾逐渐散去,必然会引来大规模的新年归乡潮,奔赴一个久违的团圆年。美馔佳宴是新春佳节的永恒命题,新年家里少不了亲友的光临&#…

Windows 7的最后一个版本

前天推送的文章介绍了,在1月10日微软发布了最后一个补丁后,微软为Windows7提供的所有更新(包括收费的ESU)已经完全终止。以后再有新的补丁,则为第三方平台提供的非官方版的了。 早在2022年9月份,微软就发布了支持安全启动UEFI的补…

DocPrompt代码实现与模型微调

数据预处理阶段 PaddleOCR PP-Structure:这个库其实是用于版面分析的一个开源库,参见:github: Layout-Parser/layout-parserhttps://github.com/Layout-Parser/layout-parser 代码推理阶段 Paddle-Inferencehttps://paddle-inference.readt…

图形编辑器:工具管理和切换

大家好,我是前端西瓜哥。今天我们看看对于一款图形编辑器,应该怎么去实现工具,比如绘制矩形、选中工具,以及如何去管理它们的。 项目地址,欢迎 star: https://github.com/F-star/suika 线上体验&#xff1a…

【改进篇】Python实现VRP常见求解算法——蚁群算法(ACO)

基于python语言,实现经典蚁群算法(ACO)对车辆路径规划问题(CVRP)进行求解, 优化代码结构,改进Split函数 目录往期优质资源1. 适用场景2. 改进效果对比2.1实验结果2.2 改进前后算法性能对比3. 求…

臻图信息构建数字孪生港口船舶停靠管理系统,赋能港口创新发展

我国的港口不仅是船只停靠的避风港,也是现代渔业发展和管理的中心。随着国内港口业的不断发展,国务院在《现代综合运输体系发展“十四五”规划》中提出,要自动化、数字化、智能化等技术来完善监管体系建设。 ​ 随着科技兴港战略的提出&…

“零”代码改动,静态编译让太乙Stable Diffusion推理速度翻倍

作者|梁德澎 AI 作图领域的工具一直不尽人意,直到去年 8 月 Stable Diffusion 开源,成为AI 图像生成领域无可争辩的划时代模型。 为了提升其推理效率,OneFlow 首度将 Stable Diffusion 模型加速至“一秒出图”时代,极…

2023牛客寒假算法基础集训营2(11/12)

Tokitsukaze and abn (easy)Tokitsukaze and abn (medium)要使abn&#xff0c;那么转换一下就是bn-a&#xff0c;所以只需要计算[n-L,n-R]和[L,R]相交的部分即可AC代码&#xff1a;#include <bits/stdc.h> using namespace std; using LL long long; int main() {ios::s…

6. 基本数据类型

1. Python 中的变量不需要声明 每个变量在使用前都必须赋值&#xff0c;变量赋值以后该变量才会被创建。在 Python 中&#xff0c;变量就是变量&#xff0c;它没有类型&#xff0c;我们所说的"类型"是变量所指的内存中对象的类型。 counter 100 # 整型 mile…

关于Win11打开文档总是提示“选择一个程序打开”的问题

这边异常情况&#xff1a; 使用的360浏览器下载回来的文档、微信下载回来的文档都会出现标题所说的问题。 问题产生的原因&#xff1a; 初期在重装电脑后&#xff0c;将自带的一些安装系统后的第三方软件卸载掉了&#xff0c;也包括QQ浏览器。 可是在win11默认应用中看到了…

第五章SpringFramework之AOP

文章目录AOP概念及相关术语概述为什要用 AOP相关术语横切关注点Advice通知Join Point连接点Point CUT 切入点切面目标代理基于注解的SpringAOP准备工作切入点表达式语法重用切入点表达式对应的切面前置通知返回通知异常通知后置通知环绕通知切面的优先级总结Spring AOP 的实现步…

27.Isaac教程--局部建图

26.Isaac教程-局部建图 ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html 局部地图是机器人周围直接环境的基于网格的简化表示。 这些简化的世界表示对于安全地规划机器人附近的静态和动态障碍物至关重要。 局部建图管道将来自连接到机器人的不同传…