zoukankan      html  css  js  c++  java
  • perl 限制用户操作

    <pre name="code" class="sql">#!/usr/bin/perl
    use strict;
    use Switch;
    use Sys::Hostname;
    use File::Basename;
    my $host = hostname;
    my $prompt = "$host >";
    my @allow_command=(
        "/bin/cat",
        "/bin/pwd",
        "/bin/date",
        "/bin/df",
        "/bin/dmesg",
        "/bin/grep",
        "/bin/hostname",
        "/bin/ls",
        "/bin/netstat",
        "/bin/ping",
        "/bin/ps",
        "/bin/rpm",
        "/bin/sleep",
        "/bin/sort",
        "/bin/uname",
        "/sbin/ifconfig",
        "/usr/bin/clear",
        "/usr/bin/du",
        "/usr/bin/id",
        "/usr/bin/vi",
        "/bin/tar",
       "/usr/kerberos/bin/ftp",
       "export",
       "/bin/echo",
       "/bin/env",
       "source",
       "chdir",
    );
    
    my @allow_command2=map {basename("$_") } @allow_command;
    #print "@allow_command2
    ";
    sub help() {
        print "Available commands:
    ";
        print $_."
    " foreach (@allow_command);
    }
     
    system("/usr/bin/clear");
    
    while ("1") {
        my $command;
        print "$prompt " ;
        my $input_command=<STDIN>;
        chomp ($command=$input_command);
        next if $command eq '';
        if ($command =~ /^(.|\)/){print "Sorry, unknown command '$command', please run 'help' to show all the avaiable commands.
    ";};
        exit if ($command =~ /^(quit|exit)$/);
        if ($command eq "help") {
            &help;
            next;
        }
     my ($binary,undef)=split /s+/,"$command";
    
    if (grep m/$binary/,@allow_command or grep m/$binary/,@allow_command2 ) {
    system("$command");
    } elsif ($binary eq "cd") {my $newdir=(split /s+/,"$command")[1];
     chdir $newdir;}
    else{
    print "Sorry, unknown command '$binary', please run 'help' to show all the avaiable commands.
    ";}
    }


    
    
    
                                        
    
  • 相关阅读:
    Win10 anaconda python3.6 安装pcap
    跨平台 GUI可视化 网络调试工具
    参考文献相关概念
    linux压缩和解压缩命令大全[转]
    PowerShell 惠普打印机双面驱动自动设置已安装
    CentOS7 一键安装KMS服务【整理】
    pdf转word OCR
    CentOS7 MySQL
    PDF文件比对工具
    pdf文件中截取eps图片并压缩
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13352027.html
Copyright © 2011-2022 走看看