求教:$sudo su -c 'll' other_user ... error: command not found

2014-11-07 13:49:50 +08:00
 calebx
我想在当前用户下,切换到另外一个用户,并且执行一些命令。
这些命令有.bashrc 或者 .profile里面定义的alias

如何可以不用通过切换用户,直接用类似于su -c,搞出?
gracis
2830 次点击
所在节点    Linux
5 条回复
yangg
2014-11-07 13:58:52 +08:00
# enable sudo with aliases
# If the last character of the alias value is a space or tab character,
# then the next command word following the alias is also checked for alias expansion.
# http://www.gnu.org/software/bash/manual/bashref.html#Aliases
alias sudo='sudo '
calebx
2014-11-07 14:01:44 +08:00
@yangg 不是很明白
这个命令中的sudo,可以不用
直接```su - -c 'll' other_user```
或者```su -c 'll' other_user```
也是一个意思,但是都不成功
yangg
2014-11-07 14:17:44 +08:00
试试,给你要执行的用户的bashrc里加上alais ll='ls -l'
calebx
2014-11-07 14:18:56 +08:00
在other_user的bashrc里面已经有这个alias了。。。
extreme
2014-11-10 13:25:39 +08:00
不太明白楼主的意思。

不知道这种方式会不会导入另一个用户自己的.bashrc:
sudo -u 用户名 bash -c "命令"

或者试试这种方式:
echo "source ~/.bashrc ; source ~/.profile ; 你要执行的命令" | sudo -u 用户名 bash -

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/144668

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX