【Linux系统编程】第六弹---权限的概念

news/2024/10/25 8:20:20/

个人主页: 熬夜学编程的小林

💗系列专栏: 【C语言详解】 【数据结构详解】【C++详解】【Linux系统编程】

目录

1、什么是权限

2、权限的本质

3、Linux中的用户

4、Linux中文件的权限

4.1、文件访问者的分类(角色)

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

 4.3、文件权限值的表示方法

总结


1、什么是权限

权限随处可见,在生活中,听正版的音乐需要会员,看VIP电视也需要会员,所以权限就是通过一定的条件,拦住一部分人,给一部分人权限,来访问某种资源。在Linux系统中也有许多权限,访问文件需要权限,进入目录需要权限,更改执行文件也需要权限。

2、权限的本质

权限和人有关,权限和事物的属性有关。

权限 = 人(角色) + 事物(文件) 属性

3、Linux中的用户

在Linux中是否有权限是对用户而言设置的,那么Linux中用户有哪些呢?

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

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

前面我们已经使用了root(超级用户)进行指令操作,那么如果我们现在想要使用普通用户进行操作指令应该怎么操作呢?

想要使用普通用户操作指令,毋庸置疑,首先得先有普通用户,那么在Linux中怎么创建普通用户呢?

1、创建普通用户语法

useradd [选项] 用户名

2、选项

  -c:指定用户的注释信息。

  -d:指定用户的主目录。

  -g:指定用户所属的初始组。

  -m:创建用户的创建用户的主目录。

  -s:指定用户的登录Shell。

3、设置密码

passwd 用户名

注意:执行该命令后,系统会提示输入新密码,并要求再次确认密码。

4、删除普通用户语法

userdel [选项] 用户名  (需要root权限才能删除用户)

5、选项

-r  : 删除用户的同时,删除与用户相关的所有文件,包括家目录与 mail 相关目录

注意:加上 -r 选项会删除指定用户所有相关的文件,无论是家目录还是 mail 相关目录。

经过上面的步骤我们的用户就创建好了,通过实际的指令来演示一遍,如下:

[root@VMCentos7 ~]# useradd lin # 创建用户名为lin的用户
[root@VMCentos7 ~]# passwd lin  # 给用户lin设置密码
Changing password for user lin.
New password:                # 输入密码,此处是不会有显示的
Retype new password:         # 重新输入密码
passwd: all authentication tokens updated successfully. # 表示密码更新成功了

如何查看我们创建的用户呢?实际我们Linux中创建的用户都是放在home(家)目录中的,我们只需要将目录切换到home(家)目录查看即可。

[root@VMCentos7 ~]# cd /home 
[root@VMCentos7 home]# ls 
lin # lin用户为刚刚创建的 

用户创建好之后那我们如何对上面的两种用户进行切换呢?

切换用户命令

语法:

su  [-]  [用户名]  

注意:-可加可不加,但是加与不加是有区别的。


功能:

切换用户。


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

[lin@VMCentos7 ~]$ whoami # 查看当前用户是谁
lin
[lin@VMCentos7 ~]$ su # su什么都不加即切换至超级用户,需要输入超级用户密码
Password:             # 输入密码,屏幕不会有显示
[root@VMCentos7 lin]# whoami 
root
[root@VMCentos7 lin]# pwd # 查看当前目录,虽然切换用户,但是目录还是原来目录
/home/lin
[root@VMCentos7 lin]# su - lin  # 加-切换用户至lin用户 
Last login: Sun Mar 24 22:59:27 CST 2024 on pts/0
[lin@VMCentos7 ~]$ whoami
lin
[lin@VMCentos7 ~]$ 

切换用户加不加横杠 (-) 的区别是:

 有横杠:用户切换,更改工作目录,加载所有用户环境配置

 无横杠:用户切换,但是工作目录不会切换到该用户所在工作目录,也不会加载该用户设置的环境变量。

注意:从超级用户切换到普通用户是不需要输入密码的,因为超级用户是可做任何事的,但是从普通用户切换到超级用户是需要输入超级用户的密码的。

下面看看用户在Linux中扮演的角色:

