前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >19.linux 文件管理命令:chmod设置文件或目录的访问权限\chtrp\chown\more

19.linux 文件管理命令:chmod设置文件或目录的访问权限\chtrp\chown\more

原创
作者头像
鱼多多
发布2025-01-09 13:29:28
发布2025-01-09 13:29:28
1630
举报
文章被收录于专栏:LinuxLinux

linux 文件管理命令:chmod设置文件或目录的访问权限\ chgrp改变文件或目录所属的群组\chown改变文件的拥有者或群组\more查看文件的内容

chmod:设置文件或目录的访问权限

  • 作用:chmod 是 change file or directory’s mode 的缩写,其作用是修改文件或目录的访问权 限,用户可以用它控制文件或目录的访问权限。
  • 用法:chmod 命令有两种用法,一种是包含字母和操作符表达式的字符设定法(相对权限 设定),另一种是包含数字的数字设定法(绝对权限设定)。

1字符设定法

字符设定法的一般形式如下:

代码语言:shell
复制
chmod [ugoa] [+ | - | =] [rwxXstugo] 文件名

第一部分决定权限的授予者,第二部分决定对权限进行何种操作(添加、删除、设定), 第三部分决定具体要授予的权限,3 部分组成一个字符串,也就是 mode 参数值。详细描述如表

  • 授予者

描述

u

用户,即文件或目录的所有者

g

同组用户,与文件属主有相同组 ID 的所有用户

o

其他用户

a

所有用户,它是系统默认值

  • 操作符号

描述

在原有权限中添加某个权限

在原有权限中删除某个权限

赋予新给定的权限,并取消其他所有权限

  • 权限位

描述

r

设置读权限

w

设置写权限

x

设置执行权限

X

只有目标文件对某些用户是可执行的,该目标文件是目录时才追加 X 属性

s

设置 SUID 和 SGID,g+s 设置 SGID,u+s 设置 SUID

t

保存程序的文本到交换设备上

u

与文件属主拥有一样的权限

g

与和文件属主同组的用户拥有一样的权限

o

与其他用户拥有一样的权限

案例练习

如果一个系统管理员写了一则通知(news)让所有用户阅读,那么必须授权用户对这个文 件有读权限,可以使用如下命令:

代码语言:shell
复制
#chmod a=r news

2 数字设定法

数字设定法的一般形式如下:

代码语言:shell
复制
chmod[mode]文件名

数字属性的用法应为 3 个 0~7 之间的八进制数,其顺序是(u)(g)(o)文件名,以空格 分开要改变权限的文件列表,支持通配符。

数字表示的权限的含义如下。

0001:所有者的执行权限。 0002:所有者的写权限。 0004:所有者的读权限。 0010:组的执行权限。 0020:组的写权限。 0040:组的读权限。 0100:其他人的执行权限。 0200:其他人的写权限。 0400:其他人的读权限。 1000:粘贴位置位。 2000:假如这个文件是可执行文件,则为组 ID 位置位。 4000:假如这个文件是可执行文件,则为用户 ID 位置位。

系统管理员写了一则通知(news2)让所有用户阅读,那么必须授权用户对这个文件有读 权限,可以使用以下命令:

代码语言:shell
复制
#chmod 444 news2

上述命令中,数字 444 是如何计算出来的呢?0004 为所有者的读权限,0040 为组的读权 限,0400 为其他人的读权限,这 3 个数字相加就是 0444(以上数字都是八进制数),如图 所示。

从图 中可以看到,“chmod 444 news1”和“chmod a=r news”命令是等价的。

说明 因为 Linux 系统有能力支持多用户,在每一方面系统都会作出谁能读、写和执行 的资源权力限制。这个权限以 3 个 8 位元的方式存储,一个表示文件所属者,一个表 示文件所属群组,另一个表示其他人。这些数字的表示形式如表 2-3 所示

权限的表示形式

chgrp:改变文件或目录所属的群组

  • 作用:chgrp 是 change group permissions 的缩写,chgrp 是一条在 Linux 和 UNIX 中用于设 置文件所归属的组的命令。与 chown 命令不同,chgrp 允许普通用户改变文件所属的组,只要 该用户是该组的一员。
  • 用法: chgrp [选项]…组文件… chgrp [选项]…--reference=参考文件…
  • 主要选项如下:

命令

描述

-c, --changes

类似--verbose 选项,只在有更改时才显示结果

--dereference

影响符号链接所指示的对象,而非符号链接本身

-h, --no-dereference

影响符号链接本身,而非符号链接所指示的目的地(当系统支持更 改符号链接的所有者时,此选项才有效)。

-f, --silent

不显示错误信息。

--reference=参考文件

使用<参考文件>的所属组,而非指定的<组>。

-R, --recursive

递归处理所有的文件及子目录。

-v, --verbose

显示命令执行过程。

说明 chgrp 命令改变指定文件所属的用户组。其中 group 可以是用户组 ID,也可以是 /etc/group 文件中用户组的组名。文件名是以空格分开的要改变所属组的文件列表,支 持通配符。如果用户不是该文件的属主、超级用户,则不能改变该文件的组。

案例练习

将目录 dir 中的所有文件属组改为 sam。

代码语言:shell
复制
# chgrp -R sam dir/

chown:改变文件的拥有者或群组

  • 作用:chown 是 change ownership 的缩写,用于更改与文件关联的所有者组
  • 用法: chown 选项…所有者[:组]文件…undefinedchown 选项…:组文件…undefinedchown 选项…--reference=参考文件…
  • 主要选项如下:

