Linux修改文件属性

Linux  2024年4月1日 pm6:49发布7个月前更新 91es.com站长
77 0 0

前言

经常用,但还是会忘记,因此这里又整理一下。记录全一定,方便自己回顾。

这里主要介绍chownchmodchgrp

正文

Linux中通过ls -l可以看文件的属性。

Linux修改文件属性

chgrp

chgrp:更改文件属组。

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

这个我不常用,一般用下面那个替代即可。

# 修改前
ls -l
-rw-r--r--  1 root root 68495 Jun 1 11:00 3xcn.txt
# 如果需要权限,可以加sudo
chgrp water 3xcn.txt
# 修改后
ls -l
-rw-r--r--  1 root water 68495 Jun 1 11:01 3xcn.txt

chown

chown (change owner) 更改文件所有者(owner),也可以同时更改文件所属组。

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

下面简单展示一下

案例一
# 修改前
ls -l
-rw-r--r--  1 root root 68495 Jun 1 11:00 3xcn.txt
# 如果需要权限,可以加sudo
chown water 3xcn.txt
# 修改后
ls -l
-rw-r--r--  1 water root 68495 Jun 1 11:01 3xcn.txt
案例二
# 修改前
ls -l
-rw-r--r--  1 root root 68495 Jun 1 11:10 3xcn.txt
# 如果需要权限,可以加sudo
chown water:water 3xcn.txt
# 修改后
ls -l
-rw-r--r--  1 water water 68495 Jun 1 11:10 3xcn.txt

chmod

chmod (change mode) 修改用户的权限

 chmod [-R] xyz 文件或目录

选项与参数:

  • xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。

  • -R : 进行递归(recursive)的持续变更,以及连同次目录下的所有文件都会变更

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

通过数字改变文件权限

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

文件的权限字符为: -rwxrwxrwx , 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:

  • r:4

  • w:2

  • x:1

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,

-rwxrwxrwx

ps:第一个[-]是文件类型这里表示文件,如果是文件夹[d]表示

  • owner = rwx = 4+2+1 = 7

  • group = rwx = 4+2+1 = 7

  • others= rwx = 4+2+1 = 7

该文件的权限数字就是 777

# 修改前
ls -l
-rw-r--r--  1 water water 68495 Jun 1 11:12 3xcn.txt
chmod 777 3xcn.txt
# 修改前
ls -l
-rwxrwxrwx  1 water water 68495 Jun 1 11:12 3xcn.txt
-rwxr-xr--
  • owner = rwx = 4+2+1 = 7

  • group = r-x = 4+0+1 = 5

  • others= r-- = 4+0+0 = 4

该文件的权限数字就是 754

通过符号改变文件权限

我们可以发现,基本上就九个权限分别是:

  • user:用户

  • group:组

  • others:其他

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

此外, a 则代表 all,即全部的身份。读写的权限可以写成 r, w, x,也就是可以使用下表的方式来看:

chmod  u/g/o/a    +(加)/-(减)/=(设定)   r/w/x     文件夹/文件

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

#  touch test1    // 创建 test1 文件
# ls -al test1    // 查看 test1 默认权限
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
# chmod u=rwx,g=rx,o=r  test1    // 修改 test1 权限
# ls -al test1
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1

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

#  chmod  a-x test1
# ls -al test1
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1

参考文章

  1. Linux 文件基本属性

 历史上的今天

  1. 2022: 内存分析工具MAT简单记录(0条评论)
  2. 2021: Android ListView子item高度定长固定值无效问题详解(0条评论)
  3. 2020: 沈从文 :生命(0条评论)
版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站内容: 部分来源于网络,仅供学习和参考,若侵权请留言
3、 本站申明: 个人流水账日记,内容并不保证有效

暂无评论

暂无评论...

随机推荐

[摘]修改cmd编码格式

前言命令行显示中文乱码,大多是由于字符编码不匹配导致。有时候需要改变cmd的字符编码。本文摘抄,记录于此。好记性不如烂笔头。正文查看cmd的字符编码,在cmd中输入chcpchcp活动代码页: 936活动代码页936,指的就是GBK如果需要改变字符编码。# 设置编码格式为U...

PRODUCT_COPY_FILES预拷贝

在Android项目中需要使用PRODUCT_COPY_FILES 预拷贝文件和目录。 拷贝文件PRODUCT_COPY_FILES += device/qcom/msm8909/media/media_profiles_8909.xml:system/etc/media_profi...

rc文件规则简介

前言上一篇大致的走了一下init.cpp的流程,其中很重要的一环就是解析.rc文件,在介绍init.rc之前先学习一下rc文件的语法。内容主要来源参考文正文什么是rc文件在进入init.rc之前,我们需要先了解一下.rc文件。rc文件,是用Android Init Language...

关于插入部分无线鼠标Android应用重启问题

前言在Android 9.0的项目中,测试工程师验证问题时插入某些USB的无线鼠标,会导致当前的APK会销毁然后重启一次,重新走一次生命周期。Activity为啥会重启?为什么会重启?我们大概率的知道,一般App重启大致有如下原因:APP异常了(微信存在这样的问题,闪退重启)机器状...

Android中判断Service是否启动了

前言偶然需要使用,记录于此。好记性不如烂笔头正文使用getRunningServices获取运行的服务有时候需要盘服务是否启动,如果没有启动就需要拉起来PS:SERVICE_PACKAGENAME和SERVICE_NAME分别是定义的包名和服务包名,这里省略。 /** ...

[摘]Android性能优化篇之内存优化--内存泄漏

SHUI知道这篇文章对Android性能优化篇之内存优化--内存泄漏总结得很到位,基本上涵盖了。感谢感谢。什么是内存泄漏当一个对象已经不需要在使用了,本应该被回收,而另一个正在使用的对象持有它的引用,导致对象不能被回收。因为不能被及时回收的本该被回收的内存,就产生了内存泄漏。如果内存泄漏太多...