0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

值得考虑的4个最佳Linux sudo命令替代方案

jf_ZqFkd6Up 来源:Linux迷 2023-01-06 10:54 次阅读

对于那些不喜欢 sudo 并觉得它臃肿的人,可以尝试使用几种 sudo 替代方法。 sudo 可能是最常用的 Linux 命令之一。它允许您在 Linux 机器上获得管理或提升的权限。 您通常需要提升权限才能执行安装软件、管理服务和删除关键系统文件等操作。但是您知道 Linux 上有 sudo 命令的替代方法吗?

为什么要以另一个用户身份执行 Linux 命令?

sudo 是一个非常重要的命令,因为它允许您以超级用户权限执行命令。默认情况下,非 root 用户通常对 Linux 上的资源和文件具有有限的访问权限。 出于以下原因,限制对 Linux 用户的访问非常重要:

控制:它允许管理员或系统所有者授予对某些文件和程序的特定访问权限。这有利于系统稳定性、隐私和整体性能。

安全性:限制对系统某些部分的访问可防止意外删除或更改系统。而且它还减少了系统的攻击面。

sudo 工作正常,并且比大多数人使用它做的要多得多。不幸的是,这使它非常臃肿。 幸运的是,与 Linux 上的大多数东西一样,sudo 命令有一些很好的替代方法,下面是其中的一些。

1、pkexec

pkexec(PolicyKit Executive)命令是PolicyKit框架的前端实现,它提供了一组规则,用于为用户和进程授予权限。 pkexec 允许您根据指定策略中定义的规则,以不同用户或角色的权限执行命令。 pkexec 工具已经安装在 Ubuntu 和其他主要 Linux 发行版上。在未安装的情况下,这里是安装方法。 在基于 Debian 的系统上,运行:


linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
 sudo apt update && sudo apt install policykit-1
8f899fc2-8d44-11ed-bfe3-dac502259ad0.png
在 RHEL 和类似的发行版上,运行:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
 sudo dnf install policykit
在基于 Arch 的 Linux 发行版上,使用以下命令:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
 sudo pacman -s policykit-1

如何使用 pkexec

要使用 pkexec,您必须首先指定 pkexec 关键字,后跟要执行的命令,然后是该命令需要的任何参数或选项。 例如,要使用超级用户权限在您的系统上安装有趣的 Linux 程序:cowsay,您可以使用以下命令:


linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
 pkexec apt install cowsay
8fa96730-8d44-11ed-bfe3-dac502259ad0.png
您还可以使用--user 选项后跟用户或角色的名称来指定要承担其特权的用户或角色。例如,要以管理员用户的权限执行上述命令,您可以使用以下命令:

pkexec --user linuxmi apt install cowsay
此外,您还需要输入您在命令中指定的用户或角色的密码。如果您没有必要的权限,您将收到错误消息。

2、doas

doas 命令起源于 OpenBSD 操作系统。它允许您以指定用户或角色的权限执行命令。 它与 sudo 命令非常相似,但它是现代的、非常轻量级的并且易于配置,因为它使用简洁易读的语句。允许标准用户以 root 身份执行任务,就像 sudo 一样。它是由OpenBSD项目开发的,作为sudo的简约替代品,因此,该程序比sudo小得多。


sudo apt install doas
8fc2eb2e-8d44-11ed-bfe3-dac502259ad0.png

在 Linux 上配置 doas

sudo pkexec 命令不同,您必须在开始使用之前配置新安装的 doas 实例。配置文件位于 /etc/doas.conf。如果配置文件不存在,请使用 touch 命令或您选择的任何其他程序创建一个。 要授予用户“linuxmi”系统上的超级用户权限,您可以将以下行添加到 /etc/doas.conf 文件中:


permit persist :linuxmi as root
请记住将上述命令中的用户“linuxmi”替换为正确的用户名。 保存配置更改后,尝试使用以下命令安装 cowsay:

doas apt install cowsay
要使用其他用户,您可以使用 -u 标志后跟用户名。它类似于与 pkexec 命令一起使用的--user标志。 例如,要以系统管理员身份运行上述命令,您可以运行:

doas -u admin apt install cowsay

3、su

su 命令是“切换用户”的缩写。它允许您以当前登录用户以外的用户身份执行命令。它通常用于运行需要 root 权限的命令,但您可以使用 su 运行任何其他命令。 运行不带任何参数的 su 命令假定为 root 用户,因此您必须知道 root 用户密码才能继续。如果要切换到名为 linuxmi 的用户,只需运行以下命令:


linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
 su linuxmi
8fe43d74-8d44-11ed-bfe3-dac502259ad0.png
输入用户 linuxmi 的密码。要切换回原始用户,只需运行 exit 命令即可。 请注意,通常不建议以 root 用户身份运行命令,因为系统不会在您运行的每个命令上提示您输入密码,这可能会导致灾难性的后果,例如意外删除文件。

4、dzdo

dzdo 是一个命令行工具,用于以其他用户(例如超级用户或根用户)的权限执行命令。它类似于通常用于相同目的的 sudo 命令。dzdo 命令主要在 Oracle Linux 上可用。 您可以使用 -u 标志来指定您要使用其权限的用户。例如,以下命令将以超级用户 (root) 的权限执行 apt-get update 命令:


