linux 中的特殊s 位,这个到底有什么用 ?
答案:2 悬赏:30 手机版
解决时间 2021-02-14 20:49
- 提问者网友:感性作祟
- 2021-02-14 11:57
linux 中的特殊s 位,这个到底有什么用 ?
最佳答案
- 五星知识达人网友:往事隔山水
- 2021-02-14 13:28
s位的作用是当有普通用户执行了该文件时会拥有该文件属主对该文文件的权限。追问我下面的那个详细的ping 例子,我不懂,可以解释吗追答这个s位通常都是给可执行的文件设置的。使执行者拥有对文件属主对资源的权限。最明显的例子就是/sbin/passwd。用户的密码是在/etc/shadow中存放的。普通用户没权限更改,但用户运行/sbin/passwd时为了确保普通用户能够修改自己的密码就更新/etc/shadow。所以对/sbin/passwd设置s位,使普通用户在运行/sbin/passwd时拥有root的权限,能够更新/etc/shadow文件。
至于ping命令的s位,目的不是限制普通用户的使用,而是让普通用户在使用ping时再拥有一些对其他文件的权限。追问我试了试,我讲passwd 的s 位去掉了,然后更新为 755,那么无论root 还是普通用户都可以执行,但是,我把ping 也改成755,但是root 可以运行,但是普通用户不行,为何,求解啊追答没有s位普通用户虽然能够运行passwd,但是改不了密码。
执行ping是需要读取别的文件支持的(我不知道是哪个文件比如网卡的配置文件,比如TCP/IP的协议文件),普通用户没有对那些文件的权限,所以,只对ping有权限是不行的。追问还在吗 ? 我用root 在 根目录下面新建一个文件a,又给了他s 的权限,chmod u+s /a ,那么其他的普通户用,使用这个文件,是拥有root 一样的权限的,那为什么,删不掉这个文件呢追答有权限并不是对正在使用的这个文件有权限,而是对和这个可执行程序相关的文件有root权限。下班了,等我想个生活化的例子给你解释吧。
至于ping命令的s位,目的不是限制普通用户的使用,而是让普通用户在使用ping时再拥有一些对其他文件的权限。追问我试了试,我讲passwd 的s 位去掉了,然后更新为 755,那么无论root 还是普通用户都可以执行,但是,我把ping 也改成755,但是root 可以运行,但是普通用户不行,为何,求解啊追答没有s位普通用户虽然能够运行passwd,但是改不了密码。
执行ping是需要读取别的文件支持的(我不知道是哪个文件比如网卡的配置文件,比如TCP/IP的协议文件),普通用户没有对那些文件的权限,所以,只对ping有权限是不行的。追问还在吗 ? 我用root 在 根目录下面新建一个文件a,又给了他s 的权限,chmod u+s /a ,那么其他的普通户用,使用这个文件,是拥有root 一样的权限的,那为什么,删不掉这个文件呢追答有权限并不是对正在使用的这个文件有权限,而是对和这个可执行程序相关的文件有root权限。下班了,等我想个生活化的例子给你解释吧。
全部回答
- 1楼网友:掌灯师
- 2021-02-14 14:49
ping要使用raw socket接口,哪个是受到权限控制的,类似的有tcpdump。要不然每个用户写一个监听程序,看看root连接网络怎么连接,看看root怎么从键盘输入数据(strace)还了得!
所以,ping执行是是以root身份执行的!这种suid的程序都很危险。
楼上把大部分问题说得差不多了,我给他补充一下,为什么需要root权限。
所以,ping执行是是以root身份执行的!这种suid的程序都很危险。
楼上把大部分问题说得差不多了,我给他补充一下,为什么需要root权限。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