初学 Linux ,请教一个 SUID 的问题

2019-07-06 10:35:34 +08:00
 Newyorkcity
一个二进制程序

---s------ (-rws------)

---s-----x (-rws---rwx)

---x-----x (-rwx---rwx)

这三者有区别么?如果三者有区别,各自最优的应用场景是?

谢谢
1020 次点击
所在节点    问与答
3 条回复
msg7086
2019-07-06 14:37:55 +08:00
s 是 setuid 标志位,就是任何能执行这个程序的人,执行这个程序的时候都自动切换到这个文件的所属用户。
比如 sudo 程序就是 setuid 且属于 root 的,所以任何人执行 sudo 都会自动让程序运行在 root 权限上。

你这 3 个例子。
rws 没意义因为别人无法执行这个程序。
rws---rwx 可以让任何人通过所属用户权限执行。当然也可以肆意修改这个程序。
rwx---rwx 可以让任何人正常执行程序,当然也可以肆意修改这个程序。

应用场景的话,这 3 个权限组合都没有应用场景,正常人不会用的。
Newyorkcity
2019-07-06 16:05:26 +08:00
请问 SUID 和将其它用户的权限+x 有何区别呢?
tempdban
2019-07-06 17:17:11 +08:00
@Newyorkcity 提示:fork

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/580532

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX