文件权限管理 chomd chown chgrp umask

一.chmod修改文件权限

查看demofile的属性:先创建文件demofile: touch demofile
然后ls -l demofile
1.选项:

  • - :普通文件
  • d :目录
  • l :符号链接文件
  • c :字符设备文件
  • b :块设备文件

2.注意:r w x分别代表read,write,excute(执行)
这三个位置不会变永远都是rwx,如果出现了-就代表没有这个属性
例如:rwx表示可读可写可执行
r-x就代表可读不可写可执行
d |rwx|r-x|r-x|
d这一栏表示文件类型 rwx一栏表示所有者权限(可读可写可执行) r-x这一栏表示所属组权限 r-x表示其他用户权限

3.文件的权限还可以使用3位八进制数表示
如755,其中第一位表示文件所有者的权限,第二位表示文件所属组的权限,第三位表示其他用户权限,每组权限由4种字符表示。

  • r:可读取(read)文件内容,对应的数字是4。
  • w:可写入(write)文件内容,对应的数字是2。
  • x:可执行(execute)文件,对应的数字是1。
  • - :表示无相应权限。第一位是-表示普通文件

例如, 755 是指文件所有者的权限为可读取、可写入、可执行;所属组和其他用户的权限为可读取、可执行。755也就是 -|rwx|r-x|r-x|
图3‑24中文件demofile属性的第一位为 ‑ ,表示该文件是一个普通文件;第2‑4位为 rw‑ ,表示该文件的所有者权限为可读取、可写入;第5‑7位为 r‑‑ ,表示该文件的所属组权限为可读取;第8‑10位为 r‑‑ ,表示该文件的其他用户权限为可读取。
如果用数字表示法来表示文件demofile的权限应该是644。

(2)使用如下命令为文件demofile所有者增加执行权限
chmod → change mode 修改文件权限
已知demofile是 -|rw-|r--|r--|:普通文件|可读可写|可读|可读|
chmod u+x demofile也就是给demofile的所有者权限加上可写的权限输出就变成了-|rwx|r--|r--
(3)知识链接:chmod命令

常用选项

  • -R :递归地修改目标目录及其子目录中的所有文件和文件夹的权限。
    ​
  • -v :显示每个被修改的文件或目录的名称。
    ​
  • -c :除了显示修改信息,还显示未被修改的文件或目录的名称。

权限通常由3位八进制数组成,如755或644。也可以使用字母表示法来设置文件权限:

  • u :文件所有者(user)
    ​
  • g :文件所属组(group)
    ​
  • o :其他用户(others)
    ​
  • a :所有用户(all)

每个字母都可以与  + 、 - 、 = 符号结合:+ :增加权限;  - :减少权限;  = :直接设置权限

例如:原本为k是-|rwx|r-x|rw-|要求把它变成|rwx|rwx|rwx|
可以使用chmod g+w,u+x k或者chmod g=rwx,u=rwx k或者chmod a=rwx k或者chmod 777 k

(4)修改目录权限:

使用如下命令,修改目录/tmp/d1的权限为rwx rwx rwx并且修改这个目录及目录下所有文件与子目录权限

chmod -R 777 /tmp/d1

  • 如果不加  -R :只改d1本身,里面d2子目录权限不变。

文件 vs 目录权限重点(表格考点)

权限 文件作用 目录作用
r 读取 查看文件内容 列出目录里面的文件名
w 写入 修改文件内容 在目录新建/删除文件
x 执行 运行这个程序文件 进入这个目录(cd进去)

考试必背两句话

1. 删除文件,不需要文件本身w权限,需要该文件所在目录有w权限。
2. 目录权限,r 和 x 一般要同时有;只有r没有x,能看到文件名但是cd进不去目录。

做题小坑

  • 修改文件夹连同内部所有内容,必须带  -R
  • chmod改权限;chown改所有者,不要搞混。
     
    二. chown → change owner 修改文件所有者
    原先demofile的所有者为root,现在改为m:
    chown m demofile
  • -R :递归,目录连同里面全部子文件子目录一起修改
    -v :显示每个被修改的文件或目录名称
    易错坑:写不存在的用户,直接报错 无效的用户 ,要先 useradd 创建用户。

