在 Unix/Linux 中,是否存在普通根和真实根?
我正在做一个缓冲区溢出项目(在 Ubuntu 11.04 中),我分别调用 /bin/zsh 和 /bin/bash。在这两种情况下
$whoami
返回根
$id
返回 uid=1000、euid=0、gid=1000。
但当我尝试跑步时
$passwd username
更改某些用户的密码,shell 返回:
passwd: You may not view or modify password information for username
我是否遗漏了什么,因为我相信这是 root,没有低级权限。我在网上搜索过,但似乎找不到全面的答案。
答案1
您的意思是“真实 UID / GID”与“有效 UID / GID”......?
真实 UID:这是创建此进程的进程的 UID - 例如,您以谁的身份登录。
有效 UID:此 UID 用于评估进程执行操作的权限。
你应该点击此处:
http://www.lst.de/~okir/blackhats/node23.html
http://mahmudonline.com/?p=278
http://en.wikipedia.org/wiki/Setuid
http://en.allexperts.com/q/Unix-Linux-OS-1064/real-effective-user-id.htm
编辑:
刚刚发现这个页面,它有一个很好的描述:
http://bashscript.blogspot.com/2010/03/unixlinux-advanced-file-permissions.html