linux sudo原理,linux – sudo / root-ness检测的工作原理

除非我已经是root用户,否则在系统范围内进行更改的程序需要sudo.

现在,问题是:系统究竟是如何确定我(不)根?

可以:

>检查我是否在某一特定群体中?如果是这样,我需要进入哪个群体?

>检查根本身的已知ID(即“root用户”是否硬编码到源中)?

如果是这样,如果我的root帐户被破坏会怎么样?我是否会被迫重新安装操作系统,因为无法创建具有root权限的其他帐户?

>根据某些文件的内容检查我的姓名/小组并授予正确的权限?如果是,哪个文件包含此信息?

>做点别的吗?如果是这样,它会做什么?

解决方法:

Unix上的用户名并不重要.只有数字用户ID. root的数字ID始终为0.它在整个地方(在内核,实用程序等中)都是硬编码的.

您可以通过运行id找到您的数字用户ID.

请注意,您的数字用户ID是正在运行的进程的属性.当您登录时,您登录的进程(登录,sshd等)以root身份运行(UID 0),一旦您的登录被授权,它将切换到您的用户ID并运行您的shell(在/ etc / passwd中指定) ).从那里,使用sudo,su或其他东西切换用户ID,这些程序设置setuid位(chmod us或chmod 4xxx将设置),这样当它们执行时,进程作为程序的所有者运行(root,UID 0).再一次,一旦你被授权,他们以root身份运行任何程序(无论你告诉sudo运行,shell等). (在su情况下,如果指定要切换到的另一个用户,则它会删除到该UID,然后运行shell或其他任何用户.)

要回答你的另一个问题,根帐户真的没办法“被破坏”,因为它真的只是一个数字,但可能有原因你不能只以root身份登录(例如忘记密码) .这些都不需要重新安装操作系统,但它们可能需要一些技术技能来修复. (例如,如果您忘记了root密码,则可以使用sudo通过使用密码到root用户,启动到单用户模式以重置密码,或从实时媒体或救援环境启动.)

标签:linux,security,root,sudo,users

来源: https://codeday.me/bug/20190810/1638813.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值