当前位置: 技术问答>linux和unix
su的问题:如果确定当前用户是su 登录的还是自行login的
来源: 互联网 发布时间:2016-06-18
本文导语: 在user1 中.profile 中需要执行如下语句: if user1 是su 登录的 then //这里怎么用shell命令来实现? 即如何判断用户 是su 登录 还是直接login登录的? b.sh else exit; | 刚才那个版本有问题,有时是好...
在user1 中.profile 中需要执行如下语句:
if user1 是su 登录的 then //这里怎么用shell命令来实现? 即如何判断用户 是su 登录 还是直接login登录的?
b.sh
else
exit;
if user1 是su 登录的 then //这里怎么用shell命令来实现? 即如何判断用户 是su 登录 还是直接login登录的?
b.sh
else
exit;
|
刚才那个版本有问题,有时是好的,有时不是。
又写了一个版本:
ps aux | grep root | grep -c X11
完整脚本:
[code=BatchFile]
#!/bin/bash
a=`ps aux | grep root | grep -c X11`
if [ $a -eq 1 ];then
echo "su登录"
else
echo "login登录"
fi
[/code]
用了两重过滤。
其中的grep -c是统计匹配的行数,
若login登录,则会出现两个X11,
一个就是和图形界面相关的,
另一个就是那条命令:
ps aux | grep root | grep -c X11
又写了一个版本:
ps aux | grep root | grep -c X11
完整脚本:
[code=BatchFile]
#!/bin/bash
a=`ps aux | grep root | grep -c X11`
if [ $a -eq 1 ];then
echo "su登录"
else
echo "login登录"
fi
[/code]
用了两重过滤。
其中的grep -c是统计匹配的行数,
若login登录,则会出现两个X11,
一个就是和图形界面相关的,
另一个就是那条命令:
ps aux | grep root | grep -c X11
|
什么系统??
可以查su的日志
可以查su的日志
|
通过 su 登陆的用户,通过 ps 可以发现系统中有 su 进程,
结合 tty 设备和 su 进程可以判定该用户是否是通过 su 登陆的。
结合 tty 设备和 su 进程可以判定该用户是否是通过 su 登陆的。