Linux用户和权限

一、认知root用户

1.1  了解什么是root用户(超级管理员)

root用户(超级管理员)

无论是Windows、MacOS、Linux均采用多用户的管理模式进行权限管理。

在Linux系统中,拥有最大权限的账户名为:root(超级管理员)

root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。

演示:

使用普通用户在根目录下创建文件夹

切换到root用户后,继续尝试

1.2  su和exit命令

su命令就是用于账户切换的系统命令,其来源英文单词:Switch User

语法:  su   [-]   [用户名]

        - 符号是可选的,表示是否在切换用户后加载环境变量(后续讲解),建议带上

        参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root


切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键:ctrl + d


使用普通用户,切换到其它用户需要输入密码,如切换到root用户

使用root用户切换到其它用户,无需密码,可以直接切换

1.3  sudo命令

        在我们得知root密码的时候,可以通过su命令切换到root得到最大权限。 但是我们不建议长期使用root用户,避免带来系统损坏。

        我们可以使用sudo命令,为普通的命令授权,临时以root身份执行。


语法:sudo  其他命令


        在其它命令之前,带上sudo,即可为这一条命令临时赋予root授权

        但是并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证

1.3.1  为普通用户配置sudo认证

①切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers

②在文件的最后添加:

        其中最后的NOPASSWD:ALL 表示使用sudo命令,无需输入密码

③最后通过 wq 保存 

④切换回普通用户

⑤执行的命令,均以root运行

二、用户、用户组管理

2.1  用户、用户组介绍

2.2  用户组管理

创建用户组:

        groupadd 用户组名


删除用户组:

        groupdel 用户组名

2.3  用户管理

创建用户:

        useradd  [ -g  -d ]  用户名

        选项:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g

        选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名


删除用户:

        userde  [ -r ]  用户名

        选项:-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留


查看用户所属组:

        id  [ 用户名 ]

        参数:用户名,被查看的用户,如果不提供则查看自身


修改用户所属组:

        usermod -aG 用户组 用户名,将指定用户加入指定用户组

2.4  查看系统用户/用户组

①使用getent命令,可以查看当前系统中有哪些用户

语法: getent passwd

共有7份信息,分别是: 用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)

②使用getent命令,同样可以查看当前系统中有哪些用户组

语法:getent group

包含3份信息,组名称:组认证(显示为x):组ID

三、查看权限控制

3.1   认知权限信息

通过ls -l 可以以列表形式查看内容,并显示权限细节

        序号1,表示文件、文件夹的权限控制信息

        序号2,表示文件、文件夹所属用户

        序号3,表示文件、文件夹所属用户组


解析序号1如下:

3.2  rwx代表什么

        r表示读权限

        w表示写权限

        x表示执行权限

四、修改权限控制 - chmod (修改文件/文件夹的权限信息)

我们可以使用chmod命令,修改文件、文件夹的权限信息。

注意,只有文件、文件夹的所属用户或root用户可以修改。

语法 :  chmod  [ -R ]  权限文件或文件夹

  • 选项-R,设置文件夹和其内部全部内容一样生效

示例:

  • chmod u=rwx,g=rx,o=x hello.txt ,将文件权限修改为:rwxr-x--x  。其中:u表示user所属用户权限,g表示group组权限,o表示other其它用户权限

  • chmod -R u=rwx,g=rx,o=x test,将文件夹test以及文件夹内全部内容权限设置为:rwxr-x--x

除此之外,还有快捷写法:chmod 751 hello.txt,下面来介绍权限的数字序号

4.1  权限的数字序号

        权限可以用3位数字来代表,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其它用户权限。 数字的细节如下:r记为4,w记为2,x记为1,可以有:

  • 0:无任何权限,    即 ---

  • 1:仅有x权限,    即 --x

  • 2:仅有w权限    即 -w-

  • 3:有w和x权限    即 -wx

  • 4:仅有r权限    即 r--

  • 5:有r和x权限    即 r-x

  • 6:有r和w权限    即 rw-

  • 7:有全部权限    即 rwx

