Linux 进程用户属性总结
UID,EUID,SUID,GID,EGID,SGID
在Linux系统中不同的用户拥有不同的权限,这样才能保证服务器的安全性。在ubuntu中我一般情况下都是在普通用户下做操作的,但是在有些时候有些程序必须使用root用户才能,执行此程序因此就会涉及到执行权限的问题。
UID表示进程的用户ID:
进程的用户ID是指,创建此进程的用户的ID。简单的说,哪个用户创建了此进程,这个“进程的用户ID”就表示该用户。
SUID
SUID是set uid的简称,表示设置UID,即设置文件的拥有着权限,当某些文件不想被别人做操作时,可以设置SUID。(如passwd文件)
- SUID只对二进制文件有效
- 拥有着对该文件有执行权
- 执行时会暂时获取文件所有者权限
- 该权限只在程序执行过程中有效
EUID表示进程拥有着权限
EUID直白的讲,就是拥有此文件的用户ID,一般情况下EUID与UID是相同的,但是EUID是随时变化的根据所操作文件的权限而定。一般操作被设置为SUID的文件时,就会使EUID就会与UID不同,需要临时提升用户权限。
同理GID,EGID,SGID都表示与之对应的组ID
改变用户权限的方式
程序中
#include<unistd.h>
int setuid(uid_t uid)
- 程序中使用如上函数用来临时提升用户的执行权限。
- 同理有setuid()函数自然有setguid()函数提升组ID权限。
在BUSH中
- 在bash中可以使用chmod 命令修改文件的操作权限。
- 使用sudo命令可临时提权。
扩展
- root用户的用户ID为0
- o~1000为系统保留的用户ID
- 1000外为用户自己创建的
网友评论