如何知道进程是bash,linux中的用户还是root用户

时间:2015-10-04 19:50:19

标签: linux bash

我需要知道进程是否来自用户。 我使用此代码:

#c is the PID
Aid=$(cat /proc/$c/status | grep -e ^Uid) 
Uid="Uid:   0   0   0   0"
if [ "$Aid" != "$Uid" ]; then
    echo "is from user"
fi

但我对#34;标签"不太满意。在字符串中,我认为可能会导致一些意想不到的行为。

还有其他办法吗?

1 个答案:

答案 0 :(得分:5)

您无需使用ps -o uid= -p $pidhere进行解析即可获取某个pid的UID:

mypid=1
if uid=$(ps -o uid= -p "$mypid")
then
  if [[ $uid -eq 0 ]]
  then
    echo "The process runs as root"
  else
    echo "The process runs as something else"
  fi
else
  echo "The process doesn't exist"
fi