所以751表示: rwx(7) r-x(5) --x(1)


 案例:

将hello.txt的权限修改为: r-x--xr-x,数字序号为:chmod 515 hello.txt

将hello.txt的权限修改为: -wx-w-rw-,数字序号为: chmod 326 hello.txt

序号123代表的权限是: --x-w--wx


五、修改权限控制 - chown  (修改文件/文件夹的所属用户和用户组)

使用chown命令,可以修改文件、文件夹的所属用户和用户组

普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户执行

语法:chown [-R] [用户][:][用户组] 文件或文件夹

  • 选项 [-R] ,同chmod,对文件夹内全部内容应用相同规则

  • 选项 [用户] ,修改所属用户

  • 选项[用户组],修改所属用户组

  • [ : ] 用于分隔用户和用户组

示例:

  • chown root hello.txt,将hello.txt所属用户修改为root

  • chown :root hello.txt,将hello.txt所属用户组修改为root

  • chown root:itheima hello.txt,将hello.txt所属用户修改为root,用户组修改为itheima

  • chown -R root test,将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/212057.shtml

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

相关文章

Java9及之后关于类加载器的新特性

为了保证兼容性,JDK9没有从根本上改变三层类加载器的架构和双亲委派模型,但为了模块化系统的顺利运行,仍然发生了一些值得被注意的变动。 一、变动1 由于引入了模块化概念,所以不同的类加载器回去加载属于不同模块的类 启动类加…

Nginx负载均衡实战

🎵负载均衡组件 ngx_http_upstream_module https://nginx.org/en/docs/http/ngx_http_upstream_module.html upstream模块允许Nginx定义一组或多组节点服务器组,使用时可以通过多种方式去定义服务器组 样例: upstream backend {server back…

从零开发短视频电商 在AWS SageMaker已创建的模型列表中进行部署

1.导航到 SageMaker 控制台。 2.在 SageMaker 控制台的左侧导航栏中,选择 “模型” 选项。 3.在模型列表中,找到您要部署的模型。选择该模型。 4.点击 “创建端点” 选项或者点击 “创建端点配置” 选项都可以进行部署。 选择创建端点进去后还是会进行…

k8s中部署基于nfs的StorageClass

部署nfs服务 1.1 创建基础镜像(选做) 如果以docker的形式部署nfs server, 参考此步骤, 若否, 该步骤可忽略。 mkdir /data/nfs -p chmod 755 /data/nfs# NFS默认端口: 111、2049、20048 docker run -d \ --privileged \ --name nfs_server \ -p 111:111/tcp \ -p 111:111/ud…

[CTFshow 红包挑战] 刷题记录

文章目录 红包挑战7红包挑战8红包挑战9 红包挑战7 考点&#xff1a;xdebug拓展 源码 <?php highlight_file(__FILE__); error_reporting(2);extract($_GET); ini_set($name,$value);system("ls ".filter($_GET[1])."" );function filter($cmd){$cmd s…

1832_org-mode的注释处理

Grey # :OPTIONS ^:nil org-mode的注释处理 关于这部分其实比较简单&#xff0c;在我现在的使用诉求上来说要求不多。但是我觉得如果考虑以后把文学式编程作为一种开发的主要体验的话&#xff0c;掌握这样的操作很有必要。因为我可以控制部分信息的输出。 自然&#xff0c;控…

LeetCode-数组-重叠、合并、覆盖问题-中等难度

435. 无重叠区间 我认为区间类的题型&#xff0c;大多数考验的是思维能力&#xff0c;以及编码能力&#xff0c;该类题型本身并无什么算法可言&#xff0c;主要是思维逻辑&#xff0c;比如本题实际上你只需要能够总结出重叠与不重叠的含义&#xff0c;再加上一点编码技巧&#…

go-zero开发入门-API服务开发示例

接口定义 定义 API 接口文件 接口文件 add.api 的内容如下&#xff1a; syntax "v1"info (title: "API 接口文件示例"desc: "演示如何编写 API 接口文件"author: "一见"date: "2023年12月07日"version: "…

