您尚未登录。

#1 2017-01-04 10:37:38

archlinux77
会员
注册时间: 2017-01-04
帖子: 2

为什么/usr/bin/下的可执行文件

为什么/usr/bin/下的可执行文件的属性都是755?甚至reboot都是????普通用户居然可以重启电脑?什么都可以干,还要sudo干什么?systemctl居然也是755?

最近编辑记录 archlinux77 (2017-01-04 10:43:42)

离线

#2 2017-01-04 11:00:42

Remilia
RemiliaForever
注册时间: 2016-03-14
帖子: 49
个人网站

Re: 为什么/usr/bin/下的可执行文件

reboot是systemctl的软链接,systemctl有权限认证

离线

#3 2017-01-04 11:06:17

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,956
个人网站

Re: 为什么/usr/bin/下的可执行文件

有些普通用户也是可以 systemctl start/stop xxx 的呀,只是需要再次认证(由 policykit 管理)。
而且 systemctl cat / status / list-units 什么的,为什么不让普通用户用呢?
而且还有用户个人的 systemd 实例啊,用 systemctl --user 控制的。

至于 journalctl,也是类似的情况。普通用户默认能读TA自己的日志,系统日志因为 /var/log/journal 下边的数据文件的权限关系读不了。

权限保护的应当是数据,而不是谁都可以复制一份的代码。就算你把这些命令都 700 了,普通用户从另外的系统上传一份过来不照样用么?

离线

#4 2017-01-04 11:07:12

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,956
个人网站

Re: 为什么/usr/bin/下的可执行文件

sudo 是以其他用户的身份来运行命令,不是给当前用户额外的权限的。

离线

#5 2017-01-05 00:33:51

xtricman
エクス·トリクマン
注册时间: 2012-12-26
帖子: 1,267

Re: 为什么/usr/bin/下的可执行文件

能执行reboot不意味着能重启。看你进程有没有这个capability,euid是什么。这跟文件系统允不允许你执行又没关系,允许你执行ls你就能看到所有文件了?允许你执行vim你就能编辑系统文件了?何况systemd体系中真正执行重启的是systemd,polkit进行鉴权,这俩进程都是root用户进程。


反社会,精神极其不稳定,随时可能炸碎身边所有人

离线

#6 2017-04-07 16:05:41

xztx
会员
注册时间: 2016-02-15
帖子: 40

Re: 为什么/usr/bin/下的可执行文件

学习了。

离线

#7 2017-04-08 22:21:59

atmouse
会员
注册时间: 2011-08-24
帖子: 701

Re: 为什么/usr/bin/下的可执行文件

^^
cat /proc/$$/status | grep Cap
这里可以看属性

离线

页脚