Linux EUID和UID之间的区别?

Linux EUID和UID之间的区别?,linux,bash,shell,ubuntu,ubuntu-12.04,Linux,Bash,Shell,Ubuntu,Ubuntu 12.04,EUID与UID不同。脚本中使用这两者的上下文是什么 我试图通过echo“UID是$UID,EUID是$EUID”获取值,但只有空格作为输出。我的机器运行Ubuntu 12.04 LTS。在一些网站上可以看到,这通常用于检查它是否是root用户,但无法获得正确的差异。当程序运行set uid时,它们是不同的。有效UID是您更改为的用户,UID是原始用户。它只在bash上有效,而不在dash中有效(在基于Debian的发行版中,Ubuntu sh通常是dash的符号链接) 如果以交互方式运行脚本,

EUIDUID不同。脚本中使用这两者的上下文是什么


我试图通过
echo“UID是$UID,EUID是$EUID”
获取值,但只有空格作为输出。我的机器运行Ubuntu 12.04 LTS。在一些网站上可以看到,这通常用于检查它是否是root用户,但无法获得正确的差异。

当程序运行set uid时,它们是不同的。有效UID是您更改为的用户,UID是原始用户。

它只在bash上有效,而不在dash中有效(在基于Debian的发行版中,Ubuntu sh通常是dash的符号链接)

如果以交互方式运行脚本,可能没有将bash配置为默认shell,请在尝试之前运行
bash

如果您是从控制台运行它:

bash script.sh
如果使用其路径(例如
/script.sh
)运行脚本,请确保脚本的第一行是:

#!/bin/bash
而不是:

#!/bin/sh
有关更通用的方法,请检查:

在该帖子中提到了命令
id
,其中:

id -u    # is the EUID
id -u -r # is the UID

那么为什么我的当前shell不显示任何整数呢。你能再解释一下吗!我不知道。它在运行bash 3.2.48的OS X和运行bash 4.1.5的Debian上对我有效。当我在脚本中运行时,它不会出现,但当我直接在shell上编写它时,它就工作了!对我来说都很有用。也许我应该找一个运行Ubuntu12.04LTS的人来检查一下!A了解如何更改uid和gid<代码>usermod-u groupmod-g find/-user-exec chown-h{};find/-group-exec chgrp-h{}\;usermod-g哪一个只在bash上工作??EUID还是UID?您不清楚主题是“EUID和UID之间的差异”,但您只需告诉OP如何获取UID或EUID,或者它何时工作(在bash中)。不知道为什么这是首选答案。@Matt我想编辑费尔南多的答案,但“建议的编辑队列已满”。
EUID
UID
变量仅在
bash
zsh