ubuntu - sudo -u参数到底是怎么执行的?

浏览:37日期:2022-08-18

问题描述

ubuntu: sudo -u www-data echo $USER为什么输出结果是ubuntu不应该是www-data的吗?

问题解答

回答1:

拿 Unix V6 源码来说一下吧,linux的没找到,看一下user结构体

struct user{ // ... char u_uid; // 实效用户id(effective user id) char u_gid; // 实效用户组id(effective group id) char u_ruid; // 实际用户id(real user id) char u_rgid; // 实际用户组id(real group id) // ...} u;

以实效用户和实际用户为例,登录系统时实际用户就已经确定,比如是ubuntu用户的id是108,www-data的id是105。若用ubuntu用户运行程序,则实效用户为108;若用sudo命令切换到www-data身份运行,则实效用户为 105,而实际用户仍为108,所以$USER还是实际用户ubuntu。

相关文章: