更改 Linux 权限更改 Linux 系统中的权限
由 Mux 赞助的 DEV 全球展示挑战赛:展示你的项目!
在上一篇文章中,我们探讨了Linux 系统中的权限。
如果你还没有阅读上一篇文章,我强烈建议你先阅读最后一篇文章。
现在,我们来学习如何在 Linux 系统中更改权限。
1.chmod命令
chmod代表更改文件模式,用于更改文件/目录的权限。
任何人都可以更改文件/目录的权限吗?
不,只有所有者或root用户(超级用户)才能更改文件/目录权限。
我们可以通过两种方式更改模式(权限)。
- 绝对模式
- 符号模式
绝对模式:
在绝对模式下,我们使用八进制数字来表示所有者、组和其他人的权限。
好的,但是你说的八进制数是什么意思呢?
八进制是一种用于在计算机上表示数字的数字系统。
八进制中,计数使用 0 到 7 之间的数字。
| 八进制数 | 权限类型 | 象征 |
|---|---|---|
| 0 | 未经许可 | --- |
| 1 | 仅执行 | --x |
| 2 | 仅写入 | -w- |
| 3 | 编写并执行 | -wx |
| 4 | 只读 | r-- |
| 5 | 读取并执行 | 处方药 |
| 6 | 阅读和写作 | rw- |
| 7 | 读取、写入和执行 | rwx |
我们来看一下语法。chmod
要更改文件/目录的模式,我们只需使用chmod上表中的模式之一以及文件/目录即可。
在上面的例子中,我们使用命令ls -l hello.txt检查了所有者、组和其他用户的当前权限,发现所有者具有读写 (rw-) 权限,组也具有读写 (rw-) 权限,而其他用户具有只读 (r--) 权限。
如果为了提高安全性,我们想将该组的权限更改为只读,而保持其他权限不变,该怎么办?
我们使用了该命令chmod 644 hello.txt。
chmod表示命令更改模式,644表示读写、只读和只读权限,hello.txt表示我们要更改权限的文件的名称。
现在我们已经了解了如何使用chmod命令,接下来让我们看看一些最常用的模式。
| 模式 | 文件属性 | 模式的含义 |
|---|---|---|
| 777 | rwxrwxrwx | 没有权限限制。通常来说,这不是一个好的设置,因为任何人都可以更改和执行您的文件。 |
| 700 | rwx------ | 所有者拥有完全访问权限。其他任何人都没有权限。如果我们想将文件和目录设为私有,此设置非常有用。类似地,我们可以将权限设置为 600 来控制非可执行文件。 |
| 644 | rw-r--r-- | 所有者可以读取和写入文件,而其他所有用户只能读取文件。如果只有所有者才能修改文件,则此设置非常有用。 |
| 666 | rw-rw-rw- | 所有用户都可以读取和写入该文件。如果您有一些常用的文件,此设置非常有用。 |
现在,我们来看第二种改变模式的方法。
符号表示法
符号表示法分为三个部分。
- 这项变化将影响哪些人?
与符号表示法中的绝对模式不同,我们实际上可以指定哪些人应该受到此更改的影响。
u代表用户(所有者)g代表组o代表其他a代表所有(即u,g和o)
- 将执行哪项操作
+表示添加权限的操作;-表示删除权限的操作;=表示设置权限并替换先前权限的操作。
- 将设置哪些权限
r表示读取权限;w表示写入权限x;表示执行权限
让我们分别举例说明每项操作。
- 添加权限
在上面的例子中,我们使用命令chmod u+x hello.txt将可执行权限添加到所有者。
chmod表示更改模式的命令;u表示用户(所有者)+;表示添加权限x;表示可执行权限
- 移除权限
在上面的例子中,我们使用命令chmod o-r hello.txt从 Other 中删除了只读权限。
chmod表示更改模式的命令o;表示其他;-表示移除权限r;表示读取权限
- 许可转让
在上面的示例中,我们使用命令chmod g=wr hello.txt为组 where 分配了读写权限。
chmod表示更改模式的命令g;表示组;=表示权限分配wr;表示读写权限
注意:如果我们不指定受影响的对象,则默认为所有人。
这一切都与更改文件/目录的权限有关。
现在,我们来看看如何更改文件/目录的所有权和所属组。
chown命令
该chown命令用于更改文件的所有者/组。
我们举个例子
在这个例子中,我们可以看到文件hello.txt的所有者和组是“yash”。
我们来尝试将文件的所有者更改为“root”。
由于我们要更改文件的所有权,因此该操作需要 root 权限。
在上面的例子中,我们首先尝试在不使用 root 权限的情况下更改所有权,结果出现了错误。
然后我们使用了命令sudo chown root hello.txt`where`
sudo以超级用户身份执行chown表示更改所有权命令root,表示新所有者hello.txt,表示要受影响的文件。
我们再举一个例子,将所有者改回“yash”,但将组改回“root”。
sudo chown yash:root hello.txt在上面的例子中,我们使用了where命令。
sudo以超级用户身份执行此操作,chown表示更改所有权命令yash,表示新所有者root,表示新组hello.txt,表示要受影响的文件。
如果我们只是想换个小组呢?
chgrp命令
要使用命令更改组,chgrp我们只需使用chgrp newGroupName fileName
举个例子,我们最近将文件“hello.txt”的组从“yash”更改为“root”。
现在,我们把它改回来。
chgrp yash hello.txt在上面的例子中,我们使用了where命令。
chgrp表示更改组命令yash,表示新组hello.txt,表示要受影响的文件。
以上就是关于在Linux系统中更改权限的全部内容。希望您能理解。
如有任何疑问或建议,请随时告知。
漫画里见🚀
文章来源:https://dev.to/yashsugandh/changing-permissions-in-linux-system-4a2b










