用sudo进行操作 和用真正的root身份来操作有没有区别?

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
crossie
帖子: 241
注册时间: 2008-05-25 20:35

用sudo进行操作 和用真正的root身份来操作有没有区别?

#1

帖子 crossie » 2008-09-03 14:13

sudo的权限和root的权限是不是完全一样的?
头像
yaoms
帖子: 4952
注册时间: 2007-10-19 14:51
来自: 深圳

#2

帖子 yaoms » 2008-09-03 14:15

没什么区别的。
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'
izee
帖子: 661
注册时间: 2007-01-26 13:38

#3

帖子 izee » 2008-09-03 14:58

有区别
root,是以root用户身份运行
sudo,授予当前用户"root组权限"使用权,以当前登录用户身份运行
diony
帖子: 15
注册时间: 2008-04-17 10:59

#4

帖子 diony » 2008-09-03 15:14

如果sudoer设置的权限完全放开,那应该在权限上没什么区别。

只是环境变量之类的东西还是普通用户的。不过好像sudoer里也有环境变量相关的设置。
头像
yaska
帖子: 1169
注册时间: 2007-10-28 21:35

#5

帖子 yaska » 2008-09-03 16:20

还有一个
root的HOME是 /root
sudo 的话 HOME还是 当前用户

:D
头像
hubert_star
论坛版主
帖子: 5373
注册时间: 2007-10-29 22:12
系统: OSX 10.9 + Ub 1304
来自: 江苏南京

#6

帖子 hubert_star » 2008-09-03 16:59

echo $UID

sudo echo $UID
佛经说,人有八苦: 生、老、病、死、求不得、怨憎、爱别离、五阴盛 故我苦!
圣经说,人有七罪: 饕餮、贪婪、懒惰、淫欲、傲慢、嫉妒和暴怒  故我有罪!

我这篇帖子里面没有任何攻击我们伟大的中华人民共和国政府和任劳任怨的人民公仆(和本论坛高素质的版主)的文字和含义;

特此声明!

有些事,我们明知道是错的,也要去坚持,因为不甘心;有些人,我们明知道是爱的,也要去放弃,因为没结局;有时候,我们明知道没路了,却还在前行,因为习惯了。

欢迎来我的新浪微博@me
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#7

帖子 BigSnake.NET » 2008-09-03 17:50

从 EUID 上讲没有区别
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
delectate
帖子: 18311
注册时间: 2008-01-09 22:41

#8

帖子 delectate » 2008-09-03 19:33

yaska 写了:还有一个
root的HOME是 /root
sudo 的话 HOME还是 当前用户

:D
ls ~/

你就会发现sudo的时候是home

root执行ls会发现是/root
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

#9

帖子 aerofox » 2008-09-03 19:40

hubert_star 写了:echo $UID

sudo echo $UID
这是一个错误的比较,因为在执行 echo 命令之前 $UID 就已经被 SHELL 扩展了,所以结果必然一样。
happyaron
帖子: 473
注册时间: 2008-04-27 1:10
来自: http://blogs.gnome.org/happyaron/

#10

帖子 happyaron » 2008-09-03 20:58

没有任何区别,sudo=Super User DO
头像
milujite
帖子: 644
注册时间: 2007-01-01 22:14
联系:

#11

帖子 milujite » 2008-09-03 21:02

有区别的,有时候做定向操作sudo很郁闷,得借助tee
ThinkPad SL400 DC
CPU:Intel® Core 2 Duo processor T5670
RAM:2x1GB,Dual
HARDDISK:Seagate 160G SATA
CD-ROM:COMBO
头像
Amankwah
帖子: 624
注册时间: 2006-10-16 7:24
来自: 安康/西安/广州
联系:

#12

帖子 Amankwah » 2008-09-03 21:13

楼上说得很有道理,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
上次由 Amankwah 在 2008-09-03 21:33,总共编辑 1 次。
读书取正,读易取变,读骚取幽,读庄取达,读汉文取坚,最有味卷中岁月。
与菊同野,与梅同疏,与莲同洁,与兰同芳,与海棠同韵,定自称花里神仙。
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#13

帖子 BigSnake.NET » 2008-09-03 21:17

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 身份
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
xeoc
帖子: 1994
注册时间: 2007-05-06 10:12

#14

帖子 xeoc » 2008-09-03 21:18

diony 写了:如果sudoer设置的权限完全放开,那应该在权限上没什么区别。

只是环境变量之类的东西还是普通用户的。不过好像sudoer里也有环境变量相关的设置。
正解
头像
hubert_star
论坛版主
帖子: 5373
注册时间: 2007-10-29 22:12
系统: OSX 10.9 + Ub 1304
来自: 江苏南京

#15

帖子 hubert_star » 2008-09-03 21:27

aerofox 写了:
hubert_star 写了:echo $UID

sudo echo $UID
这是一个错误的比较,因为在执行 echo 命令之前 $UID 就已经被 SHELL 扩展了,所以结果必然一样。
讲得对,欠考虑了

核心问题还是环境变量的问题,当前用户没有被切换,但是却是以0用户的身份执行操作

env

sudo env

应该能够看出来了
佛经说,人有八苦: 生、老、病、死、求不得、怨憎、爱别离、五阴盛 故我苦!
圣经说,人有七罪: 饕餮、贪婪、懒惰、淫欲、傲慢、嫉妒和暴怒  故我有罪!

我这篇帖子里面没有任何攻击我们伟大的中华人民共和国政府和任劳任怨的人民公仆(和本论坛高素质的版主)的文字和含义;

特此声明!

有些事,我们明知道是错的,也要去坚持,因为不甘心;有些人,我们明知道是爱的,也要去放弃,因为没结局;有时候,我们明知道没路了,却还在前行,因为习惯了。

欢迎来我的新浪微博@me
回复