cygwin找不到su命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cygwin找不到su命令相关的知识,希望对你有一定的参考价值。

cygwin 时沿用windows账户体系,所以,你用administrator 账户登录 实际上得到的权限已经相当于root(但仍有差距)
实际上win默认可执行文件权限是所有人,根本没必要获取root追问

但是,有时候需要在最高权限和普通权限之间切换,没有su,还得修改配置文件,很麻烦

追答

麻烦您详述下您的使用场景?

追问

比如有的时候需要root权限,就得修改配置文件,而有的时候并不需要root权限,还得把配置文件改回来,相当麻烦。我记得原来cygwin下有su和sudo命令,可是后来不知怎得就没了。

参考技术A 百度上可以找到答案~
Tom Alsberg wrote:
>
> Hi there... I've got some problem with Cygwin's su command under Windows
> NT. Generally, the problem is that if I try to su to any user (except of the
> same user I'm logged on to), from any user (including Administrator), I get
> the following error message:
>
> su: cannot set user id: Not owner
> [...]
> Has anyone got any idea what the problem might be?

`su' isn't really ported but only compiled, unfortunately.

Corinna

--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Developer mailto:cygwin@sources.redhat.comRed Hat, Inc.mailto:vinschen@cygnus.com

感谢谷歌翻译
汤姆Alsberg写道:> >你好...我在Cygwin的su命令下有一些问题> NT。一般来说,问题是,如果我尝试索取任何用户(除了>我登录到的同一用户),从任何用户(包括管理员),我得到>以下错误信息:> > su:不能设置用户ID:不是所有者> [...]>有没有人知道问题可能是什么?不幸的是,`su'并没有真正移植,而只是编译完成。科琳娜- Corinna Vinschen请发送关于Cygwin的邮件给Cygwin开发人员 mailto:cygwin@sources.redhat.com红帽公司邮寄地址:vinschen@cygnus.com

制作:c:找不到命令

【中文标题】制作:c:找不到命令【英文标题】:make: c: command not found 【发布时间】:2011-03-10 07:26:32 【问题描述】:

我正在尝试运行我的 make 文件,但出现以下两个错误:

make: c: 找不到命令

make: o: 找不到命令

我正在尝试在 cygwin 中执行此操作。我已经安装了 g++ 和 make,但是当我运行 make 文件时,我收到了这些错误。

有什么想法吗?

生成文件:

all: MergeSort clean

MergeSort: main.o MergeSort.o
    $g++ -o MergeSort main.o MergeSort.o

main.o: main.cpp MergeSort.h
    $g++ -c main.cpp

MergeSort.o: MergeSort.cpp MergeSort.h
    $g++ -c MergeSort.cpp

clean:
    rm -rf *o

cleanall:
    rm -rf *o *exe

【问题讨论】:

发布你的makefile,以及你是如何运行它的。 codepad.org/UPInzxwg 这是make文件,我在它所在的目录中键入“make”来运行它(那里只有我的文件和makefile。) 我在问题正文中添加了 Makefile。在将代码发布到 SO 时不要使用像 codepad 或 pastebin 这样的网站:如果您的代码示例消失了,那么问题将变得毫无意义。此外,必须打开另一个网页才能看到源代码真的很烦人,尤其是当它很小的时候。 【参考方案1】:

您需要从$g++ 行中删除$。它试图扩展一些不存在的变量,并从您的命令中吞噬“$g++ -”。

使用变量的语法是:

$(CXX) -c main.cpp

在这种情况下,CXX 是为您定义的 C++ 编译器的路径。您可以通过将以下行添加到您的 makefile 来更改它:

CXX = g++

如果您试图避免回显正在运行的命令 make,请使用 @ 而不是 $

【讨论】:

【参考方案2】:

$g++ 没有在那个makefile中定义,所以命令变成了

-o MergeSort main.o MergeSort.o

-c main.cpp

要么从 $g++ 中删除 $ 并使用 g++,要么在你的 makefile 中定义变量。

CXX = g++
all: MergeSort clean

MergeSort: main.o MergeSort.o
    $CXX -o MergeSort main.o MergeSort.o

main.o: main.cpp MergeSort.h
    $CXX -c main.cpp

MergeSort.o: MergeSort.cpp MergeSort.h
    $CXX -c MergeSort.cpp

clean:
    rm -rf *o

cleanall:
    rm -rf *o *exe

【讨论】:

我认为您应该将$CXX$(CXX) 交换为GNU Make(OP 似乎在询问)。

以上是关于cygwin找不到su命令的主要内容,如果未能解决你的问题,请参考以下文章

cygwin $'\r': 找不到命令错误

在 Cygwin 上找不到 sudo 命令

使用 Cygwin 为 Linphone 运行 make 命令时找不到 android 错误

cygwin下java报错“找不到或无法加载主类”的故障排除

在计算机管理中找不到cygwin ssh服务

/bin/sh: pkg-config: 找不到命令