Jas*_*ram 44 windows cygwin command-line
因为Cygwin 中没有sudo命令,所以我想运行的脚本失败了
./install.sh: line N: sudo: command not found
Run Code Online (Sandbox Code Playgroud)
解决这个问题的标准方法是什么?编辑脚本以删除sudo? 获得一些sudo类似 Windows 的工具?
Peo*_*eon 35
一种方法是创建一个包含以下内容的假“sudo”命令:
#!/usr/bin/bash
"$@"
Run Code Online (Sandbox Code Playgroud)
这将允许install.sh继续,因为找到了 sudo。
这不会像真正的 sudo 那样提升特权。如果您确实需要提升权限,请使用具有管理权限 (XP) 的帐户启动 cygwin shell,或者单击 cygwin.bat 并“以管理员身份运行”(Vista、Win7)
dot*_*hen 25
我在 cygwin 邮件列表中找到了答案。要command在 Cygwin 中以提升的权限运行,请在命令之前添加cygstart --action=runas如下内容:
$ cygstart --action=runas command
Run Code Online (Sandbox Code Playgroud)
这将打开一个要求输入管理员密码的 Windows 对话框,如果输入了正确的密码,则运行该命令。
只要~/bin在您的路径中,这很容易编写脚本:
$ cat ~/bin/sudo
#!/usr/bin/bash
cygstart --action=runas "$@"
$ PATH=$HOME/bin:$PATH
$ chmod +x ~/bin/sudo
$ sudo elevatedCommand
Run Code Online (Sandbox Code Playgroud)
在 64 位 Windows 8 上测试。
基于dotancohen 的回答,我使用了别名:
alias sudo="cygstart --action=runas"
Run Code Online (Sandbox Code Playgroud)
作为外部程序的魅力所在(但不是 shell 内置程序):
sudo chown User:Group <file>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66067 次 |
| 最近记录: |