如何以root身份执行命令

如何以root身份执行命令,第1张

如何以root身份执行命令

在遇到普通用户要执行root命令之前,我们遇到了这种情况,这是我们的解决方案(使用setuid / SUID):

假使,假设:

  • 用户名
    Tom
  • 组别
    gTom
  • C程序文件
    my_pro.c
步骤1:编写C代码工具:
my_sudo.c
...int main(int args, char *argv[]) {    if (args < 2)         printf("Usage: my_sudo [cmd] [arg1 arg2 ...]");    // cmd here is the shell cmd that you want execute in "my_pro"    // you can check the shell cmd privilege here    // example:  if (argv[1] != "yum") return; we just allow yum execute here    char cmd[MAX_CMD];    int i;    for ( i = 2; i < args; i ++) {    // concatenate the cmd, example: "yum install xxxxx"        strcat(cmd, " ");        strcat(cmd, argv[i]);    }    system(cmd);}
步骤2:编译
my_sudo.c
以获取
my_sudo
可执行文件
   sudo chown root:gTom my_sudo   // user root && gTom group   sudo chmod 4550 my_sudo        // use SUID to get root privilege   #you will see my_sudo like this(ls -l)   #-r-sr-x--- 1 root my_sudo 9028 Jul 19 10:09 my_sudo*   #assume we put my_sudo to /usr/sbin/my_sudo
步骤3:在您的C代码中
...int main() {    ...    system("/usr/bin/mysudo yum install xxxxx");    ...}#gcc && ls -l#-rwxr--r--  1 Tom gTom 1895797 Jul 23 13:55 my_pro
步骤4:执行
./my_pro

您可以执行

yum install
no
sudo



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5009820.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存