ubuntu: sudo -u www-data echo $USER为什么输出结果是ubuntu不应该是www-data的吗?
ubuntu: sudo -u www-data echo $USER
ubuntu
www-data
闭关修行中......
Unix V6 のソース コードを例に挙げてみましょう。Linux のソース コードは見つかりません。user 構造を見てみましょう。 リーリー user结构体
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実効ユーザーと実際のユーザーを例に挙げます。たとえば、ubuntu ユーザーの id は、システムにログインするときに決定されます。 >108、www-data の id は 105 です。ユーザー ubuntu としてプログラムを実行する場合、sudo コマンドを使用して www- に切り替えると、有効なユーザーは 108 になります。 data ユーザーとして実行する場合、有効なユーザーは 105 ですが、実際のユーザーはまだ 108 であるため、$USER はそのままです。実際のユーザー ubuntu >。
id
108
105
sudo
$USER
www- に切り替えると、有効なユーザーは 108 になります。 data
Unix V6 のソース コードを例に挙げてみましょう。Linux のソース コードは見つかりません。
user
構造を見てみましょう。 リーリーuser
结构体以实效用户和实际用户为例,登录系统时实际用户就已经确定,比如是
ubuntu
用户的id
是108
,www-data
的id
是105
。若用ubuntu
用户运行程序,则实效用户为108
;若用sudo
命令切换到www-data
身份运行,则实效用户为105
,而实际用户仍为108
,所以$USER
还是实际用户ubuntu
実効ユーザーと実際のユーザーを例に挙げます。たとえば、ubuntu
ユーザーのid
は、システムにログインするときに決定されます。 >108、www-data のid
は105
です。ユーザーubuntu
としてプログラムを実行する場合、sudo
コマンドを使用してwww- に切り替えると、有効なユーザーは
ユーザーとして実行する場合、有効なユーザーは108
になります。 data105
ですが、実際のユーザーはまだ108
であるため、$USER
はそのままです。実際のユーザーubuntu
>。