Spring Boot 优雅地处理重复请求

前 言 对于一些用户请求&#xff0c;在某些情况下是可能重复发送的&#xff0c;如果是查询类操作并无大碍&#xff0c;但其中有些是涉及写入操作的&#xff0c;一旦重复了&#xff0c;可能会导致很严重的后果&#xff0c;例如交易的接口如果重复请求可能会重复下单。 重复的场…

Verilog基础:$random系统函数的使用

相关阅读 Verilog基础​编辑https://blog.csdn.net/weixin_45791458/category_12263729.html $random系统函数语法的BNF范式如下所示&#xff0c;有关BNF范式相关内容&#xff0c;可以浏览以往文章Verilog基础&#xff1a;巴科斯范式(BNF)。 $random系统函数在每次调用时返回一…

【IDEA】IntelliJ IDEA中进行Git版本控制

本篇文章主要记录一下自己在IntelliJ IDEA上使用git的操作&#xff0c;一个新项目如何使用git进行版本控制。文章使用的IDEA版本 IntelliJ IDEA Community Edition 2023.3&#xff0c;远程仓库为https://gitee.com/ 1.配置Git&#xff08;File>Settings&#xff09; 2.去Git…

[gRPC实现go调用go]

1什么是RPC RPC&#xff1a;Remote Procedure Call&#xff0c;远程过程调用。简单来说就是两个进程之间的数据交互。正常服务端的接口服务是提供给用户端(在Web开发中就是浏览器)或者自身调用的&#xff0c;也就是本地过程调用。和本地过程调用相对的就是&#xff1a;假如两个…

深度优先遍历(DFS)

时间复杂度与深搜一致&#xff1b;

STM32 定时器总结

缩写 ARR: Auto-Reload Register&#xff08;保存定时器的计数范围&#xff09; PSC: Prescaler register&#xff08;预分频器寄存器&#xff0c;根据设置的分频因子N&#xff0c;计数N个定时器时钟脉冲后&#xff0c;产生一个CNT计数&#xff0c;以此实现分频功能&#xff0…

LeetCode 2048. 下一个更大的数值平衡数

一、题目 1、题目描述 如果整数 x 满足&#xff1a;对于每个数位 d &#xff0c;这个数位 恰好 在 x 中出现 d 次。那么整数 x 就是一个 数值平衡数 。 给你一个整数 n &#xff0c;请你返回 严格大于 n 的 最小数值平衡数。 0 < n < 1e6 2、接口描述 public:int nextB…

Android渲染-AHardwareBuffer

本文主要从应用的角度介绍android的native层AHardwareBuffer创建纹理以及保存渲染数据。 HardwareBuffer 要介绍native层的AHardwareBuffer&#xff0c;就需要先从Java层的HardwareBuffer说起。Android官方对于HardwareBuffer介绍如下&#xff1a; HardwareBuffer wraps a na…

HttpURLConnection OOM问题记录

使用HttpURLConnection 上传大文件&#xff0c;会出现内存溢出问题&#xff1a; 观察HttpURLConnection 源码&#xff1a; Overridepublic synchronized OutputStream getOutputStream() throws IOException {connecting true;SocketPermission p URLtoSocketPermission(th…

【接口分享】热门好用的API,含免费次数

语音验证码短信&#xff1a;拨打电话告知用户验证码&#xff0c;实现信息验证。短信验证码&#xff1a;可用于登录、注册、找回密码、支付认证等等应用场景。支持三大运营商&#xff0c;3秒可达&#xff0c;99.99&#xff05;到达率&#xff0c;支持大容量高并发。通知短信&…

基于SSM的点餐系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

mysql设置为密码登录

要设置Ubuntu上的MySQL需要密码登录&#xff0c;你可以使用以下步骤&#xff1a; 打开终端。 输入以下命令登录到 MySQL 服务器&#xff1a; sudo mysql -u root -p按Enter后&#xff0c;系统会要求输入密码。如果是第一次登录&#xff0c;你可能需要直接按Enter键&#xff08…