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
    +关注

    关注

    88

    文章

    11630

    浏览量

    218023
  • 文件
    +关注

    关注

    1

    文章

    587

    浏览量

    25920
  • 命令
    +关注

    关注

    5

    文章

    746

    浏览量

    23447

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

    Linux与用户有关的命令

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

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

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

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

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

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

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

    Linux中易混淆命令的区别

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

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

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

    如何使用sudo命令以及选项

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

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

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

    Linux中root和sudo的用法与区别

    Linux 下面有两概念可能大家接触的比较多,一sudo 命令,还有一是 root 账
    的头像 发表于 03-29 09:17 1646次阅读

    Linux命令su和sudo的区别

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

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

    sudo rm -rf 是一linux命令命令,用于在系统中删除文件和目录。sudo表示以
    的头像 发表于 10-24 18:25 5426次阅读

    linux关闭docker的命令

    Linux 系统中,关闭 Docker 的操作可以通过以下多种方式进行。本文将详细讲解每一种方式,并提供示例代码和命令,以帮助读者更好地理解和实践。 使用 docker 命令 最常用的方法
    的头像 发表于 11-23 09:39 5253次阅读

    linux备份文件命令bak

    。 备份文件的命令通常使用"cp"或"rsync"命令,但这两命令有些繁琐,使用起来没有那么简单和方便。因此,我们可以使用自定义的备份文件命令
    的头像 发表于 11-23 10:12 3784次阅读

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

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