三.chgrp 只修改所属组

chgrp [选项] 新组名 文件/目录

  • -R :递归修改目录内部全部文件的所属组

做题区分(必背)

1.  chmod  👉改权限(r w x)
2.  chown  👉改所有者、所属组
3.  chgrp  👉只改所属组

把demofile所有者改为testuser,组改为usergroup

chown testuser:usergroup demofile

只修改组

chgrp usergroup demofile

递归整个目录

chown -R testuser:usergroup ./mydir

ls -l demofile

输出第二列后面,依次显示:所有者 所属组。

考点小结

  • chown可以一人完成改所有者+组;chgrp只能改组。
  • -R 递归参数,目录操作才经常用。
  • 用户/组必须系统真实存在,否则报错。

四. umask → user file‑creation mode mask 用户文件创建掩码(默认权限掩码)

1.建立文件newfile ,看默认权限:
touch newfile
ls -l newfile
结果为-rw- r-- r--:数字为644

2.建立目录newdir ,看默认权限:
touch newdir
ls -ld newdir
结果为-rwx r-x r-x:数字为755
新文件默认是644,新目录默认是755

3.查看权限掩码:
umask
输出0022
与755相加为777,所以这是目录权限掩码
-S:以文字方式表示权限掩码
umask -S
输出u=rwx g=rx,o=rx

(4)使用如下命令修改系统默认权限,如图3‑36所示,这时目录的所有者权限为可读取、可写入、可执行,所属组权限为可读取、可执行,其他用户权限为可读取,即其他用户的权限被修改
umask 023
umask -S
输出u=rwx g=rx,o=r

题:💡解答

1. 在麒麟操作系统中,文件和目录的默认权限是一样的。(×)

解析:文件默认一般没有执行x权限;目录必须要有执行x权限,方便cd进入,二者默认权限不同。

2. 权限可以由3位十进制数组成。(×)

解析:权限是3位八进制数,不是十进制。
💡解答
选择题

1.(单选)可以用 ls‑al 命令来观察文件的权限,每个文件的权限都用()位表示,并分为()段,其中第一段占()位,表示文件类型,第二段占()位,表示文件所有者对该文件的权限。
A. 10,4,1,3
B. 10,3,1,3
C. 10,3,3,1
D. 10,4,3,1

✅答案:B
解析:ls‑al显示权限一共10位;分为3段。第1位是文件类型,后面3位所有者、3位所属组、3位其他用户。
2.(单选)修改一个文件的权限为所有者可读取、可写入、可执行,所属组只可执行,其他用户没有权限,相应的数字组合应该是()。
A. 722
B. 711
C. 710
D. 707

✅答案:C
解析:r=4,w=2,x=1
所有者 rwx = 4+2+1=7;所属组 ‑‑‑x =1;其他用户 ‑‑‑ =0 →组合710。

3.(单选)使用 chmod 551 file 命令对文件 file 进行权限的修改,则它的权限是()。
A. -r-xr-x--x
B. -rwxr-x-x
C. -rwxr--r--
D. -r--r--r--

✅答案:A
解析:5=r‑x,5=r‑x,1=‑‑‑x。拼接: ‑r‑x‑r‑x‑‑‑x 。

4.(单选)文件 abc 初始权限为‑rw‑r‑‑‑‑‑,使用()命令可以将权限改为‑rwx‑‑‑‑‑‑‑。
A. chmod o+rwx,u+w‑r,g+x abc
B. chmod u+rwx,g‑w‑r,o+x abc
C. chmod o+rwx,g‑w‑r,u+x abc
D. chmod g+rwx,u+w‑r,o+x abc

✅答案:A
解析:原权限‑rw‑r‑‑‑‑‑;目标‑rwx‑‑‑‑‑‑‑。
所有者u增加执行x;所属组g去掉读r

posted @ 2026-10-15 17:00  11樊香玉  阅读(6)  评论(0)    收藏  举报