2019-05-19 Linux 进程用户属性总结

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
int setuid(uid_t uid)
  • 程序中使用如上函数用来临时提升用户的执行权限。
  • 同理有setuid()函数自然有setguid()函数提升组ID权限。

在BUSH中

  • 在bash中可以使用chmod 命令修改文件的操作权限。
  • 使用sudo命令可临时提权。

扩展

  • root用户的用户ID为0
  • o~1000为系统保留的用户ID
  • 1000外为用户自己创建的

你可能感兴趣的:(2019-05-19 Linux 进程用户属性总结)