分页: 1 / 2
用sudo进行操作 和用真正的root身份来操作有没有区别?
发表于 : 2008-09-03 14:13
由 crossie
sudo的权限和root的权限是不是完全一样的?
发表于 : 2008-09-03 14:15
由 yaoms
没什么区别的。
发表于 : 2008-09-03 14:58
由 izee
有区别
root,是以root用户身份运行
sudo,授予当前用户"root组权限"使用权,以当前登录用户身份运行
发表于 : 2008-09-03 15:14
由 diony
如果sudoer设置的权限完全放开,那应该在权限上没什么区别。
只是环境变量之类的东西还是普通用户的。不过好像sudoer里也有环境变量相关的设置。
发表于 : 2008-09-03 16:20
由 yaska
还有一个
root的HOME是 /root
sudo 的话 HOME还是 当前用户
发表于 : 2008-09-03 16:59
由 hubert_star
echo $UID
sudo echo $UID
发表于 : 2008-09-03 17:50
由 BigSnake.NET
从 EUID 上讲没有区别
发表于 : 2008-09-03 19:33
由 delectate
yaska 写了:还有一个
root的HOME是 /root
sudo 的话 HOME还是 当前用户
ls ~/
你就会发现sudo的时候是home
root执行ls会发现是/root
发表于 : 2008-09-03 19:40
由 aerofox
hubert_star 写了:echo $UID
sudo echo $UID
这是一个错误的比较,因为在执行 echo 命令之前 $UID 就已经被 SHELL 扩展了,所以结果必然一样。
发表于 : 2008-09-03 20:58
由 happyaron
没有任何区别,sudo=Super User DO
发表于 : 2008-09-03 21:02
由 milujite
有区别的,有时候做定向操作sudo很郁闷,得借助tee
发表于 : 2008-09-03 21:13
由 Amankwah
楼上说得很有道理,sudo的权限会被管道或者重定向截断,有时候就很郁闷。
比如打开内核的IP转发:
sudo echo '1' >/proc/sys/net/ipv4/ip_forward
是不行的,而root就可以。
要用sudo的话我目前只知道这样解决:
echo '1'|sudo tee /proc/sys/net/ipv4/ip_forward
而且sudo执行的uid一般是当前执行sudo的用户ID,而root直接执行的uid应该是0
发表于 : 2008-09-03 21:17
由 BigSnake.NET
Amankwah 写了:楼上说得很有道理,sudo的权限会被管道或者重定向阶段,有时候就很郁闷。
比如打开内核的IP转发:
sudo echo '1' >/proc/sys/net/ipv4/ip_forward
是不行的,而root就可以。
要用sudo的话我目前只知道这样解决:
echo '1'|sudo tee /proc/sys/net/ipv4/ip_forward
而且sudo执行的uid一般是当前执行sudo的用户ID,而root直接执行的uid应该是0
错, sudo 执行的东西当然是 EUID 0,问题出在你那个 > ,那个是当前 shell 给你重定向的,当然就不是 root 身份
发表于 : 2008-09-03 21:18
由 xeoc
diony 写了:如果sudoer设置的权限完全放开,那应该在权限上没什么区别。
只是环境变量之类的东西还是普通用户的。不过好像sudoer里也有环境变量相关的设置。
正解
发表于 : 2008-09-03 21:27
由 hubert_star
aerofox 写了:hubert_star 写了:echo $UID
sudo echo $UID
这是一个错误的比较,因为在执行 echo 命令之前 $UID 就已经被 SHELL 扩展了,所以结果必然一样。
讲得对,欠考虑了
核心问题还是环境变量的问题,当前用户没有被切换,但是却是以0用户的身份执行操作
env
sudo env
应该能够看出来了