Linux-权限

1.Shell命令以及运行原理

Linux 严格意义上说的是一个操作系统,我们称之为 " 核心( kernel ) " ,但我们一般用户,不能直接使用 kernel 。而是通过kernel 的 " 外壳 " 程序,也就是所谓的 shell ,来与 kernel 沟通。
从技术角度, Shell 的最简单定义:命令行解释器( command Interpreter )主要包含:

  • 将使用者的命令翻译给核心(kernel)处理。
  • 同时,将核心的处理结果翻译给使用者。

shell 对于 Linux ,主要是对我们的指令进行解析,解析指令给 Linux 内核。反馈结果在通过内核运行出结果,通过shell 解析给用户。

1.1 外壳程序的意义

  • 是用户和操作系统交互中间软件层。
  • 可以在一定程度,起到保护操作系统的作用。

2.权限的概念

Linux 下有两种用户:超级用户( root )、普通用户。

  • 超级用户:可以再linux系统下做任何事情,不受限制
  • 普通用户:在linux下做有限的事情。
  • 超级用户的命令提示符是"#",普通用户的命令提示符是"$"。

命令 : su 用户名
功能 :切换用户。
例如,要从 root 用户切换到普通用户 user ,则使用 su user 。 要从普通用户 user 切换到 root 用户则使用 su root( root 可以省略),此时系统会提示输入 root 用户的口令。

3.权限的管理

3.1 文件访问者的分类

  • 文件和文件目录的所有者:u---User。
  • 文件和文件目录的所有者所在的组的用户:g---Group。
  • 其它用户:o---Others。

3.2 文件类型和访问权限

  • 文件类型

d :文件夹

  • :普通文件
    l :软链接(类似 Windows 的快捷方式)
    b :块设备文件(例如硬盘、光驱等)
    p :管道文件
    c :字符设备文件(例如屏幕等串口设备)
    s :套接口文件
  • 基本权限

i. 读( r/4 ): Read 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限。
ii. 写( w/2 ): Write 对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限。
iii. 执行( x/1 ): execute 对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
iv."---" 表示不具有该项权限 。

3.3 文件权限值表示方法

(1)字符表示

-rwxrwxrwx ---表示该文件所有访问者所有权限都拥有。

-r--r--r-- ---表示该文件所有访问者都只可读。

(2)八进制表示方法

对应上面字符表示方法的话。

777 ---表示三个访问者都获得全部的权限。

444 ---表示三个访问者都只可读。

4.文件访问权限相关设置方法

a)chmod
功能: 设置文件的访问权限
格式: chmod 参数 权限 文件名
常用选项:

R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限

同样的,修改的权限也可以分为字符修改方式或者是八进制修改方式。

字符修改方式:

chmod u+w /home/abc.txt

chmod o-x /home/abc.txt

① 用户表示符+/-=权限字符

+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

②三位8进制数字

chmod 664 /home/abc.txt

chmod 640 /home/abc.txt

b)chown
功能 :修改文件的拥有者
格式 : chown 参数 用户名 文件名
实例:

chown user1 f1

chown -R user1 filegroup1

c)chgrp
功能 :修改文件或目录的所属组
格式 : chgrp 参数 用户组名 文件名
常用选项 : -R 递归修改文件或目录的所属组
实例

chgrp users /abc/f2

d)umask
功能
查看或修改文件掩码
新建文件夹默认权限 =0666
新建目录默认权限 =0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是 mask ,则实际创建的出来的文件权限是 : mask & ~umask
格式 : umask 权限值
说明 :将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为 0022 ,普通用户默认为0002 。

5.目录的权限

  • 可执行权限: 如果目录没有可执行权限, 则无法cd到目录中。
  • 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容。
  • 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件。

5.1 粘滞位

在一个场景中,许多开发者都在一个公共的目录下进行开发编辑,而他们都分别创建了各自的文件,而这个公共的目录下,每一个人都可以随意删除别人的文件,为此为了解决这个问题,Linux引入了粘滞位的概念。

命令:chmod + t 目录

功能:在一个公共的目录下不能删除别人的文件。

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除

6.总结

  • 目录的可执行权限是表示你可否在目录下执行命令。
  • 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限。
  • 如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但没有目录的读权限。

7.目录权限面试题

进入一个目录需要什么权限? x ---可执行。

查看目录下的文件列表需要什么权限? r ---可读。

在目录下创建文件或者目录需要什么权限? w ---可写。

相关推荐
A小辣椒1 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒5 小时前
TShark:基础知识
linux
AlfredZhao7 小时前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao1 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334661 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪1 天前
linux 拷贝文件或目录到指定的位置
linux
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式