谁在用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) 函数使用该文件.

转载于:https://www.cnblogs.com/mattmonkey/archive/2012/08/12/2635433.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值