linux权限是linux中很重要的一部分。
linux设置用户ID和组ID
与一个进程相关的ID有6个或更多。
实际用户ID,实际组ID;有效用户ID,有效组ID,附属组ID;保存的设置用户ID,保存的设置组ID。
实际用户ID和实际组ID标识我们到底是谁。这两个字段在登录时取自口令文件的登录项。通常在一个登录会话期间这些值并不会改变。有效用户ID,有效组ID,附属组ID决定我们的文件访问权限。保存的设置用户ID和保存的设置组ID在执行一个程序时包含了有效用户ID和有效组ID的副本。
通常有效用户ID等于实际用户ID,有效组ID等于实际组ID。当执行一个程序文件时,进程的有效用户ID通常就是实际用户ID,有效组ID就是实际组ID。但是在文件模式字(st_mode)中设置一个特殊标志,其含义是“当执行此文件时,将进程的有效用户ID设置为文件所有者的用户ID”,同样在文件模式字中可以设置另一位,它将执行此文件的进程的有效组ID设置为文件的组所有者ID。在文件模式字的这两位被称为设置用户ID位和设置组ID位。
测试程序
思路尚不清晰,还没有说清楚这个问题。
get_uid_etc.cpp
1 |
|
查看get_uid_etc.cpp,可以看出get_uid_etc.cpp属于root用户。
1 | xixi2@xixi2:~/liunx_prac$ ls -l get_uid_etc |
使用who可以查看当前登录用户为xixi2。
1 | xixi2@xixi2:~/liunx_prac$ who |
以xixi2身份运行get_uid_etc.cpp文件。
1 | xixi2@xixi2:~/liunx_prac$ ./get_uid_etc |
以root身份运行get_uid_etc.cpp文件。
1 | xixi2@xixi2:~/liunx_prac$ sudo ./get_uid_etc |
参考文献
[1]深入了解linux权限:https://mp.weixin.qq.com/s/nxJe3XDighMysLgbSYxX9A
[2]linux查看当前登录用户:https://blog.csdn.net/y874961524/article/details/71102134