栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何以root身份执行命令

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何以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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/401066.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号