精华内容
下载资源
问答
  • Set-UID程序漏洞实验

    千次阅读 2015-07-09 18:12:34
    SET-UID程序漏洞实验 实验简介 Set-UID 是Unix系统中的一个重要的安全机制。当一个Set-UID程序运行的时候,它被假设为具有拥有者的权限。例如,如果程序的拥有者是root,那么任何人运行这个程序时都会获得程序...

    SET-UID程序漏洞实验

    实验简介

    Set-UID 是Unix系统中的一个重要的安全机制。当一个Set-UID程序运行的时候,它被假设为具有拥有者的权限。例如,如果程序的拥有者是root,那么任何人运行这个程序时都会获得程序拥有者的权限。
    本次试验试图理解Set-UID运行机制的原理,并利用这一机制获取root权限。

    实验内容

    1.理解Set-UID机制

    在使用操作系统的过程中,普通用户有可能临时需要使用系统权限,如修改密码passwd、管理员权限运行sudo等,在使用这种程序的时候,普通用户的权限被提升到root(即文件的所有者)级别,因此可以完成用户本无权进行的操作。
    通过实验,我们可以观察到用户提权的过程。我们首先以root的身份创建一个zsh作为运行的目标shell,并赋予Set-UID权限。

    # cp/usr/bin/zsh /tmp
    # chmod u+s /tmp/zsh

    在普通用户权限下执行/tmp/zsh,可以发现普通用户得到了root权限#,此时我们可以完成所有使用root权限才能完成的操作。
    如果我们使用普通用户创建这个zsh,则不会拥有root权限。

    $ cp /usr/bin/zsh /tmp
    $ chmod u+s /tmp/zsh

    这是因为在复制时,文件的所有者是普通用户,Set-UID仅仅为zsh赋予了普通用户的权限,而没有root权限。
    经实验,拥有Set-UID权限的zsh可以让我们获取到root权限,我们再尝试使用bash是否也可以达到这样的效果。

    # cp/usr/bin/bash /tmp
    # chmod u+s /tmp/bash
    $ /tmp/bash

    我们可以看到,虽然进入了bash,但是并没有获得到root权限bash-4.3$。/bin/bash有某种内在的保护机制可以阻止Set-UID机制的滥用。为了能够体验这种内在的保护机制出现之前的情形,我们打算使用另外一种shell程序——/bin/zsh。在一些linux的发行版中(比如Redora和Ubuntu),/bin/sh实际上是/bin/bash的符号链接。为了使用zsh,我们需要把/bin/sh链接到/bin/zsh:ln -s /bin/zsh /bin/sh

    2.利用Set-UID权限获取root权限

    (1)system()函数的功能

    在C语言程序中,可以使用system()函数来调用环境变量PATH中的程序。如system("ls")可以打印当前文件夹下的文件列表。

    (2)利用system函数获取root权限

    既然system函数可以运行PATH中的程序,而PATH又存在拥有Set-UID权限的zsh,那么我们就可以通过执行这个程序来获取root权限。

    //SetUID.c
    int main()
    {
        system("zsh");
    }

    使用root权限编译,并赋予Set-UID权限。普通用户身份运行。

    # gcc SetUID.c -o SetUID
    # chmod u+s SetUID
    $ ./SetUID

    我们会发现,我们获得了root权限#

    (3)理解sytem()和execve()的不同

    首先我们来看一段代码。

    #include <string.h>
    #include <stdio.h>
    #include <stdlib.h>
    int main(int argc, char *argv[])
    {
        char *v[3];
        if(argc < 2)
        {
            printf("Please type a file name.\n");
            return 1;
        }
        v[0] = "/bin/cat"; v[1] = argv[1]; v[2] = 0;
        //Set q = 0 for Question a, and q = 1 for Question 
        int q = 0;
        if (q == 0)
        {
            char *command = malloc(strlen(v[0]) + strlen(v[1]) + 2);
            sprintf(command, "%s %s", v[0], v[1]);
            system(command);
        }
        else execve(v[0], v, 0);
        return 0 ;
    }

    程序的功能是打印一个文件,在q=0时使用system()方式,否则使用execve方式。然而前一种方式是不安全的。
    我们构造输入文件名如下:SetUID.c;rm -rf /。使用system()解析时,会直接把输入当作shell语句,因此结果为:cat SetUID.c; rm -rf /文件安全遭受到威胁。
    使用execve方式不会存在这个问题,因为execve把cat SetUID.c; rm -rf /处理为耽搁文件名,会提示文件不存在。

    3.理解LD_PRELOAD环境变量的作用

    为了理解LD_PRELOAD环境变量,我们先重载libc中的一个函数。

    //mylib.c
    #include <stdio.h>
    void sleep(int t)
    {
        printf("I don't want to sleep for %d seconds.\n", t);
    }

    编译上面的程序:
    gcc -fPIC -g -c mylib.c
    gcc -shared -Wl,-soname,libmylib.so.1 -o libmylib.so.1.0.1 mylib.o –lc
    再写一个用户程序调用sleep函数:

    //test.c
    int main()
    {
        sleep(1);
        return 0;
    }

    首先我们以普通用户身份编译运行。我们会发现运行结果为:I don't want to sleep for 1 seconds.

    $ gcc test.c -o test
    $ ./test

    我们尝试把test.c编译一个带root权限的Set-UID程序,以普通用户身份运行。不会重载sleep函数。

    # gcc test.c -o test
    # chmod u+s test
    $ ./test

    我们尝试把test.c编译一个带root权限的Set-UID程序,以root身份运行。运行结果为:I don't want to sleep for 1 seconds.

    # gcc test.c -o test
    # chmod u+s test
    # ./test

    最后我们把test.c编译一个带普通用户权限的Set-UID程序,以普通用户身份运行。sleep没有被重载。

    $ gcc test.c -o test
    $ chmod u+s test
    $ ./test

    通过上面的实验,我们可以得到结论,只有用户自己创建的程序自己去运行,才会使用LD_PRELOAD环境变量,重载sleep函数,否则的话忽略LD_PRELOAD环境变量,不会重载sleep函数。

    4.Set-UID的提权和清除

    有些时候,我们希望用户临时获取root权限进行一些操作,结束后恢复其自身权限,这个时候我们就需要清除Set-UID权限。

    #include <stdlib.h>
    #include <stdio.h>
    #include <sys/types.h>
    #include <fcntl.h>
    int main()
    {
        int fd;
        setuid(getuid());
        fd = open("/tmp/zzz",O_RDWR|O_APPEND);
        sleep(1);
        pid_t pid ;
        if( ( pid = fork() ) < 0 )
            perror("fork error");
        else if( pid == 0 )
            write( fd , "Set-UID test." , 10 );
        int status=waitpid(pid,0,0);
        close(fd);
        return 0;
    }

    需要注意的一点是,setuid(getuid());必须放在文件打开之前,文件一旦被打开,普通用户就拥有了写入权限。

    展开全文
  • response.setHeader( “Content-Disposition “, “attachment;...通过IE浏览器直接选择相关应用程序插件打开: response.setHeader( “Content-Disposition “, “inline;filename= “+fliename)

    点击会提供对话框选择另存为:
    response.setHeader( “Content-Disposition “, “attachment;filename= “+filename);

    通过IE浏览器直接选择相关应用程序插件打开:
    response.setHeader( “Content-Disposition “, “inline;filename= “+fliename)

    下载前询问(是打开文件还是保存到计算机)
    response.setHeader( “Content-Disposition “, “filename= “+filename);

    展开全文
  • Vim 保存文件时也会将文件保存为这种字符编码方式 (不管是否新文件都如此),网上是这样介绍的,但是我这样做在.vimrc中定义为utf-8似乎没有作用,只能在打开vim文件时手动设置才会起效,不知道什么原因。 (3)file...

    转1. http://blog.sina.com.cn/s/blog_40e1ba640102wm26.html

    2.http://www.cnblogs.com/joeyupdo/archive/2013/03/03/2941737.html
    以下为copy链接2中的介绍
    (1)encoding: Vim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等。用户手册上建议只在 .vimrc 中改变它的值,事实上似乎也只有在 .vimrc 中改变它的值才有意义

    (2)fileencoding: Vim 中当前编辑的文件的字符编码方式,Vim 保存文件时也会将文件保存为这种字符编码方式 (不管是否新文件都如此),网上是这样介绍的,但是我这样做在.vimrc中定义为utf-8似乎没有作用,只能在打开vim文件时手动设置才会起效,不知道什么原因。

    (3)fileencodings: Vim 启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式,并且将 fileencoding 设置为最终探测到的字符编码方式。因此最好将 Unicode 编码方式放到这个列表的最前面,将拉丁语系编码方式 latin1 放到最后面。

    (4)termencoding: Vim 所工作的终端 (或者 Windows 的 Console 窗口) 的字符编码方式。这个选项在 Windows 下对我们常用的 GUI 模式的 gVim 无效,而对 Console 模式的 Vim 而言就是 Windows 控制台的代码页,并且通常我们不需要改变它。

    系统locale是utf-8(很多linux系统默认的locale形式),编辑的文档是GB2312或GBK形式的(Windows记事本
    默认保存形式,大部分编辑器也默认保存为这个形式,所以最常见),终端类型utf-8(也就是假定客户端是putty类的unicode软件)
    则vim打开文档后,encoding=utf-8(locale决定的),fileencoding=latin1(自动编码判断机制不准导致的),termencoding=空(默认无需转换term编码),显示文件为乱码。
    解决方案1:首先要修正fileencoding为cp936或者euc-cn(二者一样的,只不过叫法不同),注意修正的方法不是:set
    fileencoding=cp936,这只是将文件保存为cp936,正确的方法是重新以cp936的编码方式加载文件为:edit
    ++enc=cp936,可以简写为:e ++enc=cp936。

    但是这样做,文件关闭后重新打开又要重新设置一遍。出现乱码归根结底的原因是vim不能识别该文件的编码方式,导致不能正常解码(不知道是不是叫解码,我的理解)。所以,我在.vimrc中设置了fileencodings,相当于告诉vim当以utf-8解码文件不成功时以这么几种方式尝试,set fileencoding=utf-8 set fileencodings=ucs-bom,utf-8,cp936,latin1. 这样打开正常了

    展开全文
  • SEED实验系列:SET-UID程序漏洞实验

    千次阅读 2016-10-15 10:21:42
    当一个Set-UID程序运行的时候,它被假设为具有拥有者的权限。例如,如果程序的拥有者是root,那么任何人运行这个程序时都会获得程序拥有者的权限。Set-UID允许我们做许多很有趣的事情,但是不幸的是,它也是很

    文详细出自http://www.shiyanlou.com/courses/227,转载请注明出处。

    实验室链接

    一、实验描述

    Set-UID 是Unix系统中的一个重要的安全机制。当一个Set-UID程序运行的时候,它被假设为具有拥有者的权限。例如,如果程序的拥有者是root,那么任何人运行这个程序时都会获得程序拥有者的权限。Set-UID允许我们做许多很有趣的事情,但是不幸的是,它也是很多坏事情的罪魁祸首。
    因此本次实验的目标有两点:
    1.欣赏好的方面,理解为什么Set-UID是需要的,以及它是如何被执行的。
    2.注意坏的方面,理解它潜在的安全性问题。

    二、实验内容

    这是一个探索性的实验,你的任务是在Linux环境中和Set-UID机制”玩游戏“,你需要在Linux中完成接下来的实验任务:

    2.1

    猜测为什么“passwd”,“chsh”,“su”,和“sudo”命令需要Set-UID机制,如果它们没有这些机制的话,会发生什么,如果你不熟悉这些程序,你可以通话阅读使用手册来熟悉它们,如果你拷贝这些命令到自己的目录下,这些程序就不会是Set-UID程序,运行这些拷贝的程序,观察将会发生什么。


    从上面的截图可以看出:将passwd拷贝到/tmp/下,权限发生了变化(在原目录下suid位被设置),复件没有了修改密码的权限。
    对于“chsh”,“su”,和“sudo”命令,把这些程序拷贝到用户目录下,同样不再具有root权限。

    2.2

    在linux环境下运行Set-UID 程序,同时描述并且解释你的观察结果

    2.2.1

    以root方式登录,拷贝/bin/zsh 到/tmp, 同时设置拷贝到tmp目录下的zsh为set-uid root权限,然后以普通用户登录,运行/tmp/zsh。你会得到root权限吗?请描述你的结果。


    2.2.2

    拷贝/bin/bash到/tmp目录,同时设置/tmp目录下的bash为Set-UID root权限,然后以普通用户登录,运行/tmp/bash。你会得到root权限吗?请描述你的结果。


    可见,同样的操作,运行复制的zsh可以获得root权限,而bash不能。

    2.3

    从上面步骤可以看出,/bin/bash有某种内在的保护机制可以阻止Set-UID机制的滥用。为了能够体验这种内在的保护机制出现之前的情形,我们打算使用另外一种shell程序——/bin/zsh。在一些linux的发行版中(比如Redora和Ubuntu),/bin/sh实际上是/bin/bash的符号链接。为了使用zsh,我们需要把/bin/sh链接到/bin/zsh。
    下面的指令将会把默认的shell指向zsh:

    $sudo su
    Password:
    #cd /bin
    #rm sh
    #ln -s zsh sh
    tu-04
    tu-04

    2.4

    PATH环境变量的设置
    system(const char * cmd)系统调用函数被内嵌到一个程序中执行一个命令,system()调用/bin/sh来执行shell程序,然后shell程序去执行cmd命令。但是在一个Set-UID程序中system()函数调用shell是非常危险的,这是因为shell程序的行为可以被环境变量影响,比如PATH;而这些环境变量可以在用户的控制当中。通过控制这些变量,用心险恶的用户就可以控制Set-UID程序的行为。
    下面的Set-UID程序被用来执行/bin/ls命令;然后程序员可以为ls命令使用相对路径,而不是绝对路径。

    int main()
    {
       system("ls");
       return 0;
    }

    2.4.1

    你能够设置这个Set-UID程序运行你自己的代码而不是/bin/ls吗?如果你能的话,你的代码具有root权限吗?描述并解释你的观察。
    可以具有root权限,把/bin/sh拷贝到/tmp目录下面重命名为ls(先要确保/bin/目录下的sh 符号链接到zsh,而不是bash),将环境变量PATH设置为当前目录/tmp,运行编译的程序test。就可以获得root权限:


    2.4.2

    修改/bin/sh使得其返回到/bin/bash,重复上面的攻击,你仍然可以获得root权限吗?描述并解释你的观察。


    可见修改sh连接回bash,运行test程序不能使普通用户获得root权限。

    2.5

    sytem()和execve()的不同
    首先确保/bin/sh指向zsh
    背景:Bob在为一家审计代理处工作,他正在调查一家公司是否存在诈骗行为。为了这个目的,他需要阅读这家公司在Unix系统中的所有文件;另一方面,为了保护系统的可靠性,他不能修改任何一个文件。为了达到这个目的,Vince——系统的超级用户为他写了一个SET-ROOT-UID程序,并且给了Bob可以执行它的权限。这个程序需要Bob在命令行中打出一个文件名,然后运行/bin/cat命令显示这个文件。既然这个程序是以root权限运行的,它就可以显示Bob想看的任何一个文件。然而,既然这个程序没有写操作,Vince很确信Bob不能用这个程序修改任何文件。

    #include <string.h>
    #include <stdio.h>
    #include <stdlib.h>
    int main(int argc, char *argv[])
    {
       char *v[3];
       if(argc < 2)
       {
       printf("Please type a file name.\n");
       return 1;
       }
       v[0] = "/bin/cat"; v[1] = argv[1]; v[2] = 0;
      //Set q = 0 for Question a, and q = 1 for Question b
       int q = 0;
       if (q == 0)
       {
          char *command = malloc(strlen(v[0]) + strlen(v[1]) + 2);
          sprintf(command, "%s %s", v[0], v[1]);
          system(command);
      }
      else execve(v[0], v, 0);
      return 0 ;
    }

    2.5.1

    程序中有 q=0。程序会使用system()调用命令行。这个命令安全码?如果你是Bob,你能对系统的完整性妥协吗?你能重新移动一个对你没有写权限的文件吗?
    这个命令不安全,Bob可能会出于好奇或者个人利益驱使阅读或者修改只有root用户才可以运行的一些文件。比如截图中:file文件只有root用户有读写权限,但普通用户通过运行该程序,阅读并重命名了file文件:


    2.5.2

    如果令q=1;刚才的攻击还会有效吗?请描述并解释你的观察。
    修改为q=1后,不会有效。前面步骤之所以有效,是因为system()函数调用/bin/sh,链接至zsh,具有root权限执行了cat file文件后,接着执行mv file file_new命令。
    而当令q=1, execve()函数会把file; mv file file_new 看成是一个文件名,系统会提示不存在这个文件:


    2.6 LD_PRELOAD环境变量

    为了保证Set-UID程序在LD_PRELOAD环境的操纵下是安全的,动态链接器会忽略环境变量,但是在某些条件下是例外的,在下面的任务中,我们猜测这些特殊的条件到底是什么。
    1、让我们建立一个动态链接库。把下面的程序命名为mylib.c,放在/tmp目录下。在函数库libc中重载了sleep函数:

    #include <stdio.h>
    void sleep (int s)
    {
        printf("I am not sleeping!\n");
    }

    2、我们用下面的命令编译上面的程序(注意区别l和1):

    gcc -fPIC -g -c mylib.c
    
    gcc -shared -Wl,-soname,libmylib.so.1 \
    -o libmylib.so.1.0.1 mylib.olc

    3、把下面的程序命名为myprog.c,放在/tmp目录下:

    int main()
    {
       sleep(1);
       return 0;
    }

    请在下面的条件下运行这些程序,并观察结果。基于这些观察告诉我们链接器什么时候会忽略LD_PRELOAD环境变量,解释原因。

    2.6.1

    把myprog编译成一个普通用户下的程序在普通用户下运行
    可见,它会使用LD_PRELOAD环境变量,重载sleep函数:


    2.6.2

    把myprog编译成一个Set-UID root的程序在普通用户下运行
    在这种情况下,忽略LD_PRELOAD环境变量,不重载sleep函数,使用系统自带的sleep函数:


    2.6.3

    把myprog编译成一个Set-UID root的程序在root下运行
    在这种情况下,使用LD_PRELOAD环境变量,使用重载的sleep函数:


    2.6.4

    在一个普通用户下把myprog编译成一个Set-UID 普通用户的程序在另一个普通用户下运行
    在这种情况下,不会重载sleep函数:


    由以上四种情况可见:只有用户自己创建的程序自己去运行,才会使用LD_PRELOAD环境变量,重载sleep函数,否则的话忽略LD_PRELOAD环境变量,不会重载sleep函数。

    2.7 消除和清理特权

    为了更加安全,Set-UID程序通常会调用setuid()系统调用函数永久的清除它们的root权限。然而有些时候,这样做是远远不够的。在root用户下,在/tmp目录新建一个空文件zzz。在root用户下将下面代码命名为test.c,放在/tmp目录下,编译这个程序,给这个程序设置root权限。在一个普通的用户下,运行这个程序。描述你所观察到的情况,/tmp/zzz这个文件会被修改吗?解释你的观察。
    代码:

    #include <stdio.h>
    #include <stdlib.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    void main()
    {
      int fd;
      //Assume that /tmp/zzz is an important system file,
      //and it is owned by root with permission 0644
      fd = open("/tmp/zzz", O_RDWR | O_APPEND);
      // Simulate the tasks conducted by the program
      sleep(1);
      // After the task, the root privileges are no longer needed,
       //it’s time to relinquish the root privileges permanently.
      setuid(getuid()); // getuid() returns the real uid
      if (fork())
      { // In the parent process
       close (fd);
        exit(0);
      }
      else
      { // in the child process
      //Now, assume that the child process is compromised, malicious
      //attackers have injected the following statements
      //into this process
       write (fd, "shiyanlou!", 10);
      close (fd);
      }
    }

    结果如图:


    如图所示文件被修改了,原因在于设置uid前,zzz文件就已经被打开了。只要将语句setuid(getuid())移至调用open函数之前,就能避免这个问题。

    三、练习

    在实验楼环境安步骤进行实验,并截图

    License

    本课程所涉及的实验来自Syracuse SEED labs,并在此基础上为适配实验楼网站环境进行修改,修改后的实验文档仍然遵循GNU Free Documentation License。
    本课程文档github链接:https://github.com/shiyanlou/seedlab
    Syracuse SEED labs版权声明:

    Copyright Statement Copyright 2006 – 2009 Wenliang Du, Syracuse University. The development of this document is funded by the National Science Foundation’s Course, Curriculum, and Laboratory Improvement (CCLI) program under Award No. 0618680 and 0231122. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation. A copy of the license can befound at http://www.gnu.org/licenses/fdl.html.

    补充声明

    你能够喜欢我们的文章,我们在表示感谢。你愿意分享我们的文章,我们也十分欢迎。也希望你能够尊重我的劳动成果,在转载的时候保留原文链接http://www.shiyanlou.com/courses/227



    文/实验楼(简书作者)
    原文链接:http://www.jianshu.com/p/b4a6244e19a7
    著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
    展开全文
  • 3.3 提升 Set-UID 程序的安全性 exec函数 exec函数系列通过将当前进程映像包装为新的,来运行紫禁城。有许多exec函数的版本,工作方式不同。它们可以归类为: 使用/不适用 Shell 来启动新程序。 通过 Shell 处理...
  • 什么是CSET? 如何使用CSET? 文件校验和完整性验证程序版本2.05。 csetstandalone.exe 执照 MIT许可证,Apache许可证2.0 版权所有2018 Battelle Energy Alliance,LLC 请参阅和 作者联系方式: 爱达荷州国家...
  • 我会了解到Set Character Encoding是因为最近课题组要搭建一个网页,在打开网页的时候发现出现乱码的情况: 于是我谷歌了一下解决办法,原来是新版本谷歌去掉了设置编码功能。为了将编码默认设置为UTF-8 我进行了...
  • android 当软件第一次被打开时会进行版本检测 弹出新版本更新提示对话框 ...当后台程序全部退出后 重新打开软件时 这个boolean值貌似还是false 这个情况如何进行软件更新提示 这个值怎么设 或者换一种方法也可以
  • SetUid

    千次阅读 2011-12-15 19:25:34
    setuid的优点: 1、 使用SetUID可以灵活的调整所有文件所有者权限 例如: 如果我们以普通用户 [root@localhost ~]# su xiweina 进入执行新建文件 [xiweina@localhost root]$ touch file 则出现 touch: 无法...
  • mips汇编程序中的.set指令使用

    千次阅读 2017-11-14 15:49:21
    .set push --> save all settings .set reorder/noreorder --> let/don't let assembler reorder instructions .set at/noat --> let/don't let assembler use the register $at in instruction aliases (li,la,
  • set serveroutput on 命令

    千次阅读 2017-12-13 16:11:31
    使用set serveroutput on 命令设置环境变量serveroutput为打开状态,从而使得pl/sql程序能够在SQL*plus中输出结果  使用函数dbms_output.put_line()可以输出参数的值。 set serveroutput on命令是不可以...
  • Linux中set命令介绍

    千次阅读 2016-11-20 09:18:40
    使用set更改shell特性时,符号"+"和"-"的作用分别是打开和关闭指定的模式。set命令不能够定义新的shell变量。如果要定义新的变量,可以使用declare命令以变量名=值的格式进行定义即可。 语法 set(选项)(参数)
  • set serveroutput on

    千次阅读 2010-04-26 14:23:00
    使用set serveroutput on 命令设置环境变量serveroutput为打开状态,从而使得pl/sql程序能够再SQL*plus和SQL*plus中输出结果 set serveroutput on--set serveroutput off查询雇员编号为7788的雇员姓名和工资。...
  • set-ExecutionPolicy’ 不是内部或外部命令,也不是可运行的程序 或批处理文 1.打开Windows PowerShell ISE 在搜索框内搜索windows powershell ise,然后右击以管理员身份运行。 2.输入命令Set-ExecutionPolicy ...
  • 一个简单的例子,在网页里显示1500条语句,如果未设置失效时间,则程序执行到791时结束了,如果把 set_time_limit(0); 前的注释符//去除,则程序直到1才结束。 set_time_limit(0);  括号里边的数字是...
  • matlab set函数

    万次阅读 多人点赞 2017-09-20 19:52:17
    1.MATLAB给每种对象的每一个属性规定了一个名字,称为属性名,而属性名的取值成为属性值。... set函数的调用格式为:  set(句柄,属性名1,属性值1,属性名2,属性值2,…) 例子: clear x=0:0.2:12
  • setuid函数

    千次阅读 2012-07-11 21:21:58
    setuid(设置真实的用户识别码) 相关函数 getuid,setreuid,seteuid,setfsuid 表头文件 #include 定义函数 int setuid(uid_t uid) 函数...
  • 对于初学者来说 ,什么情况下要配置“Set PG-PC Interface”,怎么配置,总是有一些困惑。后台消息留言也有人在问,本文写些关于“Set PG-PC Interface”的内容,分享给大家。 1.先谈下S7协议 S7协议是西门子...
  • shell中 set 指令的用法

    万次阅读 2018-09-14 09:29:54
    当指定某个单一的选项时将设置 shell 的常用特性,如果在选项后使用 -o 参数将打开特殊特性,若是 +o 将关闭相应的特殊特性。而不带任何参数的 set 指令将显示当前 shell 中的全部变量,且总是返回 true,除非遇到...
  • FD_SET

    万次阅读 2010-08-24 22:29:00
    FD_ZERO,FD_ISSET这些都是套节字结合操作宏 看看MSDN上的select函数, 这是在select io 模型中的核心,用来管理套节字IO的,避免出现无辜锁定. int select( int nfds,fd_set FAR *readfds, fd_set FAR *writefds, fd_...
  • Linux下的屏保设置 xset s 与 xset dpms

    万次阅读 2016-07-07 14:07:10
    Linux下的屏保设置 xset s 与 xset dpms http://bbs.chinaunix.net/archiver/?tid-2112889.html 用xset q 可以查看当前屏保的设置情况,黑屏方式的屏保有两种状态: 1. xset 的s参数后面可接两个数字参数,前...
  • oracle set serveroutput on

    千次阅读 2011-02-25 20:42:00
    使用set serveroutput on 命令设置环境变量serveroutput为打开状态,从而使得pl/sql程序能够在SQL*plus和SQL*plus中输出结果
  • 在做自动化调试的时候,有时候需要关闭已打开的应用程序,保证当前测试的程序打开了一个,否则可能会报多对象错误。  这时候  set y=getobject("winmgmts:\\.\root\cimv2") set x=y.execquery("select * from ...
  • set工具集的基础使用

    千次阅读 2019-10-21 23:15:31
    一、setoolkit介绍 ...SET 由 David Kennedy(ReL1K)编写,并在社区人员的大量帮助下,它包含了 以前从未见过的攻击工具集。渗透测试期间,工具包中内置的攻击工具可以进行有针 对性地集中攻击。SET 的主要...
  • 但是在另一个文件夹下的应用程序的.sln都能打开。我编译一个系统镜像要费好大功夫,要做很多修改,总不能重装VS吧,损失太大。搜啊搜,“object reference not set to an instance of an object”这一错误一般是编程...
  • 这个讲义的主要目标就是来讨论特权程序,为什么需要他们,他们如何工作,以及它们有什么安全问题。特权程序是可以给予用户额外权限的程序,这些权限超出了用户已有的权限。例如,Web 服务器是特权程序,因为他允许...
  • 图解Win7下set命令使用

    千次阅读 2016-05-21 10:20:12
    windows批处理set命令 [设置变量] 格式:set 变量名=变量值 详细:被设定的变量以%变量名%引用 [取消变量] 格式:set 变量名= 详细:取消后的变量若被引用%变量名%将为空 [展示变量] 格式:set 变量...
  • Linux串口驱动程序(3)-打开设备

    千次阅读 2019-06-12 20:36:30
    先来分析一下串口打开的过程: ...这里主要有2个点需要我们重点分析,一个是open函数的传递过程,而是串口驱动程序XXX_open函数的实现。 1.open函数传递 打开uart_register_driver函数,里面就...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 712,764
精华内容 285,105
关键字:

set需要什么软件打开