Linux - 权限

embedded/2024/9/24 4:21:15/

文章目录

    • 一、用户
    • 二、文件


一、用户

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

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

2、su指令
(1)功能

su指令是Linux系统中用于切换用户身份的重要命令。

(2)语法

su [选项] [用户名]

(3)常用选项

-c:在切换用户身份后执行指定的命令,然后退回到原始用户身份。例如,su -c “ls /root” username会在切换到username用户后执行ls /root命令,然后退出。
-l 或 -:模拟用户登录过程,加载目标用户的环境变量和shell配置文件,如同用户真正登录一样。如果不带用户名,则默认切换到root用户。例如,su -或su -l会切换到root用户,并加载root的环境变量。
-s:指定切换用户后要使用的shell。例如,su -s /bin/bash username会在切换到username用户后,使用bash作为其shell。
-m 或 -p 或 --preserve-environment:在切换用户时保留当前用户的环境变量,不改变环境变量。这个选项与-l是互斥的,通常不建议同时使用。
-u:指定要切换到的目标用户ID或用户名。例如,su -u 1000或su -u username。
–help:显示su命令的帮助信息。
–version:显示su命令的版本信息。

(4)举例
由普通用户切换到root用户。

su -	//或者su

由root用户切换到普通用户,并且回到普通用户的家目录下。

su -l xzy

3、添加和删除普通用户

只能在root账户下添加新普通用户,或者使用sudo指令提权。

命令:
添加普通用户。

adduser 用户名

设置密码,系统会提示我们输入两次密码。

passwd 用户名

删除普通用户。

userdel 用户名

如果想要同时删除用户的主目录和邮件目录,可以添加-r(或–remove)选项: userdel -r 用户名。

4、查看当前用户
普通账户的目录都存在家目录的/home中。

cd /home

5、查看当前用户是谁和登录信息
(1)whoami 命令

whoami 命令用于显示当前用户的用户名。这是最直接和常用的方法之一。

whoami

(2)who命令

who
命令显示当前登录系统的所有用户的信息,包括用户名、登录终端、登录时间等。虽然这不是直接查看当前用户的方法,但它可以让你了解当前系统上有哪些用户登录。

who

6、sudo指令
(1)介绍与功能

sudo(superuser do 或 substitute userdo)是Linux和类Unix系统中一个非常有用的命令,它允许系统管理员授权某些用户(或用户组)以另一个用户的安全权限(通常是root用户)来运行命令。这与su命令(switch user 或 substitute user)的主要区别在于,sudo不需要知道目标用户的密码(如root),而是需要知道当前用户的密码,并且该用户必须被/etc/sudoers文件明确授权。

(2)给普通用户授权
步骤:在根目录下打开etc/sudoers文件,然后找到下面更改,就可以了。

用户名    ALL=(ALL)       ALL

在这里插入图片描述
(3)特点

(1)安全性:sudo提供了比su更高的安全性,因为它允许管理员精确地控制哪些用户(或用户组)可以运行哪些命令。
(2)审计追踪:所有通过sudo执行的命令都会被记录在日志中(通常是/var/log/auth.log或/var/log/secure),这使得系统管理员可以追踪哪些用户何时执行了哪些命令。
(3)无密码操作:在某些情况下,管理员可以配置/etc/sudoers文件,使得某些用户或用户组在特定条件下执行特定命令时无需输入密码。
(4)限制用户行为:通过/etc/sudoers文件,管理员可以限制用户只能执行某些命令,甚至只能以特定的用户身份执行这些命令。

(4)语法

sudo [选项] [命令]

(5)常用选项

-i,–login:以目标用户(通常是root)的身份登录shell。这与su -相似。
-u <用户>:以指定的用户身份执行命令。默认情况下,sudo会以root用户身份执行命令。
-l:列出当前用户可以执行的命令。
-v:验证用户的密码,并在用户下次使用sudo时不会要求再次输入密码(这取决于sudo的配置)。

