前言
目前正在出一个Linux命令系列教程, 篇幅会较多, 喜欢的话,给个关注❤️ ~
作为服务端开发,linux命令还是要掌握一下的,可以做做基础性的运维。好了, 废话不多说直接开整吧~
本节是该系列的最后一节,这节给大家介绍一些权限相关的命令,这些命令谨慎操作~
chmod
在Linux系统中使用chmod命令时,可以修改文件或目录的权限。权限控制谁可以读取、写入和执行特定文件或目录。chmod命令允许更改这些权限,以便适应不同的安全需求
语法:
chmod [options] mode filename
options: 可选参数,用于指定一些特定选项,例如递归修改权限、静默模式等。mode: 权限模式,可以是文字模式或数字模式。文字模式更容易理解,数字模式更为紧凑。filename: 要修改权限的文件或目录名称。
权限模式
在mode部分,可以使用以下字符来表示不同的权限:
u: 所有者(user)权限-g: 组权限-o: 其他用户权限-a: 所有用户权限(等同于ugo)
每个权限部分可以使用以下字符来表示权限:
r: 读取权限-w: 写入权限-x: 执行权限
使用示例
- 使用文字模式设置权限:
- 设置所有者读、写、执行权限:
chmod u=rwx filename - 设置组用户只读权限:
chmod g=r filename - 设置其他用户执行权限:
chmod o=x filename - 设置所有用户读权限:
chmod a=r filename
- 使用数字模式设置权限:
- 设置所有者可读写执行,组和其他用户可读:
chmod 744 filename - 所有者可读写执行,组可读执行,其他用户无权限:
chmod 750 filename
- 递归修改目录及其内容的权限:如果要递归地修改目录及其内容的权限,可以使用
-R选项。
- 递归地给目录及其内容赋予所有者读写执行权限:
chmod -R u=rwx directory
- 静默模式:使用
-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: 要更改所有者和/或组的文件或目录名称。
使用示例
- 更改所有者:
- 将文件的所有者更改为新用户:chown newuser filename - 将目录的所有者更改为新用户:chown newuser directory
- 更改组:
- 将文件的组更改为新组:chown :newgroup filename - 将目录的组更改为新组:chown :newgroup directory
- 同时更改所有者和组:
- 将文件的所有者和组同时更改:chown newuser:newgroup filename - 将目录的所有者和组同时更改:chown newuser:newgroup directory
- 递归更改目录及其内容的所有者和组:
如果要递归地更改目录及其内容的所有者和组,可以使用-R选项。
- 递归地将目录及其内容的所有者和组都更改为新用户和新组:chown -R newuser:newgroup directory
- 保留文件的组,只更改所有者:
使用-c选项来仅在所有者或组发生变化时显示修改的文件。
- 仅更改文件的所有者,保留组:chown -c newuser filename
这些示例展示了如何使用chown命令来更改文件和目录的所有者和组。在实际使用时,请确保具有足够的权限来更改所有者和组。更改所有者和组可能会影响文件的访问和权限设置,因此务必小心操作。
chgrp
语法:
chgrp [options] new_group filename
options: 可选参数,用于指定一些特定选项,如递归更改等。new_group: 新的组的组名或组ID。filename: 要更改所属组的文件或目录名称。
使用示例
- 更改组:
- 将文件的组更改为新组:chgrp newgroup filename - 将目录的组更改为新组:chgrp newgroup directory
- 递归更改目录及其内容的组:
如果要递归地更改目录及其内容的组,可以使用-R选项。
- 递归地将目录及其内容的组都更改为新组:chgrp -R newgroup directory
- 保留所有者,只更改组:
使用-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--(所有者可读写,其他用户只可读)。
示例
- 查看当前
umask值:
要查看当前系统的 umask 值,只需运行 umask 命令,它将返回当前的 umask 值:
umask
- 设置新的
umask值:
要设置新的 umask 值,只需将所需的权限位值传递给 umask 命令。例如,要将 umask 设置为 027:
umask 027
- 永久修改
umask值:
若要永久修改 umask 值,可以在用户的 shell 配置文件中添加 umask 命令。例如,将 umask 设置为 027 并永久保存:
在 ~/.bashrc 或 ~/.bash_profile 文件中添加以下行:
umask 027
这将确保在每次用户登录时都会应用指定的 umask 值。
注意事项
umask的值通常以八进制表示,因此请确保使用正确的格式来设置它。umask设置的值影响新文件和目录的默认权限,但不会影响已经存在的文件和目录的权限。- 默认的
umask值通常设置为022或002,这样新文件会具有相对安全的默认权限,但可以根据需求进行调整。 - 注意,在设置
umask值时,要确保不要过于放宽文件和目录的默认权限,以保护系统的安全性。
su
su(switch user)是一个在Unix和类Unix操作系统中用于切换用户的命令。它允许已登录的用户切换到另一个用户账户,通常是超级用户(root),以便执行需要特殊权限的任务。
语法:
su [options] [username]
options:可选参数,用于指定一些特定选项,例如保持环境变量、使用登录 shell 等。username:可选参数,要切换到的目标用户账户。如果未提供该参数,默认会切换到超级用户账户(root)。
示例
- 切换到超级用户(root):
如果不提供任何用户名,su 命令会默认将用户切换到超级用户(root):
su
需要输入超级用户的密码才能切换到 root 用户。
- 切换到其他用户:
要切换到特定的用户账户,只需将目标用户名作为参数传递给 su 命令:
su username
在这里,将 username 替换为要切换到的实际用户名。
- 保持环境变量:
默认情况下,使用 su 命令切换到其他用户时,环境变量会被重置为目标用户的默认值。如果希望保留当前用户的环境变量,可以使用 - 选项:
su - username
或者可以使用 --login 选项,效果相同:
su --login username
- 使用登录 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):要更改所有者和/或所属组的文件或目录。
示例
- 更改文件所有者:
要更改文件的所有者,只需提供新的用户名或用户ID,以及要更改的文件的路径:
chown newuser file.txt
- 更改文件的所有者和所属组:
要同时更改文件的所有者和所属组,可以在 owner 后面加上 :,然后指定新的组名或组ID:
chown newuser:newgroup file.txt
- 只更改所属组:
如果只想更改文件的所属组,而不改变所有者,可以使用 :,但省略 owner:
chown :newgroup file.txt
- 递归更改目录及其内容:
使用 -R 选项可以递归地更改目录及其所有内容的所有者和/或所属组:
chown -R newuser:newgroup directory/
注意事项
- 在使用
chown命令时,确保提供正确的用户名、用户ID、组名或组ID。否则,可能会导致文件所有权混乱,甚至可能导致访问问题。 - 使用
chown命令需要足够的权限。通常,只有文件的所有者或超级用户(root)可以更改所有者和所属组。 - 谨慎使用
chown命令,特别是在系统范围内递归更改所有者和所属组。不正确的使用可能会影响系统的正常运行和安全性。 - 如果是普通用户,可能需要超级用户权限(通过
sudo命令)来执行某些chown操作。 - 在执行递归操作时,请特别小心。确认要更改的文件和目录,以及更改后的所有者和所属组。
结束语
本系列就到此为止了,这些命令不用全记住 用到的时候想不起来查一下就好,其实用多了 自然而然就记住了~
本着把自己知道的都告诉大家,如果本文对有所帮助,点赞+关注鼓励一下呗~