一起来学Linux命令(十)

简介: 一起来学Linux命令(十)

前言

目前正在出一个Linux命令系列教程, 篇幅会较多, 喜欢的话,给个关注❤️ ~

作为服务端开发,linux命令还是要掌握一下的,可以做做基础性的运维。好了, 废话不多说直接开整吧~

本节是该系列的最后一节,这节给大家介绍一些权限相关的命令,这些命令谨慎操作~

chmod

Linux系统中使用chmod命令时,可以修改文件或目录的权限。权限控制谁可以读取、写入和执行特定文件或目录。chmod命令允许更改这些权限,以便适应不同的安全需求

语法:

chmod [options] mode filename
  • options: 可选参数,用于指定一些特定选项,例如递归修改权限、静默模式等。
  • mode: 权限模式,可以是文字模式或数字模式。文字模式更容易理解,数字模式更为紧凑。
  • filename: 要修改权限的文件或目录名称。

权限模式

mode部分,可以使用以下字符来表示不同的权限:

  • u: 所有者(user)权限- g: 组权限- o: 其他用户权限- a: 所有用户权限(等同于ugo

每个权限部分可以使用以下字符来表示权限:

  • r: 读取权限- w: 写入权限- x: 执行权限

使用示例

  1. 使用文字模式设置权限
  • 设置所有者读、写、执行权限:chmod u=rwx filename
  • 设置组用户只读权限:chmod g=r filename
  • 设置其他用户执行权限:chmod o=x filename
  • 设置所有用户读权限:chmod a=r filename
  1. 使用数字模式设置权限
  • 设置所有者可读写执行,组和其他用户可读:chmod 744 filename
  • 所有者可读写执行,组可读执行,其他用户无权限:chmod 750 filename
  1. 递归修改目录及其内容的权限:如果要递归地修改目录及其内容的权限,可以使用-R选项。
  • 递归地给目录及其内容赋予所有者读写执行权限:chmod -R u=rwx directory
  1. 静默模式:使用-v选项可显示修改的文件。
  • 设置所有者可读写执行权限,并显示修改的文件:chmod -v u=rwx filename

chown

chown(change owner)命令用于更改文件或目录的所有者。在Linux系统中,每个文件和目录都有一个所有者,指定了谁有权访问和管理它。通过使用chown命令,可以将文件或目录的所有权转移给其他用户或组。

语法:

chown [options] new_owner: new_group filename
  • options: 可选参数,用于指定一些特定选项,如递归更改、保留设置等。
  • new_owner: 新的所有者的用户名或用户ID。
  • new_group: 新的组的组名或组ID。
  • filename: 要更改所有者和/或组的文件或目录名称。

使用示例

  1. 更改所有者

  - 将文件的所有者更改为新用户:chown newuser filename   - 将目录的所有者更改为新用户:chown newuser directory

  1. 更改组

  - 将文件的组更改为新组:chown :newgroup filename   - 将目录的组更改为新组:chown :newgroup directory

  1. 同时更改所有者和组

  - 将文件的所有者和组同时更改:chown newuser:newgroup filename   - 将目录的所有者和组同时更改:chown newuser:newgroup directory

  1. 递归更改目录及其内容的所有者和组

  如果要递归地更改目录及其内容的所有者和组,可以使用-R选项。

  - 递归地将目录及其内容的所有者和组都更改为新用户和新组:chown -R newuser:newgroup directory

  1. 保留文件的组,只更改所有者

  使用-c选项来仅在所有者或组发生变化时显示修改的文件。

  - 仅更改文件的所有者,保留组:chown -c newuser filename

这些示例展示了如何使用chown命令来更改文件和目录的所有者和组。在实际使用时,请确保具有足够的权限来更改所有者和组。更改所有者和组可能会影响文件的访问和权限设置,因此务必小心操作。

chgrp

语法:

chgrp [options] new_group filename
  • options: 可选参数,用于指定一些特定选项,如递归更改等。
  • new_group: 新的组的组名或组ID。
  • filename: 要更改所属组的文件或目录名称。

使用示例

  1. 更改组

  - 将文件的组更改为新组:chgrp newgroup filename   - 将目录的组更改为新组:chgrp newgroup directory

  1. 递归更改目录及其内容的组

  如果要递归地更改目录及其内容的组,可以使用-R选项。

  - 递归地将目录及其内容的组都更改为新组:chgrp -R newgroup directory

  1. 保留所有者,只更改组

  使用-c选项来仅在组发生变化时显示修改的文件。

  - 仅更改文件的组,保留所有者:chgrp -c newgroup filename

umask

umask 是一个重要的系统命令,用于设置新文件和目录默认权限的掩码。在Linux和类Unix操作系统中,每个文件和目录都有一组权限位,用于控制谁可以访问文件或目录以及在何种方式下可以访问。umask 通过掩码的方式影响这些权限,用于限制默认的权限。

语法:

umask [options] [mode]
  • options: 可选参数,用于指定一些特定选项,例如显示当前 umask 值。
  • mode: 可选参数,用于设置新的 umask 值。mode 通常由三位数字表示,如 022。这三位数字分别表示文件权限的 rwx 位,其中每一位的值分别为 r(读取权限),w(写入权限),x(执行权限)。

作用

umask 的作用是屏蔽掉新创建文件和目录的默认权限位。更具体地说,umask 的值会从新文件或目录的默认权限中减去,以确定它们的最终权限。这是通过按位取反 umask 值然后与默认权限进行按位与操作来实现的。例如,如果 umask 设置为 022,则新文件的默认权限会被修改为 rw-r--r--(所有者可读写,其他用户只可读)。

示例

  1. 查看当前 umask

要查看当前系统的 umask 值,只需运行 umask 命令,它将返回当前的 umask 值:

umask
  1. 设置新的 umask

要设置新的 umask 值,只需将所需的权限位值传递给 umask 命令。例如,要将 umask 设置为 027

umask 027
  1. 永久修改 umask

若要永久修改 umask 值,可以在用户的 shell 配置文件中添加 umask 命令。例如,将 umask 设置为 027 并永久保存:

~/.bashrc~/.bash_profile 文件中添加以下行:

umask 027   

这将确保在每次用户登录时都会应用指定的 umask 值。

注意事项

  • umask 的值通常以八进制表示,因此请确保使用正确的格式来设置它。
  • umask 设置的值影响新文件和目录的默认权限,但不会影响已经存在的文件和目录的权限。
  • 默认的 umask 值通常设置为 022002,这样新文件会具有相对安全的默认权限,但可以根据需求进行调整。
  • 注意,在设置 umask 值时,要确保不要过于放宽文件和目录的默认权限,以保护系统的安全性。

su

su(switch user)是一个在Unix和类Unix操作系统中用于切换用户的命令。它允许已登录的用户切换到另一个用户账户,通常是超级用户(root),以便执行需要特殊权限的任务。

语法:

su [options] [username]
  • options:可选参数,用于指定一些特定选项,例如保持环境变量、使用登录 shell 等。
  • username:可选参数,要切换到的目标用户账户。如果未提供该参数,默认会切换到超级用户账户(root)。

示例

  1. 切换到超级用户(root)

如果不提供任何用户名,su 命令会默认将用户切换到超级用户(root):

su 

需要输入超级用户的密码才能切换到 root 用户。

  1. 切换到其他用户

要切换到特定的用户账户,只需将目标用户名作为参数传递给 su 命令:

su username

在这里,将 username 替换为要切换到的实际用户名。

  1. 保持环境变量

默认情况下,使用 su 命令切换到其他用户时,环境变量会被重置为目标用户的默认值。如果希望保留当前用户的环境变量,可以使用 - 选项:

su - username   

或者可以使用 --login 选项,效果相同:

su --login username
  1. 使用登录 shell

使用 -l 选项,也可以使用 --login 选项,可以强制切换到目标用户的登录 shell:

su -l username   

注意事项

  • 当切换到其他用户账户时,需要输入目标用户的密码,除非是超级用户(root)。
  • 使用 su 命令时,请小心不要意外地执行系统中的敏感操作,尤其是当切换到超级用户时。因为超级用户具有系统的最高权限,可以对系统进行任何更改。
  • 请谨慎使用超级用户(root)权限,仅在必要时切换到超级用户账户来执行需要特殊权限的任务。
  • 在许多系统中,为了安全起见,su 命令可能需要在特定的用户组中或具有特定权限的用户才能使用。

chown

chown 是一个用于更改文件或目录的所有者(owner)和所属组(group)的命令。在Unix和类Unix操作系统中,每个文件和目录都有一个所有者和一个所属组,这些属性决定了谁可以访问文件以及如何访问。chown 命令允许系统管理员或文件所有者更改这些属性,以便更好地管理文件系统。

语法:

chown [options] owner[:group] file(s)
  • options:可选参数,用于指定一些特定选项,例如递归操作、改变文件类型等。
  • owner:新的所有者的用户名或用户ID。
  • group:可选参数,新的所属组的组名或组ID。如果省略,将保持原始所属组不变。
  • file(s):要更改所有者和/或所属组的文件或目录。

示例

  1. 更改文件所有者

要更改文件的所有者,只需提供新的用户名或用户ID,以及要更改的文件的路径:

chown newuser file.txt  
  1. 更改文件的所有者和所属组

要同时更改文件的所有者和所属组,可以在 owner 后面加上 :,然后指定新的组名或组ID:

chown newuser:newgroup file.txt
  1. 只更改所属组

如果只想更改文件的所属组,而不改变所有者,可以使用 :,但省略 owner

chown :newgroup file.txt  
  1. 递归更改目录及其内容

使用 -R 选项可以递归地更改目录及其所有内容的所有者和/或所属组:

chown -R newuser:newgroup directory/

注意事项

  • 在使用 chown 命令时,确保提供正确的用户名、用户ID、组名或组ID。否则,可能会导致文件所有权混乱,甚至可能导致访问问题。
  • 使用 chown 命令需要足够的权限。通常,只有文件的所有者或超级用户(root)可以更改所有者和所属组。
  • 谨慎使用 chown 命令,特别是在系统范围内递归更改所有者和所属组。不正确的使用可能会影响系统的正常运行和安全性。
  • 如果是普通用户,可能需要超级用户权限(通过 sudo 命令)来执行某些 chown 操作。
  • 在执行递归操作时,请特别小心。确认要更改的文件和目录,以及更改后的所有者和所属组。

结束语

本系列就到此为止了,这些命令不用全记住 用到的时候想不起来查一下就好,其实用多了 自然而然就记住了~

本着把自己知道的都告诉大家,如果本文对有所帮助,点赞+关注鼓励一下呗~

相关文章
|
7天前
|
SQL 缓存 监控
|
7天前
|
前端开发 Linux Shell
|
16小时前
|
Linux
linux设置全局命令
linux设置全局命令
4 0
|
1天前
|
存储 安全 Linux
深入理解 Linux 用户和用户组的基本概念 + 相关命令 (一篇就够)
深入理解 Linux 用户和用户组的基本概念 + 相关命令 (一篇就够)
|
1天前
|
Linux 数据库
Linux 常用基础命令(2024年最新篇)新手小白必看 初识Linux
Linux 常用基础命令(2024年最新篇)新手小白必看 初识Linux
|
1天前
|
存储 监控 Ubuntu
Linux 中常用的 systemd 命令讲解
Linux 中常用的 systemd 命令讲解
|
1天前
|
存储 缓存 Linux
【Linux常见基本命令,一文速通(一)】
【Linux常见基本命令,一文速通(一)】
7 0
|
2天前
|
Linux 数据库
如何在 Linux 中使用帮助命令?
【5月更文挑战第5天】
22 1
如何在 Linux 中使用帮助命令?
|
2天前
|
数据可视化 搜索推荐 Linux
|
4天前
|
Linux Shell 网络安全
网络安全中Dos和linux常用命令总结
本篇是对网安学习中,常用的命令做一个图文与命令示例,并对一些比较重要的dos和shell命令进行总结,方便自己后续学习进行查询,并希望能够给更多人有一个总结命令和了解命令的地方.