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

查看:192
本文介绍了ubuntu - sudo -u参数到底是怎么执行的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

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

解决方案

拿 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用户的id108www-dataid105。若用ubuntu用户运行程序,则实效用户为108;若用sudo命令切换到www-data身份运行,则实效用户为 105,而实际用户仍为108,所以$USER还是实际用户ubuntu

这篇关于ubuntu - sudo -u参数到底是怎么执行的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