Linux:权限

目录

一、shell运行原理

二、权限

1.权限的概念

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

三、常见的权限问题

1.目录权限

2.umsk(权限掩码)

3.粘滞位


一、shell运行原理

1.为什么我们不是直接访问操作系统?

  1. "人"不善于直接使用操作系统
  2. 如果让人直接访问操作系统,a.操作成本特别高 b.人会犯错,有风险

系统的设计者,不会让"人"直接操作 操作系统

2.我们是如何访问操作系统的?

--通过外壳程序

图形化界面&&指令操作是什么?

--操作系统提供的外壳程序

3.外壳程序的意义

  1. 是用户和操作系统交互的中间软件层(将使用者的命令翻译给核心(kernel)处理。
    同时,将核心的处理结果翻译给使用者)
  2. 可以在一定程度,起到保护操作系统作用

二、权限

1.权限的概念

权限:

针对人,事物的基本属性决定权限相关概念(能否完成一件事情)

权限的核心 = 人 + 事务属性(rwx)

对人操作

--Linux是一个多用户操作系统,Linux下可以存在多个用户

  • root:只用一个,具有Linux下的最高权限(一般不受权限约束)
  • 普通用户:可以有多个,要受权限的约束

--如何切换用户

root < -- 切换 -- > 普通用户 ,切换当前权限

  1. 切换到root su - 然后再输入密码(root) (普通用户和root密码尽量不同)
  2. 切换到普通用户: ctrl + D(退回)
  3. root切换到其它用户: su + 名字
  4. 普通用户切普通用户:su + 名字 然后输入该用户的密码

对角色和文件操作

--角色(人)

  1. 文件和文件目录的所有者:u---User
  2. 文件和文件目录的所有者所在的组的用户:g---Group
  3. 其它用户:o---Others

--文件类型和访问权限(事物属性)

文件类型:

  • d:目录
  • -:普通文件
  • p:管道文件
  • b:块设备
  • c:字符设备

基本权限

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

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

指令:chmod

功能:设置文件的访问权限

格式:chmod [参数] 权限 文件名

选项:

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

改权限

--1.ugo+-修改

复制代码
改权限: chmod  u+x  myfile.txt           (拥有者)
        chmod u-x  myfile.txt
        chmod u+rwx  myfile.txt 
        chmod  g+x  myfile.txt              (所属者)
        chmod  o+r  myfile.txt             (other)

        chmod  u-wx,g-x,o+r myfile.txt 
        chmod  a+x  myfile.txt  (所有人)

相关概念:

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

--2.八进制修改

复制代码
chmod  777 myfile.txt
(7的二进制:111,1:有权限    0:无权限)

通过二进制的方式,给了拥有者,所属者,其它用户所有读写执行的权限

改人

--更改文件的所属者(需要提升权限)

复制代码
--root下
chown 用户名 文件名(拥有者)
chgrp 用户名 文件名 (所属组)

这里可以看到所属者从root变为zy

补充:

sudo 指向命令后以root权限级别来执行

如果用户想执行sudo,需要将用户添加到信任列表里

三、常见的权限问题

1.目录权限

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

rw权限限制了用户能否查看和写(执行ls指令,touch/mkdir指令)

补充:权限只会被认证一次,若你是拥有者又是所属者,则只看拥有者权限

2.umsk(权限掩码)

Linux默认:

1.一个目录被创建,起始权限:777

2.一个普通文件被创建,起始权限:666

为什么创建一个目录或文件,默认权限是

d rwx rwx r-x

  • rw- rw- r--

原因:要受到umaks过滤(凡是在umsk中出现的权限,都不应该在最终权限中出现

最终权限 = 起始权限&(~umask)

3.粘滞位

大家所有用户都在一个共同的路径下,对该目录具有读写执行权限

1.当多个用户共享一个目录,需要在该目录下进行,读写,创建文件

2.但是自己只能删除自己的,而不能删除别人的(w:可以互删,但不满足条件)

粘滞位解决上面情况: chmod +t 目录 即可

粘滞位只能给目录设置(谁设置,谁取消)

示例:

现在zy和tmp在同一路径下,都有rwx权限

tmp可以删除zy的文件:

为了防止这种情况发生,我们加上粘滞位,(root下)

然后我们切回tmp,看看还能不能删除zy文件

由于粘滞位,这里不能互删

相关推荐
天天进步20155 分钟前
【Linux 运维】告别 cat:如何按“时间段”优雅地截取日志文件?
linux·运维·服务器
zl_dfq1 小时前
Linux 之 【进程等待】
linux
遇见火星1 小时前
Linux性能调优:理解CPU中的平均负载和使用率
linux·运维·服务器·cpu
Chennnng2 小时前
Ubuntu 安装过程的 6 大常见问题类型
linux·运维·ubuntu
阿干tkl2 小时前
传统网络与NetworkManager对比
linux·网络
Evan芙3 小时前
Linux 进程状态与进程管理命令
linux·运维·服务器
码农12138号4 小时前
Bugku HackINI 2022 Whois 详解
linux·web安全·ctf·命令执行·bugku·换行符
Joren的学习记录4 小时前
【Linux运维进阶知识】Nginx负载均衡
linux·运维·nginx
用户2190326527354 小时前
Java后端必须的Docker 部署 Redis 集群完整指南
linux·后端
胡先生不姓胡4 小时前
如何获取跨系统调用的函数调用栈
linux