(6)举例

使用普通用户执行需要root用户的命令。

sudo cat test.txt	//假设该命令普通用户无法执行

按下回车后需要输入当前用户密码。

二、文件

1、文件包含什么?

文件 = 文件内容 + 文件属性
文件内容:文件内容通常指的是存储在文件中的数据或信息。
文件属性:如作者、文件大小、权限(读写执行)等。

2、文件访问者的分类

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

3、Linux下的文件属性
在这里插入图片描述
(1)文件类型

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

(2)基本权限

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

(3)Linux下权限的表示
对于普通文件:

字符表示:rw- 具有读写的权限但不具有执行的权限 。
八进制表示:110 具有读写的权限但不具有执行的权限。
补充:能否执行一个文件不仅需要看执行权限,还需要看当前文件是否有执行的能力。

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

说明:只有文件的拥有者和root才可以改变文件的权限。

(1)chmod指令
功能:

设置文件的访问权限。

语法:

chmod [选项] 权限 文件名

常用选项

R -> 递归修改目录文件的权限。

权限

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

举例
设置其他用户也能读写文件file.txt

chmod o+rw file.txt

使用3位8进制数字修改文件权限
举例
将所有者的权限设置为读写,所属组和其他用户设置为只读。

chmod 644 file.txt

(2)chown指令
功能

修改文件的拥有者。

语法

chown [选项] 用户名 文件名 

常用选项

-R 或 --recursive: 递归地更改指定目录及其内部所有文件和子目录的所有者。

举例
修改文件file.txt的拥有者为用户xu

chown xu file.txt

递归的修改目录dir的拥有者为xu

chown -R xu dir 

(3)chgrp 指令
功能

修改文件或目录的所属组。

语法

chgrp [选项] 用户组名 文件名

常用选项

-R 递归修改文件或目录的所属组。

举例
修改文件file.txt所属组为xu

 chgrp xu file.txt

修改目录dir的所属组为root

sudo chgrp -R root dir

普通用户将文件修改为root用户时需要越权处理。

(4)umask指令
功能

查看或修改文件掩码。
说明:
(1) 新建文件夹默认权限=0666 ,新建目录默认权限=0777。
(2)但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask 。
(3)超级用户默认掩码值为0022,普通用户默认为0002。

语法

umask 权限值 

举例
查看文件掩码

umask

修改文件掩码为0001

umask  0001

(5)file指令
功能

它通过分析文件的头部信息或内容来识别文件类型,而不是仅仅依赖于文件的扩展名。

语法

file [选项] 文件或目录...

常用选项

-c :详细显示指令执行过程,便于排错或分析程序执行的情形。
-z :尝试去解读压缩文件的内容。

举例
查看文件file.txt的文件类型。

file file.txt

查看压缩文件的类型

file file.zip

5、粘滞位
(1)介绍

在Linux系统中,粘滞位(Sticky Bit)是一个特殊的权限标志,它主要用于目录上,以保护目录中的文件不被非所有者用户随意删除或重命名。粘滞位是Unix文件系统权限的一个旗标,首次引入是在Unix的第5版中,但最初并不是用于目录保护,而是用于设置可执行文件。不过,随着Unix和Linux系统的发展,粘滞位的主要应用逐渐转变为对目录的保护。

(2)功能

(1) 保护目录中的文件:当目录设置了粘滞位后,只有该目录的所有者、文件的所有者或超级用户(root)才能删除或重命名该目录下的文件或子目录。这有助于防止非文件所有者用户误删或误操作重要文件。
(2)提升系统安全性:在公共目录(如/tmp)中设置粘滞位,可以防止普通用户删除或移动其他用户的临时文件,从而保护系统的稳定性和安全性。

(3)设置粘滞位

chmod +t 目录名

(4)注意事项

