文件属性之setuid位

setuid位是可执行文件的一个属性,
ls -l /bin/ping 或mount等可以看到权限为
-rwsr-xr-x 1 root root 含有s位,所属用户为root表明该文件可以被其他用户以该文件所属用户的权限去执行。因此root用户设置s位后普通用户可以执行。
ping需要root权限是因为要创建原始套接字发送ICMP报文。
因此你自己编写的程序要达到这种效果可以:
sudo chown root xxx
sudo chmod +s xxx
此处以root身份赋予之权限以后就可以方便的让普通用户直接执行了,无需再输入密码。当然不用输密码就可执行的方法还有一些,如通过visudo编辑/etc/sudoers,设置NOPASSWD的程序,用户,但执行时仍需在命令前输入sudo
ICMP套接字是3.0内核新加入的功能,容许不需要set-user-id和CAP_NET_RAW权限的ping程序的实现,然而没有了兼容性,并且需要调整一个内核参数:
sudo sysctl -w net.ipv4.ping_group_range=‘0 10‘
或者写/proc/sys/ipv4/ping_group_range
默认值是‘1 0‘,意味着没有用户能够使用这个特性
若系统不支持则在创建套接字时显示Protocal not supported
若没有权限是Permission denied
创建socket时使用SOCK_DGRAM,不是SOCK_RAW,意味着不会收到20字节的IP头,而且不需要自己计算校验和,内核会帮你计算。ICMP id也是由内核填的。

时间: 2024-11-03 22:26:54

文件属性之setuid位的相关文章

sudo:有效用户 ID 不是 0,sudo 属于 root 并设置了 setuid 位吗

遇见这种问题应该检查sudo文件拥有者名称 ---x--x--x. 1 cmp cmp 130720  sudo 明显拥有者有问题 chown root:root /usr/bin/sudo chmod 4755 /usr/bin/sudo 再次执行sudo,还出现提示 /usr/libexec/sudoers.so 有效用户id不是0 检查sudoers.so 文件拥有着 ls /usr/libexec/sudoers.so -al-rw-r--r--. 1 cmp cmp 333624 11

linux sudo命令失败 提示sudo:/usr/bin/sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位

这是一个神奇的错误,缘由是因为有人将/usr/bin/sudo的权限改为777或其他. 解决办法: 1.如果知道root密码. su登录root用户,执行命令chmod 4755     /usr/bin/sudo    执行命令chmod 755 /usr 2.不知道root密码. 重启机器,ubuntu下按esc或shift,进入recovery模式,进入后选择root选项,有的会提示输入root密码,有的不会. (1).不需要输入root密码的情况下,执行chmod 4755     /u

linux权限位说明

?  linux文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件属主(Owner)的读.写.执行,用户组(Group)的读.写.执行以及(Other)其它用户的读.写.执行: ?  文件属主(Owner)读read 4.写write 2 .执行x 1 ?  文件用户组(Group)读r.写w.执行x ?  其它用户(Other)读r.写w.执行x ?  如果有权限位不可读.不可写.不可执行,则用-来表示.数字是0 ?  linux文件与目录权限对比说明: ?  r(Read,

系统用户权限,系统权限位,用户相关命

1 如何让普通用户拥有root用户的能力 1.1 知道root密码,切换到root用户 ? su - root 1.2 修改文件目录数据权限 chmod 0=rwx -R /oldboy/oldboy1/ -R:递归修改目录权限,会修改目录下所有目录及文件的权限 1.3 普通用户提权 1.3.1 配置sudo文件 (1)visudo = vim etc/sudoers? ? ###推荐visudo,配置文件时会有语法检查功能root ALL=(ALL) ALL? ? 看需要添加权限①oldboy

粘滞位(sticky bit)

linux特殊权限:setUid, setGid, 粘着位(sticky) (1)目录的X权限(执行) 文件的可执行权限很简单,也就是可否执行它的意思,但目录的执行权限又代表什么意思呢? 当然不可能是要执行这个目录了,其实这个执行权限如果用在目录上时,它不再代表执行的意思了,而是代表"搜索"权限. 当你要访问/etc/httpd.conf文件时,你必须拥有对目录etc的X(即搜索)权限,否则即便你对目录/etc和文件httpd.conf拥有读取权限,也是无法访问httpd.conf这个

GNU Linux特殊权限-setuid、setgid、stick bit

/*********************************************************************  * Author  : Samson  * Date    : 01/06/2015  * Test platform:  *              3.13.0-24-generic  *              GNU bash, 4.3.11(1)-release  * ************************************

linux文件权限位SUID,SGID,sticky的设置理解

SUID含义:文件的该位被设置为1,在该文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来           执行这个文件,他都有文件所有者的特权,如果所有者是root的话,那么执行人就有超级用户           的特权了,这是该位将变成一个安全漏洞,因此不要轻易设置该位. SGID含义:运行者将具有文件所有组的权限. 粘合位:  要求操作系统既是在可执行程序退出后,仍要在内存中保留该程序的映像,这样做是为了节省大           型程序的启动时间,但是会占用系统资源,因此设置

shell常见的文件属性检查

常用的检查参数如下: 操作符          如果...则为真 -b file         file为块设备文件 -c file         file为字符设备文件 -d file          file为目录  -e file          file存在 -f file          file为一般文件 -g file         file有设置它的setgid位 -h file          file为符号链接 -L file          同-h -p f

Linux课程笔记 Day07 课上内容总结 SSH和rsync

一. SSH 1.1    SSH介绍 SSH是Secure Shell Protocol的简称.在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后再进行数据传输.确保了传递的数据安全.SSH是专为远程登录会话和其他网络问题提供安全性的协议. 在默认状态下,SSH协议提供两个服务功能:一个是提供类似telnet远程链接服务器的服务,即上面提到的SSH服务:另一个是类似FTP服务的stp-server,借助SSH协议来传输数据,提供更安全的FTP服务. 特别提醒:SSH客户端