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

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

3天内不再提示

sudo后使用别名

马哥Linux运维 来源:马哥Linux运维 2023-02-16 11:29 次阅读

一般来说,sudo会忽略通过.bashrc文件、.bash_aliases文件或者alias命令设置的别名命令(aliased commands)。

比如,我们经常将ll用作ls -lh命令的别名。然后,我们输入ll,终端将会返回一个关于当前目录的长列表。但是,当我们输入sudo ll时,终端将会返回:

$sudoll
=>sudo:ll:commandnotfound

解决方案

我们给shutdown命令创建一个别名,当普通用户运行的时候尝试输入这个别名去关机,我们可以看到系统不会关机。想要运行/sbin/shutdown需要root权限,然而sudo会完全忽略shutdown的这个别名。解决办法是,我们需要添加另一个别名:

aliassudo='sudo'

sudo后面的那个空格将会告诉bash,去检查跟在空格后面的命令是否也是一个别名。bash手册(通过man bash查看)上面是这么描述的:

If the last character of the alias value is a blank, then the next command word following the alias is also checked for alias expansion. 如果别名值的最后一个字符是空格,将会检查”跟在别名后的下一个命令”是否也是别名扩展。

下面是我机器.bash_aliases文件中的一些别名设置:

#Shortcuts
aliasll='ls-lh'
aliasla='ls-lhA'
aliasl='ls'
aliasc='clear'
aliasx='exit'
aliasq='exit'

#Don'trunshutdownifrtorrentisrunning-aslongasthere'sascreenwith"tor"initsname,shutdownwon'trun(unlessyoucall/sbin/shutdown,orunaliasit)
aliasshutdown='/home/james/scripts/safe.shutdown.sh'

#Whenusingsudo,usealiasexpansion(otherwisesudoignoresyouraliases)
aliassudo='sudo'

审核编辑 :李倩



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

    关注

    1

    文章

    998

    浏览量

    29599
  • Shutdown
    +关注

    关注

    0

    文章

    20

    浏览量

    50446

原文标题:sudo后使用别名

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Linux设置永久别名alias的方法

    编辑 .bashrc文件,该文件主要用于保存一些个性化的设置,如命令别名、路径等。
    发表于 10-25 15:53 460次阅读
    Linux设置永久<b class='flag-5'>别名</b>alias的方法

    C语言的强、弱别名是什么作用?

    ;__f")));官方指出 f()是 __f()的 弱 别名。我的疑惑是:给函数起一个别名是什么作用?什么样的情况下需要写这种语句?强 和 弱又代表什么?
    发表于 03-24 04:25

    CAD快捷键与CAD命令别名的区别

    )的命令,按F1就会直接弹出帮助。CAD命令别名则有所不同,命令别名输入后会出现在命令行,需要按回车键确认才能执行,比如输入L,不按回车键的话是不会有任何动作的,按回车键才会执行直
    发表于 06-05 17:18

    位带及位带别名区的关系

    位带及位带别名区的关系:位带是指在存储区中可以按位操作的地带;位带别名区(Bit Band Alias)是指存储区的另一个区域,该区域中的每1个字与位带中的1个位一一对应。对位带区的1个位的操作
    发表于 08-10 06:05

    10个方便的Bash别名

    要使用你创建的 Bash 别名,你需要将其添加到 .bash_profile 中,该文件位于你的家目录中。请注意,此文件是隐藏的,并只能从命令行访问。编辑此文件的最简单方法是使用 Vi 或 Nano 之类的东西。
    的头像 发表于 10-16 15:00 2553次阅读

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

     - 用户列表或已经设置的用户别名。host_list - 主机列表或用户可以在其上运行 sudo 的主机别名。effective_user_list - 以该用户或别名运行的用户列表
    发表于 04-02 14:48 1024次阅读

    如何解决sudo与重定向的权限拒绝的问题

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

    如何使用sudo命令以及选项

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

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

    对于那些不喜欢 sudo 并觉得它臃肿的人,可以尝试使用几种 sudo 替代方法。 sudo 可能是最常用的 Linux 命令之一。它允许您在 Linux 机器上获得管理或提升的权限。 您通常需要
    的头像 发表于 01-06 10:54 1187次阅读

    Linux中root和sudo的用法与区别

    Linux 下面有两个概念可能大家接触的比较多,一个是 sudo 命令,还有一个是 root 账户。Sudo 命令可以以最高权限执行命令,而 root 账户下所有命令都有最高权限,也就是相当于所有命令都默认加了 sudo
    的头像 发表于 03-29 09:17 788次阅读

    Linux命令su和sudo的区别

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

    首个Rust版sudo发布!

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

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

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

    USBCAN分析仪都有哪些别名

    USBCAN分析仪是一种用于分析和监控USB总线通信的设备。它可以捕获和解析USB数据传输,帮助开发人员诊断和解决USB通信问题。根据不同的厂商和市场,USBCAN分析仪可能会有一些别名和相关术语
    的头像 发表于 10-28 16:20 353次阅读
    USBCAN分析仪都有哪些<b class='flag-5'>别名</b>?

    ROS主控如何创建设备别名

    创建设备别名 需要创建设备别名原因: 在运行一个ros程序的时候需要提供一个端口名,这个端口名一般是ttyUSBx,设备每次插拔对应的这个端口名它都会不一样,需要创建一个设备别名,就是要将这个端口
    的头像 发表于 11-17 18:07 373次阅读
    ROS主控如何创建设备<b class='flag-5'>别名</b>