(1)粘滞位只对目录有效,对文件无效。
(2)粘滞位只能防止文件被非所有者用户删除或重命名,但不能阻止其他用户读取、写入或执行文件(具体取决于文件的其他权限设置)。
(3)粘滞位不能阻止其他用户往该目录中添加新的文件或子目录。
(4)只有目录的所有者、文件的所有者或超级用户(root)才能删除或重命名设置了粘滞位的目录中的文件或子目录。

6、文件确认用户身份
按照拥有者、所属组、其他用户的顺序确认、并且身份确定过程只会确定一次。
在这里插入图片描述


http://www.ppmy.cn/embedded/98385.html

相关文章

松下弧焊机器人维修 控制柜故障 连接线修复

一、Panasonic焊接机器人控制柜与机器人的接线 机器人的控制箱&#xff0c;一定要配对使用。松下焊接机器人控制柜已经记忆了机器人的绝对原点(机器人位置控制原点)。 二、编码器电缆 (圆形连接器) 1. 接口的插头插座要注意&#xff0c;插头要插到插座中。 2. 用一手握住电缆&a…

泊松自助法(Poisson Bootstrap Sampling):大型数据集上的自助抽样

自助抽样可以根据收集的样本推断总体的统计特征(如均值、十分位数、置信区间)。泊松自助抽样&#xff08;Poisson Bootstrap Sampling&#xff09;是一种用于统计分析中的重采样技术&#xff0c;特别是在机器学习和数据科学中用于模型评估和误差估计。这种方法的一个特点是保留…

仿真软件的功能有哪些?仿真软件助力科研与工程领域

仿真软件是一种强大的工具&#xff0c;可以帮助工程师和科学家在虚拟环境中模拟和分析各种现象和系统。它们具有广泛的应用领域&#xff0c;包括工程设计、科学研究、产品开发和决策支持等。 随着科技的飞速发展&#xff0c;仿真软件已成为科研与工程领域中不可或缺的工具。本文…

<Linux> 进程控制

目录 一、进程创建 1. fork函数 2. fork函数返回值 3. 写时拷贝 4. fork常规用法 5. fork调用失败原因 6. 如何创建多个子进程&#xff1f; 二、进程终止 1. 进程退出场景 2. 进程退出码 3. errno 4. 进程异常退出 5. 进程常见退出方法 5.1 return退出 5.2 exit退出 5.3 _ex…

ORACLE ADG 主库的归档日志不能主动传递到备库

主库有三个节点 &#xff0c;其中两个节点传递没有问题&#xff0c;唯独节点二的归档日志不能主动传递到备库&#xff0c;都是在备库恢复需要的时候一个个传递到备库。下面是备库的日志。 Media Recovery Waiting for thread 2 sequence 1204582 …

后端开发刷题 | 跳台阶问题

描述 一只青蛙一次可以跳上1级台阶&#xff0c;也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法&#xff08;先后次序不同算不同的结果&#xff09;。 数据范围&#xff1a;1≤n≤40 要求&#xff1a;时间复杂度&#xff1a;O(n) &#xff0c;空间复杂度&#…

知乎搜索技巧大公开, 三种方法帮你找到有价值的内容

本文将揭秘知乎搜索的三大高效技巧&#xff0c;帮助你从信息海洋中快速定位到真正有价值的内容。通过这些实用策略&#xff0c;无论是专业研究还是日常学习&#xff0c;都能让你的知乎之旅更加高效与充实。 正文 一、善用高级搜索语法&#xff0c;精准定位 在知乎搜索框中&a…

linux 提权

linux 提权 linux 提权linux 本机信息枚举常见命令find命令大全 linux 自动枚举工具内核提权利用步骤漏洞来源 sudo提权suid 提权capabilities(功能) 提权计划任务提权环境变量提权NFS&#xff08;网络文件共享&#xff09;提权 linux 提权 linux 本机信息枚举 常见命令 hos…