【问题标题】:Find UID from EUID从 EUID 中查找 UID
【发布时间】:2013-10-26 06:59:58
【问题描述】:

我有一个我们登录的 AIX 5.3 主机,需要时使用 pbrun 工具成为 root。现在的问题是我如何从命令行中找到我登录的用户以获得这个特权/root 用户。如果我没记错的话,如何从我当前的 EUID 中找到 UID。试过 whoami 和 who am i 都以 root 身份输出。

【问题讨论】:

    标签: aix


    【解决方案1】:

    “我是谁”来自 utmp。如果 utmp 将您显示为 root,那么您的 pbrun 工具肯定会更改您第一次登录时的状态。

    你可以这样做:

    ps l $$
    

    打印出带有 PID 和 PPID 的一行。获取 PPID 并再次执行此操作:

    ps l <PPID>
    

    UID 列是您的数字用户 ID。如果 PPID 显示为 1,则 pbrun 执行了 exec 而不是 follow / exec(这意味着它是 shell 中的函数或别名)。在这种情况下,您可以恢复为“last”,这将显示谁在什么时间登录了哪个 tty。

    ======

    另一个想法。您可以通过 ps 获取程序正在执行的终端。这称为控制终端。也可以通过“tty”命令获取:

    tty
    /dev/pts/18
    

    现在,将其提供给“last”,但删除前导 /dev/ 部分并进行第一次点击:

    last pts/18 | head -1
    myname    pts/18       myhost.mydomain.com       Nov 14 10:22   still logged in.
    

    这是最后一个登录该特定终端的人。这行得通吗?

    【讨论】:

    • 我确实将 PPID 设为 1。问题是在繁忙的系统中,多个用户可能会登录并成为 root,这使得很难识别正确的 tty。
    • 我相信你已经丢失或覆盖了你需要的东西。
    • 我的意思是 PPID 变为 1 并且对应的 UID 显示为 0 代表 root。我无法获取登录的原始用户 ID
    • 对。我相信你将无法做到。 utmp 似乎已被覆盖,并且您原来的父级已经消失。也许,您可以查看“最后”并从中闪闪发光。 "last" 将显示最后登录特定终端的人。
    猜你喜欢
    • 2017-05-20
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多