关于setuid和用户ID
2009-11-11 00:10:55| 分类:
编程
| 标签:
|举报
|字号大中小 订阅
实际用户ID:指的是进程执行者是谁
有效用户ID:指进程执行时对文件的访问权限
保存设置用户ID:作为effective user ID的副本,在执行exec调用时后能重新恢复原来的有效用户ID.
上面这三个ID是相对于进程而言的。
set-user-ID:设置用户ID,这是相对于文件来说的.设置了set-user-ID位的可执行程序,
执行时,进程的effective user ID与saved set-uesr-ID都为程序文件所属用户的ID,些时
real user ID与effective user ID就不一定相等了.这类程序称之为SUID程序,这类程序
有特殊的用途.典型的例子:passwd程序,ping程序等.
[root@localhost temp]# ll ---------------->显示文件权限
-rw-r--r-- 1 root root 26 Sep 4 03:28 test.txt
[root@localhost temp]# chmod u+s test.txt ------->设置文件“设置用户ID”标识位
[root@localhost temp]# ll ---------------->再显示文件权限
-rwSr--r-- 1 root root 26 Sep 4 03:28 test.txt
假定系统当前用户为User1,User1在调用“调用了setuid()函数的”程序时,如果对上示例中
的test.txt进行操作,则User1具有与root用户相同的权限,即能写文件。
常用命令:
id :查看用户的UID、GID及所归属的用户组 ,例:
[zhangjx@localhost ~]$ id root
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
usermod :修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等
[root@localhost zhangjx]# usermod -g root zhangjx ----->将用户zhangjx设置为root组
[root@localhost zhangjx]# id zhangjx
uid=500(zhangjx) gid=0(root) groups=0(root)
评论这张
转发至微博
转发至微博
评论