[lin@VMCentos7 ~]$ touch nomal.txt # 以lin用户创建一个文件
[lin@VMCentos7 ~]$ ll # 详细查看文件信息
-rw-rw-r-- 1 lin lin 0 Mar 24 23:18 nomal.txt
[lin@VMCentos7 ~]$ sudo touch root.txt # 不直接切换成root,但是以root的身份创建文件We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:#1) Respect the privacy of others.#2) Think before you type.#3) With great power comes great responsibility.[sudo] password for lin: # 输入lin用户的密码
lin is not in the sudoers file.  This incident will be reported. # 说明没有配置sudo
[lin@VMCentos7 ~]$ su - jkl # 切换成已经配置过的用户
Password: 
Last login: Fri Mar 22 20:07:45 CST 2024 from 120.228.110.152 on pts/0
[jkl@VMCentos7 ~]$ sudo touch root.txt # 不直接切换成root,以root的身份创建文件
[sudo] password for jkl:  # 输入jkl用户的密码
[jkl@VMCentos7 ~]$ ll # 详细查看文件信息
-rw-r--r-- 1 root root     0 Mar 24 23:20 root.txt

4、Linux中文件的权限

4.1、文件访问者的分类(角色)

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

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

查看当前root目录下的文件详细信息:

[root@VMCentos7 ~]# ll
total 8
-rw-r--r-- 1 root root    0 Mar 21 00:39 1.txt
-rw-r--r-- 1 root root    0 Mar 21 00:39 2.txt
drwxr-xr-x 6 root root 4096 Mar 16 20:23 all
-rw-r--r-- 1 root root    0 Mar 16 20:30 file1
drwxr-xr-x 3 root root 4096 Mar 21 17:48 test

文件属性的权限:

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

 常见的文件类型:

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

 4.3、文件权限值的表示方法

1.字符表示方法

2.8进制数值表示方法


总结


本篇博客就结束啦,谢谢大家的观看,如果公主少年们有好的建议可以留言喔,谢谢大家啦!


http://www.ppmy.cn/news/1429585.html

相关文章

天软因子数据系列课堂回顾——“委托订单:流动性因子”

高频因子库4月更新,新增5张表单,51个因子。目前,高频因子数量扩容到628个,涵盖了从2000年开始的全A市场。本次“天软因子数据系列课堂”在线分享的即是最新发布因子列表之一的流动性因子,剖析微观角度下因子的底层逻辑…

就业班 第三阶段(ansible) 2401--4.15 day1 ansible1 模块+配置

自动化运维工具—ansible详解 一、ansible 简介 1、ansible 是什么? ansible是目前最受运维欢迎的自动化运维工具,基于Python开发,集合了众多运维工具(SaltStack puppet、chef、func、fabric)的优点,实现…

UE5 C++ 对项目工程的再认识

一.Intermediate 中间文件Intermediate,涉及到反射。胶水文件,与代码产生关联。通过Generate生成出来。 1.C#编译出第三方文件: 反射文件 头文件关联,UHT里的文件.h cpp的关联,UE将所有的cpp放到 gen.cpp里,实现自动关…

linux服务器配置conda和torch环境踩坑记录

anaconda环境安装torch时候报错 CondaValueError: Malformed version string ~: invalid character(s) 网上所有方法都试过,包括重新设置.condarc文件,换清华源 尝试更新conda conda update -n base conda,无法更新,还是报错上面的错 推测是版…

基于单片机的步进电机驱动控制系统的设计与实现

摘要:通过将单边机下的步进电机驱动控制系统作为主要研究对象,在采用文献研究法对步进电机及其驱动控制系统的工作原理以及总体结构进行统一明确下,分别从硬件电路和系统软件两个角度出发,对单片机下的步进电机驱动控制系统设计进行简要分析研究,提出一种切实可行的设计方案。最…

最新版的GPT-4.5-Turbo有多强

OpenAI再次用实力证明了,GPT依然是AI世界最强的玩家!在最新的AI基准测试中,OpenAI几天前刚刚发布的GPT-4-Turbo-2024-04-09版本,大幅超越了Claude3 Opus,重新夺回了全球第一的AI王座: 值得一提的是&#xf…

MySQL 中 InnoDB 存储引擎使用的 B+树底层数据结构

简要介绍 InnoDB 和它为什么选择使用 B树 InnoDB 是 MySQL 中默认的存储引擎,广泛用于生产环境中,特别是在要求高可靠性和事务性的应用场景。这个存储引擎支持事务处理、行级锁定、外键约束等高级数据库功能,这使得它非常适合处理大量数据并…

1115: 【C2】【字符串】【入门】最长最短单词

题目描述 输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格和逗号。单词由至少一个连续的字母构成,空格是单词间的间隔。 试输出第1个最长的单词和第1个最短单词。 输入 一行句子。 输出 两…