uid auid euid的区别
uid auid euid的区别?
initially: 最初地, 一开始地
jackson had initially bloodied his nose.
Initially, all went well.
uid: 你最开始登陆的那个用户的id.
euid: 是指当你使用 su命令, 切换了用户, 或者 run a setuid program时,的 uid
查看:
uid: 使用who am i命令
euid: 使用: whoami
linux下的两种syntax stlye:
一是, 标准的linux风格: standard linux sytax style: 在options的前面加上 短横线 -options
另一种是, 使用bsd风格: using BSD style : 选项前不加短横线 ps aux
----------------------------- ==
setuid,setguid??
主要是这两个命令setuid, & setguid
主要是对 系统下的可执行文件, 如: /bin/vi, /bin/touch, /bin/passwd等, 其他非可执行文件, 是没有意义的!
setuid, setgid的意思是: 当某个用户执行设置setuid的命令时, 这个用户就相当于灵魂附体, 就变成该命令的所有者在执行这个命令了, 一旦命令执行完毕,就马上恢复原来的用户身份.
因此, 如果假设vi 的属性设置成 setuid, 那么就很危险了: 任何人执行vi, 都可以转变成root的身份, 都可以对/etc/passwd, /etc/shadow等文件进行操作,
都可以删除所有用户的密码。。。。设置setuid的方法: chmod u+s /bin/vi, chmod g+s /bin/vi
清除setuid的方法: chmod u-s /bin/vi, chmod g-s /bin/vi
或者, 使用数字的方法, 要设置setuid要用4位数字, 将 u+s= 4, g+s=2 放置在原来的权限数字的前面:
如: chmod 4755 /bin/vi,
chmod 6755 /bin/vi
当然, 如果要删除setuid的命令, 使用 : chmod 0755 /bin/vi举例:
chmod u+s /bin/touch
[foo@localhost ~]$ touch bar
[foo@localhost ~]$ ll bar:
注意: 默认的文件的所有者 就是文件的创建者
这时候, 可以看到, bar的所有者是root! 而组是foo: 因为touch 具有setuid权限, 所以,当foo执行touch命令的时候, 就是用touch命令的所有者-- root
来执行的, 所有bar文件的所有者是root, 而组是foo, 没有变!
- 当设置setuid权限后, 将会在 命令的 “x”权限位显示成 “s”
---------------------------- ==
文件的权限和命令的权限?
其实命令的权限 跟 普通文件的权限 是一样的, 其中rwx一样的是对该命令文件 本身的操作。
比如: ll /bin/vi
-rwxr--r-- root root ...
那么对于root用户,对这个vi文件本身, 他有读取、写(修改)、执行的权限, 所以, root可以移动、改名、甚至可以修改vi这个可执行文件本身内部的内容,
以至于你不能使用这个命令vi了
---------------------------- ==
注意, setuid是设置文件的 “setuid”权限, 对该命令文件本身的rwx 权限没有 半毛钱的关系!它表示的完全就是另外一个事情! 它 只是表示 这个命令如touch, passwd,vi等 在被其他非所有者 用户执行时, 将会“变身”为 命令文件所有者的身份(即: root用户)!
uid auid euid的区别的更多相关文章
- linux UID,GID,EUID,EGID,SUID,SGID
SUID, SGID, sticky位可以参考: http://onlyzq.blog.51cto.com/1228/527247/ SUID属性只能运用在可执行文件上,当用户执行该执行文件时,会临时 ...
- Android 中pid与uid的作用与区别
PID:为Process Identifier, PID就是各进程的身份标识. 程序一运行系统就会自动分配给进程一个独一无二的PID.进程中止后PID被系统回收,可能会被继续分配给新运行的程序,但是在 ...
- 服务器编程入门(5)Linux服务器程序规范
问题聚焦: 除了网络通信外,服务器程序通常还必须考虑许多其他细节问题,这些细节问题涉及面逛且零碎,而且基本上是模板式的,所以称之为服务器程序规范. 工欲善其事,必先利其器,这篇主要来探 ...
- Linux 高性能服务器编程——Linux服务器程序规范
问题聚焦: 除了网络通信外,服务器程序通常还必须考虑许多其他细节问题,这些细节问题涉及面逛且零碎,而且基本上是模板式的,所以称之为服务器程序规范. 工欲善其事,必先利其器,这篇主要来探 ...
- UID中RUID、EUID和SUID的区别
看UNIX相关的书时经常能遇到这几个概念,但一直没有好好去理清这几个概念,以致对这几个概念一直一知半解.今天好好区分了一下这几个概念并总结如下.说白了这几个UID引出都是为了系统的权限管理. 下面分别 ...
- Linux: uid/euid/suid的关系
三种进程用户的简单解释:三种用户/组ID:uid/gid: 实际用户/组IDeuid/egid: 有效用户/组ID, 进程执行某个应用的用户/组ID.suid/sgid: 设置用户/组ID, 应用所属 ...
- Linux内核学习笔记: uid之ruid,euid,suid
转自: http://www.linuxidc.com/Linux/2011-09/43194.htm 看UNIX相关的书时经常能遇到这几个概念,但一直没有好好去理清这几个概念,以致对这几个概念一直一 ...
- UID, EUID, SUID, FSUID
摘自:https://blog.csdn.net/wh8_2011/article/details/50825340 UID, EUID, SUID, FSUID 2016年03月08日 10:40: ...
- 整理下本周工作中遇到的疑问;uid/euid/suid;docker镜像管理
1.系统中的父子进程关系,以及docker是如何处理的这种父子进程关系,线上问题发现,子进程长时间得不到退出. 2.调用system系统调用发生了啥事情,发现大量的页表拷贝. 3.通过shell命令通 ...
随机推荐
- PHP排序函数sort、rsort、asort、arsort、ksort、krsort
1.sort函数用于对数组元素值从低到高排序,去除原始索引元素,重新生成0,1,2..的键2.rsort函数用于对数组元素值从高到低排序,去除原始索引元素,重新生成0,1,2..的键3.asort函数 ...
- c# 杀死占用某个文件的进程
原文:c# 杀死占用某个文件的进程 需要使用微软提供的工具Handle.exe string fileName = @"H:\abc.dll";//要检查被那个进程占用的文件 Pr ...
- Qt读写Json
Qt操作Json 1.QJsonDocument 1.详细说明 QJsonDocument类提供了读写JSON文档的方法. QJsonDocument是一个封装了完整JSON文档的类,可以从基于UTF ...
- Hive常用数据库操作
1.创建表的三种姿势 第一种 //员工表 create table if not exists default.emp( empno int, ename string, job string, mg ...
- 如何在github上部署自己的前端项目
很多时候我们想需要一个地址就可以访问自己的前端作品, 但是注册一个服务器和域名是需要花钱,很多小伙伴都不愿意, 其实这种前端静态页面github就可以帮我们预览其效果,而且只要在有网的情况下都可以访问 ...
- http参数传递方式
url传参 这种在各种method(get,post,delete,put)都能使用,解析速度快 body体中的参数 application/x-www-form-urlencoded 这应该是最常见 ...
- Java 关于SpringbootJPA分页及排序
创建Pageable对象 看了网上很多博客,都是在用 new PageRequest的方法创建Pageable对象.可是估计很多同学写了之后才发现原来这个方法作者已经标记为过时了: 替代的方法是不要n ...
- PAT Advanced 1001 A+B Format (20 分)
Calculate a+b and output the sum in standard format -- that is, the digits must be separated into gr ...
- Xor Sum 2 AtCoder - 4142 (异或前缀和性质+ 双指针)
Problem Statement There is an integer sequence A of length N. Find the number of the pairs of intege ...
- Html5+ 开发APP 后台运行代码
function backRunning(){ if(plus.os.name == 'Android'){ var main = plus.android.runtimeMainActivity() ...