https://my.oschina.net/u/3113381/blog/5431540

Linux 系统中 root 账号通常用于系统的管理和维护,对操作系统的所有资源具有访问控制权限,当一个普通用户希望执行一些系统维护相关的操作的时候,就需要使用 sudo 命令,临时将该用户的权限提升到 root 权限,可以执行一些与系统维护相关的命令。

1 su 与 sudo 的异同

  • 共同点:都可以用另一个用户权限执行命令,一般都是为了使用 root 用户权限,来进行一些操作。
  • 不同点:su 要知道 root 密码才可以,sudo 只要输入自己的密码就可以了。
  • 所以一般给予普通运维、开发人员的都是有 sudo 权限的普通用户,而不会开放 root 用户。

2 su 命令认识

su (switch user) 命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。

  • whoami # 查看当前是哪个用户;
  • su root # 当前是 ops 普通用户,切换到 root 用户,需要输入密码;
  • su # 等于 su root ,都是切换到 root 用户,都需要输入密码;
  • su root # 切换到 root 用户,pwd 可看到目录位置未切换
  • su - root # 切换到 root 用户,pwd 可看到目录位置切换为 /root

3 sudo 命令认识

sudo (superuser do) 命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。

(1)查看当前用户被授予哪些权限?

可以使用 「sudo -l 」 查看当前用户被授权的 sudo 权限有哪些。

(2)赋予 sudo 权限的用户有哪些?

使用命令「sudo vim /etc/sudoers」,找到这一 行:"root ALL=(ALL) ALL",该行的下面即可看到赋予 sudo 权限的用户有哪些。 

(3)如何添加用户,使其拥有 sudo 权限?

编辑 /etc/sudoers 文件。输入命令 "vim /etc/sudoers" ,进入编辑模式,找到这一 行:"root ALL=(ALL) ALL" 在它下面添加 "xxx ALL=(ALL) ALL" (这里的 xxx 是你的用户名),然后保存退出(关于赋予权限的控制,这里不做展开;也可使用 visudo 命令,这里不做细讲)。

4 几个常用命令辨析

  1. sudo -i # 假设当前用户为 ops 且被赋予 sudo 权限,执行该命令后,切换到 root 用户,pwd 可看到目录位置切换为 /root;
  2. sudo su docker # 假设当前用户为 ops 且被赋予 sudo 权限,执行该命令后,切换到 docker 用户,pwd 可看到目录位置未切换;相比当前用户 ops 直接使用「su docker」,可以免去密码输入;
  3. sudo -u docker touch readme.text # -u 指定 docker 用户,使用 sudo 权限执行命令;

5 小结

su 切换用户需要输入目标用户的 password;sudo 只需要知道自己的 password,可以避免 root 用户的 password 泄漏。也着重介绍了 sudo 的用户添加,查看赋予的权限以及配合 su 常用的一些使用案例。