dzdo -u root apt-get update
系统将要求您输入适当的密码以确认您具有运行该命令所需的权限。

在 Linux 上使用正确的用户控件来增强安全性

sudo 是 Linux 系统上常用的命令,允许用户以 root 用户的权限执行命令。根据您的需要,您可以在工作流程中使用任何 sudo 替代方案。 在 Linux 上,为文件和文件夹分配适当的访问级别以获得更好的安全性也很重要。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10991

    浏览量

    206736
  • 文件
    +关注

    关注

    1

    文章

    540

    浏览量

    24402
  • 命令
    +关注

    关注

    5

    文章

    638

    浏览量

    21849

原文标题:值得考虑的 4 个最佳 Linux sudo 命令替代方案

文章出处:【微信号:Linux迷,微信公众号:Linux迷】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    sudo的作用是什么,它是一命令吗?

    sudo的作用是什么,它是一命令吗?
    发表于 04-30 15:14

    Linux与用户有关的命令

    Linux与用户有关的命令 Linux与用户有关的命令  passwd命令  出于系统安全考虑
    发表于 01-18 12:46 706次阅读

    基于linux下自定义一个脚本来替代rm命令

    linux下的rm命令,功能太强,同时又没法撤消,为了避免误操作,可以自定义一个脚本来替代rm命令
    的头像 发表于 02-01 18:08 3536次阅读
    基于<b class='flag-5'>linux</b>下自定义一个脚本来<b class='flag-5'>替代</b>rm<b class='flag-5'>命令</b>

    深入了解Linux系统中sudo命令的10个编程技巧

    sudo 表示 “superuser do”。 它允许已验证的用户以其他用户的身份来运行命令。其他用户可以是普通用户或者超级用户。然而,大部分时候我们用它来以提升的权限来运行命令
    发表于 04-23 12:12 1354次阅读

    Linux 中运行 sudo 命令不需要密码

    ) NOPASSWD: /bin/kill, /bin/rm不用密码运行 sudo在本篇中,我们讨论了如何配置 sudo 命令来不用输入密码运行。不要忘记在评论栏中给我们提供你关于这份指导的想法和其他对于
    发表于 04-02 14:48 1024次阅读

    Linux中易混淆命令的区别

    素材来源:Linuxsudo 与 su 两个命令的最大区别是:sudo 命令需要输入当前用户的密码,su
    的头像 发表于 09-25 14:25 1580次阅读
    <b class='flag-5'>Linux</b>中易混淆<b class='flag-5'>命令</b>的区别

    Linux中su和sudo命令有什么区别

      之前一直对 su 和 sudo 这两个命令犯迷糊,最近专门搜了这方面的资料,总算是把两者的关系以及用法搞清楚了,这篇文章来系统总结一下。 1. 准备工作 因为本篇博客中涉及到用户切换,所以我需要
    的头像 发表于 11-19 09:19 1457次阅读

    用Golang编写的Linux ls命令替代方案

    ls命令有多种替代方法,我们今后也将介绍其中的一些替代方法。
    的头像 发表于 05-17 14:02 1246次阅读

    如何使用sudo命令以及选项

    sudo命令允许您以其他用户身份运行命令与程序,默认是root用户。如果您是个命令行用户,那么sudo是您将经常使用的
    的头像 发表于 12-09 17:47 4513次阅读

    6个已弃用的Linux命令和您应该使用的替代工具

    Linux 提供了大量的命令行实用程序来执行各种任务。然而,随着时间的推移,其中一些工具已经过时并被其他替代命令行工具所取代。 在本指南中,我们将重点介绍 6 个已弃用的
    的头像 发表于 01-29 11:41 1580次阅读

    Linux中root和sudo的用法与区别

    Linux 下面有两个概念可能大家接触的比较多,一个是 sudo 命令,还有一个是 root 账户。Sudo 命令可以以最高权限执行
    的头像 发表于 03-29 09:17 787次阅读

    Linux命令su和sudo的区别

    Linux 系统中,有两个常用的命令用于切换用户身份和执行特权操作,它们分别是 su 和 sudo。虽然它们都可以实现权限提升,但在使用方式、安全性和适用场景等方面存在一些区别。本文将介绍 su 和
    发表于 08-14 14:14 163次阅读

    首个Rust版sudo发布!

    sudo-rs项目则是用 Rust 编写的 sudo 和 su 的、面向安全和内存安全的实现。官网声明中显示,sudo-rs 目前仅针对基于 Linux 的操作系统;运行
    的头像 发表于 09-01 15:59 522次阅读
    首个Rust版<b class='flag-5'>sudo</b>发布!

    什么是sudo rm -rf?为什么这个命令如此危险?

    sudo rm -rf 是一个linux命令命令,用于在系统中删除文件和目录。sudo表示以管理员权限运行该
    的头像 发表于 10-24 18:25 1280次阅读

    su与sudo命令介绍及主要用法

    大家在自己实验服务器上可能不会用到su与sudo命令,因为一直用着root用户进行操作。
    的头像 发表于 11-27 09:31 398次阅读