EUID和UID之间的区别?

时间:2014-12-27 17:57:35

标签: linux bash shell ubuntu ubuntu-12.04

EUID UID 不同。在什么情况下这些都在脚本中使用?

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

2 个答案:

答案 0 :(得分:18)

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

答案 1 :(得分:10)

它仅适用于bash,而不适用于破折号(基于Debian的发行版,因为Ubuntu sh通常是破折号的符号链接)。

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

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

bash script.sh

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

#!/bin/bash

而不是:

#!/bin/sh

有关更通用的方法,请检查:https://askubuntu.com/questions/15853/how-can-a-script-check-if-its-being-run-as-root

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

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