当我经常需要在复制文件等时设置适当的权限时使用su,但忘记我是否用su来达到那里,例如:
root@host> su bob bob@host> copy folderA folderB
但是有时我忘了,如果我login作为鲍勃,或者如果我是根和su'd变得鲍勃,从那以后? 那么一个完整的例子:
bob@host> su .... root@host> su bob bob@host> cp folderA folderB .... bob@host> ????????
现在我忘记了如果我直接login到计算机,或者如果我已经进入了,我可以按CTRL-D,这将告诉我,如果我是根,但如果不是,我会注销。
我明白sudo是好的和安全的,但我很好奇,如果有一种方法来做到这一点,而不避免使用苏。
任何人有一些想法?
您可以通过查看树中正在运行的进程来执行此操作。
ps axjf
仔细查看长输出,直到find像这样的东西:
1 2426 2426 2426 ? -1 S<s 0 3:35 /usr/sbin/sshd 2426 7024 7024 7024 ? -1 S<s 0 0:00 \_ sshd: user1 [priv] 7024 7029 7024 7024 ? -1 S< 1002 0:00 \_ sshd: user1@pts/0 7029 7030 7030 7030 pts/0 29857 S<s 1002 0:00 \_ -bash 7030 29831 29831 7030 pts/0 29857 S< 0 0:00 \_ su 29831 29833 29833 7030 pts/0 29857 S< 0 0:00 \_ bash 29833 29845 29845 7030 pts/0 29857 S< 1017 0:00 \_ su user2 29845 29846 29846 7030 pts/0 29857 S< 1017 0:00 \_ bash 29846 29857 29857 7030 pts/0 29857 R<+ 1017 0:00 \_ ps axjf
你可以看到我login为user1,然后su'd根,然后su'd到user2
这个命令在debian上工作的很好。 如果你使用的是不同版本的linux,并且不起作用,那么只需检查ps的手册页并search“tree”
你可以使用whoami来告诉你有效的userid,你可以用who am i谁来告诉你你login的是谁,例如
$ who am i iain pts/0 2011-09-15 17:33 (192.168.1.104) $ whoami iain $ su - # whoami root # who am i iain pts/0 2011-09-15 17:33 (192.168.1.104) # su - user1 $ whoami user1 $ who am i iain pts/0 2011-09-15 17:33 (192.168.1.104)
最后的命令可以显示上次login的用户。