当使用--referebce 参数时,将文件的所有者和所属组更改为与指定参考文件相同。

命令

描述

-c,--changes

类似 verbose,但只在有更改时才显示结果。

--dereference

受影响的是符号链接所指示的对象,而非符号链接本身。

-h,--no-dereference

会影响符号链接本身,而非符号链接所指示的目的地(当系统支持更改符号链接的所有者时,此选项才有效)。

--from=当前所有者:当前所属组

只当每个文件的所有者和组符合选项所指定时才更改所有者和组。其中一个可以省略,这时已省略的属性就不需要符合原有的属性。

--no-preserve-root

不特殊对待“/”(默认值)。

--preserve-root

不允许在“/”上递归操作。

-f,--silent,--quiet

去除大部分的错误信息。

--reference=参考文件

使用参考文件的所属组,而非指定值。

-R,--recursive

递归处理所有的文件及子目录。

-v,--verbose

为处理的所有文件显示诊断信息。

以下选项是在指定了-R 选项时被用于设置如何穿越目录结构体系。如果用户指定了多于一 个选项,那么只有最后一个选项会生效。

命令

描述

-H

如果命令行参数是一个通到目录的符号链接,则遍历符号链接。

-L

遍历每一个遇到的通到目录的符号链接。

-P

不遍历任何符号链接(默认)。

--help

显示此帮助信息并退出。

--version

显示版本信息并退出。

如果没有指定所有者,则不会更改。所属组若没有指定也不会更改,但当加上“:”时 GROUP 会更改为指定所有者的主要组。所有者和所属组可以是数字或名称。

说明 chown 将指定文件的拥有者改为指定的用户组,用户可以是用户名用户 ID;组可 以是组名组 ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理 员经常使用 chown 命令,在将文件复制到另一个用户的目录下以后,让用户拥有使用 该文件的权限。

案例练习

将目录/mywork 及其下的所有文件和子目录的属主改为 lwan,属组改为 users。

代码语言:shell
复制
# chown - R lwan.users /mywork

查看文件的内容

  • 作用:和 cat 命令相比,more 命令适合查看大文件。more 命令一般用于显示内容超过一屏 的文件。其他命令经常和 more 匹配使用,但 more 命令也可单独使用。
  • 用法:more [选项]文件
  • 主要选项如下:

命令

描述

-d

显示帮助,而不是响铃。

-f

统计逻辑行数而不是屏幕行数。

-l

抑制换页(form feed)后的暂停。

-p

不滚屏,清屏并显示文本。

-c

不滚屏,显示文本并清理行尾。

-u

抑制下画线。

-s

将多个空行压缩为一行。

-NUM

指定每屏显示的行数为 NUM。

+NUM

从文件第 NUM 行开始显示。

+/STRING

从匹配搜索字符串 STRING 的文件位置开始显示。

-V

输出版本信息并退出。

more 命令在命令暂停时接受子命令并且作为-p 标志的参数。许多子命令接受可选的整数, 这里由 K 代表,它必须在子命令之前输入,之间没有空格。more 命令在暂停状态时立即处理 子命令,并且不需要按下 Enter 键。more 命令使用下面的子命令。

命令

描述

h

显示描述 more 子命令的帮助屏幕。

v

启动 vi 编辑器,在当前行编辑当前文件。

r^L

:刷新显示。

R

刷新显示并删除缓冲的输入。

在 more 命令的执行过程中,用户可以使用 more 自己的一系列命令动态地根据需要选择显 示的部分。more 命令在显示完一屏内容之后,将停下来等待用户输入某个命令。下面列出了 more 命令在执行中用到的一些常用命令,而有关这些命令的完整内容,可以在 more 执行时按 h 键查看。这些命令的执行方法是先输入 i(行数)的值,再输入所需要的命令,否则它会以预 设值来执行命令。

命令

描述

i:空格

若指定 i,显示下面的 i 行;否则,显示下一整屏。

i:回车

若指定 i,显示下面的 i 行;否则,显示下一行。

i d

若指定 i,显示下面的 i 行;否则,往下显示半屏(一般为 11 行)。

qQ

退出 more。

显示当前行号。

说明 more 命令读取文件,而且每次显示一屏文本。该命令在每屏后暂停,并在屏幕 底部打印单词 more。如果随后按 Enter 键,more 命令会再显示一行。如果按下 Space 键,more 命令将显示文本的另一屏。对于有些终端型号,more 命令清除屏幕,而不 是滚动屏幕。可以重定向通过管道传送标准输出(如长目录列表)到 more 命令,而 不是读取命名的文件。当从文件而不是管道读取的时候,命令在提示符处加%(百分 符),这提供了 more 命令已经读取文件的百分比(以字符为单位,而不是行)

案例练习

(1)查看以 myfile 命名的文件。

代码语言:shell
复制
#more myfile

(2)从 ls 命令查看输出。

代码语言:shell
复制
#ls –l | more

(3)逐页显示 testfile 的档案内容,如有连续两个以上空白行则以一个空白行显示。

代码语言:shell
复制
#more -s testfile 

(4)查找/etc/passwd 文件中用户 cjh 所在行,查找过程如图

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • chmod:设置文件或目录的访问权限
    • 1字符设定法
      • 案例练习
    • 2 数字设定法
  • chgrp:改变文件或目录所属的群组
    • 案例练习
  • chown:改变文件的拥有者或群组
    • 案例练习
  • 查看文件的内容
    • 案例练习
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档