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

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

💗系列专栏: 【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.mzph.cn/bicheng/1578.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 全栈安全(三)

原文:annas-archive.org/md5/712ab41a4ed6036d0e8214d788514d6b 译者:飞龙 协议:CC BY-NC-SA 4.0 第十一章:OAuth 2 本章内容 注册 OAuth 客户端 请求对受保护资源的授权 授权而不暴露身份验证凭据 访问受保护的资源 OAuth …

人脑是怎么防止梯度消失和梯度爆炸的

人脑是怎么防止梯度消失和梯度爆炸的? 神经网络,也称为人工神经网络 (ANN) 或模拟神经网络 (SNN),是机器学习的子集,并且是深度学习算法的核心。其名称和结构是受人类大脑的启发,模仿了生物神经元信号相互传递的方式。 感觉这个问…

亚马逊---设计安全架构

会从以下三个方面展开: 1、AWS资源访问安全 2、应用程序负载的网络安全 3、云中数据的安全 责任共担模式 就像租房子(房东和你的责任) AWS资源访问安全 需要掌握以下几点: 1、跨多个账户的访问控制和管理 2、AWS联合访问和身份服…

SpringMVC--RESTful

1. RESTful 1.1. RESTful简介 REST:Representational State Transfer,表现层资源状态转移。 RESTful是一种网络架构风格,它定义了如何通过网络进行数据的交互。这种风格基于HTTP协议,使得网络应用之间的通信变得更加简洁和高效。…

力扣283. 移动零

Problem: 283. 移动零 文章目录 题目描述思路复杂度Code 题目描述 思路 1.定义一个int类型变量index初始化为0; 2.遍历nums当当前的元素nums[i]不为0时使nums[i]赋值给nums[index]; 3.从index开始将nums中置对应位置的元素设为0; 复杂度 时间…

Java 异常处理详解

Java异常是Java编程语言中用于表示程序运行时错误的一种机制。Java异常体系通过异常类和异常处理来实现,允许程序在遇到预期或意外情况时,优雅地处理问题,而不是立即终止程序运行。 异常类层次结构 Java异常类都继承自java.lang.Throwable类…

python爬虫--------requests案列(二十七天)

兄弟姐们,大家好哇!我是喔的嘛呀。今天我们一起来学习requests案列。 一、requests____cookie登录古诗文网 1、首先想要模拟登录,就必须要获取登录表单数据 登录完之后点f12,然后点击network,最上面那个就是登录接口…

Spring AI Summary

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl Spring AI is a project that aims to streamline the development of AI applications by providing abstractions and reusable components that can be easily integrate…

【软考---系统架构设计师】软件架构

目录 1 一、软件架构的概念 二、软件架构风格 (1)数据流风格​​​​​​​ (2)调用/返回风格 (3)独立构件风格 (4)虚拟机风格 (5)仓库风格 三、架构…

labview中循环停止事件的深入研究

1.错误用法 第一次值事件运行的时候空白按钮给的F值,第二次值事件运行的时候空白按钮给的T值,这时循环才真正结束。 2.正确用法之一 赋值和值改变事件从同时进行变成按顺序执行。 3.正确用法之二 值事件发生以后超时事件将T值赋值给结束条件&#xff…

Linux环境变量深度解析

文章目录 一、引言二、环境变量的基本概念1、环境变量的定义2、环境变量的作用与意义 三、环境变量的导入1、导入所需文件2、登陆时的导入 四、环境变量的设置方法1、查看环境变量的方式2、使用export命令临时设置环境变量3、修改配置文件以永久设置环境变量 五、命令行参数与环…

免费听音乐,下载音乐mp3,mp4,歌词的网站分享(2024-04-22)

亲测!!! 1、音乐客 免费听和免费下载 经典老歌 - 音乐客音乐客,yinyueke.net,免费音乐,免费在线音乐播放器,免费下载音乐,音乐,播放器,下载,播放,DJ,免费,mp3,高音质,…

LinkedList和链表

1.ArrayList的缺陷 ArraryList由于底层是一段连续的空间,所以在ArrayList任意位置插入或者删除元素时,就 需要将后续元素往前或者往后搬移,时间复杂度为O(n),效率比较低,因此ArrayList不适合做任意位置插入和删除比较…

pytest教程-27-分布式执行用例插件-pytest-xdist

上一小节我们学习了pytest随机执行用例插件-pytest-random-order,本小节我们讲解一下pytest分布式执行用例插件pytest-xdist。 前言 平常我们手工测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟。如果一个测试人员执行需要10…

C++的初步知识——命名空间,缺省参数,重载函数

C 首先写一段代码&#xff1a; #include <stdio.h>int main() {printf("Hello world\n");return 0; }这段C语言代码在cpp文件中仍可运行。我们了解C是兼容C语言的&#xff0c;C的关键字中就包含了C语言的关键字和自身的关键字。关于关键字&#xff0c;我们简…

PTA L2-052 吉利矩阵

题目 解析 这题考的是搜索剪枝 可行性剪枝&#xff1a; 即判断当前行&#xff08;列&#xff09;是否已经超过L和剩下的格子都填最大值是否小于L&#xff0c;若是则剪枝。 当前行数大于1时&#xff0c;判断上一个填完的行是否等于L&#xff0c;若否&#xff0c;则剪枝。 当前行…

浏览器数据找回

网站上分享的文章应该都是个人的心血&#xff0c;对于一些操作问题导致心血丢失真的很奔溃&#xff0c;终于找到一个弥补的办法&#xff0c;csdn的文章谷歌浏览器亲测有效&#xff0c;理论上其他浏览器的其他网站应该也可以&#xff0c;适用以下场景 把博客编辑当成了编写新博…

MATLAB中gurobi 运行报错与调试

问题背景如下&#xff1a;刚拿到一份MATLAB的代码&#xff0c;但是电脑第一次安装gurobi&#xff0c;在运行过程中发生了报错&#xff0c;使用断点进行调试和步进调试方法&#xff0c;最终发现&#xff0c;这个问题出在了哪一步&#xff0c;然后向了人工智能和CSDN、百度寻求答…

ELK 日志分析(二)

一、ELK Kibana 部署 1.1 安装Kibana软件包 #上传软件包 kibana-5.5.1-x86_64.rpm 到/opt目录 cd /opt rpm -ivh kibana-5.5.1-x86_64.rpm 1.2 设置 Kibana 的主配置文件 vim /etc/kibana/kibana.yml --2--取消注释&#xff0c;Kiabana 服务的默认监听端口为5601 server.po…

李宏毅2022机器学习/深度学习 个人笔记(2)

本系列用于推导、记录该系列视频中本人不熟悉、或认为有价值的知识点 本篇记录第一讲&#xff08;选修&#xff09;&#xff1a;神奇宝贝分类&#xff08;续&#xff09; 讲解如何用高斯概率分布假设来推导类似于逻辑斯蒂分布的表达式 如图&#xff0c;boundary变为直线&…