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了
---------------------------- ==