[转帖]012 Linux 搞懂用户权限升级 (sudo 和 su),包学会的更多相关文章

  1. linux 中更改用户权限和用户组的命令chmod,chgrp实例

    linux 中更改用户权限和用户组的命令实例; 增加权限给当前用户 chmod +wx filename chmod -R 777 /upload 用户组 chgrp -R foldname zdz ...

  2. 解决将/etc/passwd文件中1000改为0后只能guest进入系统的问题 ||ubuntu下将普通用户权限升级为root用户权限的方法;

    其实我现在才知道linux系统对于用户权限管理比较严,在ubuntu下系统不允许root权限的用户进入图像界面系统.由于之前没弄过权限这个东西瞬间掉坑了了. 我是想修改一下root下的nginx.co ...

  3. linux把普通用户添加到sudo组

    一.linux下把普通用户添加到sudo组的方式: 1. root权限下, 先cd到/etc目录下 2. 由于sudoers文件为只读权限,所以需要添加写入权限,chmod u+w sudoers 3 ...

  4. 因修改/etc/sudoers权限导致sudo和su不能使用的解决方法(转)

    转自: 因修改/etc/sudoers权限导致sudo和su不能使用的解决方法   系统环境:ubuntu 12.04 状况: 因为修改了/etc/sudoers以及相关权限,导致sudo无法使用,恰 ...

  5. 013 Linux 搞懂「文件所属者更改及权限的赋予」从未如此简单(chmod、chgrp、chown)

    目录 01 一图详解「ls -l」 02 两种符号区分表示文件和目录 03 三种访问权限及表示 04 四种符号表示文件所属者用户 05 三个变更文件所属者及修改所属者权限的命令 06 工作实践命令举例 ...

  6. linux如何设置用户权限

    linux与用户权限设置: 1.添加用户 首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户 #passwd tommy //修改密码 ...

  7. Linux学习笔记——使用指定的用户权限执行程序——sudo

          sudo可以用来以其他用户身份执行命令,sudo命令可以针对单个命令授予临时权限.sudo仅在需要时授予用户权限,减少了用户因为错误执行命令损坏系统的可能性. 1:sudo的帮助信息如下: ...

  8. Linux下的用户权限

    用户权限: drwxr-xr-x root root - : boot #权限位 硬连接数 所属用户 所属组 大小 最后修改时间 文件/目录# r w x 4 2 1 用户权限位分为3段,分别对应US ...

  9. [Linux系统] (2)用户权限管理

    示例---普通用户之间的文件共享:假设公司有2个项目组,共享同一台服务器. 1.为两个项目组各创建一个用户: useradd leo01 useradd leo02 2.为两个新用户设置密码: pas ...

  10. Linux培训教程 linux下修改用户权限的方法

    一般我们日常碰到要修改用户权限的,往往是要么修改一下用户的gorupid,通过上面命令可以改;要么是把普通用户改成具有超级权限的用户,这个一般自己不能直接改,只能是root或有root权限的用户才能帮 ...

随机推荐

  1. 应用架构步入“无服务器”时代 Serverless技术迎来新发展

    摘要:以"原生蓄力,云领未来"为主题的2021年云原生产业大会上,华为云Serverless函数服务产品经理分享了"华为云Serverless函数服务,让开发上云极简高效 ...

  2. GaussDB NoSQL架构设计分享

    摘要:文章总结了当前数据库的发展趋势.GaussDB NoSQL关键技术解密以及核心竞争力. 本文分享自华为云社区<华为云GaussDB NoSQL云原生多模数据库的超融合实践>,作者:华 ...

  3. 一文详解特权访问管理(PAM)

    什么是特权访问管理(PAM)? 特权访问管理(Privileged Access Management)是一个包含网络安全策略和访问管理工具的解决方案,用于控制和监管和保护具有特权访问权限的用户.在之 ...

  4. SpringBoot 2.x 正式停更了。Java 8 就看 Solon 的了!

    最近有好多个新闻说:SpringBoot 2.x 正式停更了,Java 8 怎么办?当然用 Solon 喽! Solon,同时支持 jdk8, jdk11, jdk17, jdk21.也支持 graa ...

  5. Solon2 之基础:三、启动参数说明

    启动参数,在应用启动后会被静态化(为了内部更高效的利用).比如,想通过体外扩展加载配置,是不能改掉它们的. 1.启动参数 启动参数 对应的应用配置 描述 --env solon.env 环境(可用于内 ...

  6. MyBatis batchInsert 批量插入数据

    mybatis 是一个 Java 的持久层框架,它支持定制化 SQL.存储过程以及高级映射.通过 MyBatis,开发者可以直接编写原生态 SQL,避免了 JDBC 代码的繁琐. 如何在 MyBati ...

  7. cxf 动态调用 WebService No compiler detected, make sure you are running on top of a JDK instead of a JRE

    WebService cxf No compiler detected, make sure you are running on top of a JDK instead of a JRE [202 ...

  8. 第04讲:Flink 常用的 DataSet 和 DataStream API

    Flink系列文章 第01讲:Flink 的应用场景和架构模型 第02讲:Flink 入门程序 WordCount 和 SQL 实现 第03讲:Flink 的编程模型与其他框架比较 第04讲:Flin ...

  9. Django rest_framework使用自定义异常

    完整代码 https://gitee.com/mom925/django-system 在settings.py中配置 REST_FRAMEWORK = { "EXCEPTION_HANDL ...

  10. C++11实用特性2

    1 可调用对象包装器.绑定器 1可调用对象 C++中的可调用对象分为四类: 函数指针: 任何一个函数都可以抽象成一个函数指针 int print(int a, double b) { cout < ...