当前位置: 首页 > 新闻动态 > 技术教程

【玩转Linux】如何简单快速理解权限?

作者:星夢妙者 浏览: 发布日期:2025-06-20
[导读]:Linux操作系统的shell命令及运行原理在Linux系统中,shell充当着用户与操作系统内核之间的桥梁。为什么我们不能直接与内核交互呢?因为内核(kernel)是操作系统的核心部分,负责管理硬件资源和提供服务,而用户通常通过shell这个命令行解释器(commandinterpreter)来与内核沟通。shell的作用类似于Windows中的图形用户界面(GUI),它解析用户输入的命令,并将这些命令传递给内核执行,内核执行完毕后,shell再将结果解析并反馈给用户。Linux权限管理在Li

linux操作系统的shell命令及运行原理

在Linux系统中,shell充当着用户与操作系统内核之间的桥梁。为什么我们不能直接与内核交互呢?因为内核(kernel)是操作系统的核心部分,负责管理硬件资源和提供服务,而用户通常通过shell这个命令行解释器(command interpreter)来与内核沟通。shell的作用类似于Windows中的图形用户界面(GUI),它解析用户输入的命令,并将这些命令传递给内核执行,内核执行完毕后,shell再将结果解析并反馈给用户。

Linux权限管理

在Linux中,存在两种类型的用户:超级用户(root)和普通用户。用户可以通过su命令来切换身份,例如:

  • 从root切换到普通用户user:su user
  • 从普通用户user切换到root:su root(可以省略root)

Linux文件权限管理涉及文件访问者的分类(人)和文件类型及访问权限(事物属性)。文件权限的基本表示方法如下:

Linux表示 说明 Linux表示 说明
r-- 只读 -w- 仅可写
--x 仅可执行 rw- 可读可写
-wx 可写和可执行 r-x 可读可执行
rwx 可读可写可执行 --- 无权限

设置文件访问权限的方法主要包括chmod、chown和chgrp命令:

  • chmod:用于修改文件的权限。例如,chmod 755 filename
  • chown:用于修改文件的拥有者。例如,chown user filename
  • chgrp:用于修改文件的所属组。例如,chgrp group filename

umask命令用于设置新文件的默认权限。例如:

# umask 755
# umask //查看
# umask 044 //设置

sudo命令用于以其他用户身份执行命令。可以通过修改/etc/sudoers文件来分配sudo权限,例如:

# chmod 740 /etc/sudoers
# vi /etc/sudoers

然后在文件中添加相应的配置,例如:

接受权限的用户登陆的主机 =(执行命令的用户) 命令

使用sudo执行授权的命令,例如:

$ sudo –u 用户名 命令

例如:

$ sudo -u root /usr/sbin/useradd u2

目录权限的特殊情况

在Linux中,如果用户对目录具有写权限,他们就可以删除目录中的文件,即使他们没有这些文件的写权限。这可能看起来不合理,因为理论上张三创建的文件不应该被李四删除。以下是一个验证过程:

[root@localhost ~]# chmod 0777 /home/
[root@localhost ~]# ls /home/ -ld
drwxrwxrwx. 3 root root 4096 9月 19 15:58 /home/
[root@localhost ~]# touch /home/root.c
[root@localhost ~]# ls -l /home/
总用量 4
-rw-r--r--. 1 root root 0 9月 19 15:58 abc.c
drwxr-xr-x. 27 litao litao 4096 9月 19 15:53 litao
-rw-r--r--. 1 root root 0 9月 19 15:59 root.c
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/root.c #litao可以删除root创建的文件
rm:是否删除有写保护的普通空文件 "/home/root.c"?y
[litao@localhost ~]$ exit
logout

为了解决这个问题,Linux引入了粘滞位(sticky bit)的概念。设置了粘滞位的目录,其中的文件只能由文件的拥有者或root用户删除。例如:

[root@localhost ~]# chmod +t /home/ # 加上粘滞位
[root@localhost ~]# ls -ld /home/
drwxrwxrwt. 3 root root 4096 9月 19 16:00 /home/
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/abc.c #litao不能删除别人的文件
rm:是否删除有写保护的普通空文件 "/home/abc.c"?y
rm: 无法删除"/home/abc.c": 不允许的操作

关于权限的总结

目录的可执行权限(-x)表示用户是否可以在这个目录下执行命令。如果目录没有-x权限,用户将无法执行任何命令,甚至无法使用cd命令进入该目录,即使目录有-r读权限。相反,如果目录具有-x权限但没有-r权限,用户可以执行命令和进入目录,但由于没有读权限,无法读取目录下的文件。

学习编程需要循序渐进,夯实基础,不要在不稳固的基础上构建高台。

免责声明:转载请注明出处:http://www.sczxchw.cn/news/607801.html

扫一扫高效沟通

多一份参考总有益处

免费领取网站策划SEO优化策划方案

请填写下方表单,我们会尽快与您联系
感谢您的咨询,我们会尽快给您回复!