文件或目录权限chmod,更改所有者所属组chown

本文介绍了Linux系统中文件和目录的权限设置方法,包括使用chmod命令改变读写执行权限,以及使用chown和chgrp命令更改文件的所有者和所属组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,文件或目录权限chmod

Linux文件属性

当我们用ls -l命令查看当前目录下的文件时,共显示了9列内容(用空格划分列)。如图
这里写图片描述
第一列 包含文件的类型,所有者,所属组以及其他用户对该文件的权限。

其中第1位用来描述该文件的类型。我们看到这里的文件类型是l,其实除了这个还有,b,c,s,d,-等等。
- d 代表该文件是目录
- -代表该文件是普通文件
- l 代表该文件是链接文件
- b代表该文件是快设备,比如/dev/sda就是这样的文件,磁盘分区文件就是这种类型。
- c 代表该文件是串行端口设备文件(又称字符设备文件),比如键盘,鼠标,打印机,tty终端等都是这样的文件。
- s 代表该文件为套接字文件(socket),用于进程之间的通信。

文件类型后面的9位,每3位为一组,其中r代表可读,w代表可写,x代表可执行。其中r等于4,w等于2,x等于1。前3位为所有者(user)的权限,中间3位为所属组(group)的权限,最后3位为其他用户(others)的权限。

第二列 表示该文件占用的字节(inode),如果是目录,那这个数值与该目录下是子目录数量有关。

第三列 表示该文件的所有者

第四列 表示该文件的所属组

第五列 表示该文件的大小。

第六列,第七列第八列 表示该文件最后一次被修改的时间,依次为月份,日期以及时间。

第九列 表示文件名。

命令chmod

  1. 命令语法
    chmod [-R] xyz文件名(这里的xyz表示数字)。

  2. 命令描述
    命令chmod(change mode)用于改变用户对文件/目录的读写执行权限。

  3. 命令参数
    -R 选项的作用等同于chown命令的-R选项,也表示级联更改。

注意:在Linux系统中,一个目录的默认权限为755,而一个文件的默认权限为644。

命令示例:

  • 1. 修改DL的权限,该为777。
    这里写图片描述
    在这里我们看到,虽然修改了DL的权限,但是DL下的1.txt的权限并没有改变。

  • 2.如果想把目录下的子文件子目录全部批量的修改权限,可以加一个-R选项。

  • 例如 使用-R选项,把DL权限修改为770。
    这里写图片描述
    可以看出,在使用-R的选项的情况下,把DL的权限修改为770,其子目录及子文件都跟随DL的权限修改为了770。

  • 3.使用字母的形式改变DL的权限为747。
    这里写图片描述
    这里的u代表user,g代表group,o代表other。

  • 4.使用一条命令,DL的把所有者,所属组,以及其他用户,都减去X权限。
    这里写图片描述
    **其中,a代表all(全部),a-x,代表把所有者,所属组,其他用户,的x权限去除。
    当然a+x的意思是把所有者,所属组,其他用户,加上x权限。当然也可以u-x,u+x,(只针对所有者)。**

二,更改所有者所属组chown

命令chown

  1. 命令语法
    chown [-R]账户名 文件名 或者 chown [-R] 账户名:组名 文件名

  2. 命令描述
    命令chown可以更改文件的所有者

  3. 命令选项
    -R 选项只适用目录,作用是级联更改,即不仅更改当前目录,连目录里的目录或者文件也全部更改。

    • 这里写图片描述
      图片用到一个useradd命令,其作用是增加一个用户组。
      在这里我们看到,在不用-R选项的情况下,更改dir的所有者,它的目录下的test1的所有者并没有改变。
      然后使用-R选项更改dir的所有者后,其目录下的test1也跟随dir的所用者一同改变。

命令chgrp

  1. 命令语法
    chgrp [组名][文件名]

  2. 命令描述
    命令chgrp可以更改文件的所属组
    这里写图片描述
    图片中用到了一个groupadd命令,其作用是增加一个所属组。

  3. 命令选项
    -R 选项只适用目录,作用是级联更改,即不仅更改当前目录,连目录里的目录或者文件也全部更改。作用同chown的-R

小知识:在我们使用chown的时候,可以连同,所属组,一起更改。中间用:分割。如下图

这里写图片描述

### Linux 文件目录权限管理 #### 权限概述 在 Linux 中,文件目录权限可以通过 `chmod`、`chown` 和 `umask` 等命令进行管理和调整。这些工具分别用于设置文件目录的访问权限更改所有权以及定义默认权限。 --- #### 使用 chmod 设置权限 `chmod` 是用来改变文件目录权限的主要命令。它支持两种模式来指定权限:符号模式和八进制模式。 - **符号模式** 符号模式通过操作符 (`+`, `-`, `=`) 修改特定用户类别的权限 (u: 用户, g: 群, o: 其他, a: 所有人)[^1]。 ```bash chmod u+x file.txt # 添加文件所有者的执行权限 chmod go-w file.txt # 移除和其他人的写入权限 ``` - **八进制模式** 八进制模式利用数字合快速设定权限。每一位对应一权限,其中 r=4, w=2, x=1[^3]。 ```bash chmod 755 directory/ # 设定目录权限为 rwxr-xr-x chmod 644 file.txt # 设定文件权限为 rw-r--r-- ``` 对于目录而言,`x` 表示进入该目录的能力;而对于文件,则表示可执行性[^2]。 --- #### 使用 chown 更改所有权 `chown` 命令用于更改文件目录的所有权。只有超级用户(root)能够更改文件所有者[^4]。 ```bash chown newowner file.txt # 改变文件所有者为newowner chown :newgroup file.txt # 改变文件所属为newgroup chown newowner:newgroup file.txt # 同时改变所有者所属 ``` 需要注意的是,在某些情况下可能还需要配合 `sudo` 提升权限才能成功运行此命令。 --- #### 使用 umask 定义默认权限 `umask` 控制新创建文件目录的初始权限。它的作用是从最大可能权限中减去相应的掩码值得到实际分配给对象的权限。 - 对于普通文件,默认的最大权限是 666(即rw-rw-rw-); - 而对于目录则是 777(rwxrwxrwx)。 例如如果设置了 `umask 022` ,那么新建文件将会获得 644 的权限而新建目录则会拥有 755 的权限: ```bash touch testfile # 创建测试文件 mkdir testdir # 创建测试目录 ls -l # 查看两者各自的权限状态 ``` --- #### 文件 vs 目录 权限区别 虽然二者都可以应用相同的权限标志(`r`,`w`,`x`) ,但其含义有所不同: - 针对文件来说,“execute(x)”意味着能否将其作为程序运行; - 当涉及到目录时,"read(r)"允许列出里面的内容;"write(w)"授予增删内部条目的能力;至于"execute(x)",这决定着是否能cd到那个路径下面. ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值