谁在用sudo命令¶

 

一个比较困扰的地方: 有sudo命令的存在,脚本判断当前用户有点麻烦。

在学习 autojump 的时候,看到一种解决的办法。使用环境变量: $SUDO_USER

#!/bin/bash
echo $UID
echo $SUDO_USER
echo $USER
echo $HOME

在matt用户下使用sudo命令执行脚本

>>> sudo test.sh
0
matt
root
/root

大部分时候脚本还需要获取 当前的用户的家目录 ,autojump里也提供了一种比较新鲜的办法

user=${SUDO_USER:-${USER}}
user_home=$(getent passwd ${user} | cut -d: -f6)

这个 gentent 命令可以通过关键词查询“数据库”

数据库说明
aliases: 邮件别名, sendmail(8) 使用该文件.
ethers: 以太网号.
group: 用户组, getgrent(3) 函数使用该文件.
hosts: 主机名和主机号, gethostbyname(3) 以及类似的函数使用了该文件.
netgroup: 网络内主机及其用户的列表, 访问规则使用该文件.
network: 网络名及网络号, getnetent(3) 函数使用该文件.
passwd: 用户口令, getpwent(3) 函数使用该文件.
protocols: 网络协议, getprotoent(3) 函数使用该文件.
publickey: NIS+及NFS 所使用的secure_rpc的公开密匙.
rpc: 远程过程调用名及调用号, getrpcbyname(3) 及类似函数使用该文件.
services: 网络服务, getservent(3) 函数使用该文件.
shadow: shadow用户口令, getspnam(3) 函数使用该文件.
posted @ 2012-08-12 21:20  倚楼无语F5  阅读(197)  评论(0编辑  收藏  举报