LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 825|回复: 8

让sudo可以使用alias

[复制链接]
发表于 2009-4-1 11:36:44 | 显示全部楼层 |阅读模式
假设在/home/kenby/.bashrc定义了
alias showsize='du -sh'
但用sudo来运行这个alias却找不到命令
sudo showsize /usr
sudo: showsize: command not found
解决办法是在.bashrc文件再加一个alias
alias sudo='A=`alias` sudo  '
这样就可以用sudo来运行showsize了。
至于原理我也不清楚
发表于 2009-4-1 11:54:39 | 显示全部楼层
很好!收下了
回复 支持 反对

使用道具 举报

发表于 2009-4-1 12:07:32 | 显示全部楼层
showsize 比 du -sh 好打?。。。头一次见有人的 alias 比原命令字母还多。。。
回复 支持 反对

使用道具 举报

发表于 2009-4-1 12:12:12 | 显示全部楼层
没看懂,不过收藏先
推荐 另一个工具,递归查看文件大小并排序
ncdu
http://www.linuxgem.org/2008/9/2 ... isk-usage.5484.html 这里有介绍
回复 支持 反对

使用道具 举报

发表于 2009-4-1 12:35:21 | 显示全部楼层
这个Tip可以,不过对于showsize不怎么认同,可能通过tab好打点...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-1 13:08:08 | 显示全部楼层
showsize只是一个例子,不过我确实用了这个alias,因为不想记du的参数,命令短一点当然好,见文知意也不错。
回复 支持 反对

使用道具 举报

发表于 2009-4-1 14:05:22 | 显示全部楼层
生产环境中这是个大漏洞。
想想有人得到您权限之后,或者您自己不小心设置了不合适的 alias,可造成多大破坏。
滥用 sudo 的又一恶习,ubuntu 更甚--完全下放 root 权限!

向楼上提到 tab 的,允许 sudo 使用 bash completion 是个相对安全的方案。

是不是因为是 4月1日,您逗大伙玩。
回复 支持 反对

使用道具 举报

发表于 2009-4-21 15:10:01 | 显示全部楼层
改成:alias showsize='sudo du -sh' 然后:showsize就行,
回复 支持 反对

使用道具 举报

发表于 2009-4-21 15:26:59 | 显示全部楼层
我是把公用的alias写进一个单独的文件,通过bashrc包含进来。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表