通过Java的Runtime.getRuntime().exec()方法调用本地命令时:
Runtime.getRuntime().exec(new String[] {"/bin/bash", "-c", "sudo nmap -sU -p 53 8.8.8.8"});
在控制台下测试上面代码没有任何问题,当程序在后台执行时就不能正常运行,当时非常困惑;然后通过java.lang.Process的getErrorStream方法获取到错误信息:
sudo: sorry, you must have a tty to run sudo
通过google后很快就定位到问题了,因为在配置文件/etc/sudoers设置了requiretty选项后,执行sudo需要一个终端;然后使用vim修改配置文件或直接执行visudo命令编辑配置文件:
# # Disable "ssh hostname sudo <cmd>", because it will show the password in clear. # You have to run "ssh -t hostname sudo <cmd>". # # Defaults requiretty # 将此行注释掉
然后重新执行程序,问题解决;
相关推荐
在安装过程中,如果出现错误信息 "E: dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem.",那么需要执行以下命令来解决问题: sudo rm /var/lib/dpkg/lock sudo dpkg --...
在 Ubuntu 系统中,可以使用 apt-get 命令来安装 Samba,命令为:sudo apt-get install samba smbfs 其中,smbfs 是一个文件系统,用于共享文件和打印机。 2. 创建共享文件夹 创建一个文件夹用来共享文件,命令为...
下面将详细介绍深度Linux中的一些常用命令,包括系统信息查看、软件包管理、自定义Deepin命令以及Vi编辑器的基本使用方法。 首先,我们来看如何查看系统的信息。系统命令可以帮助用户获取当前操作系统的版本、内核...
在Linux操作系统中,掌握su、sudo以及它们的不同变体如sudo su和sudo -i的使用是至关重要的。这些命令主要用于管理权限,特别是当需要以管理员(root)权限执行任务时。下面将详细介绍这些命令的使用和区别。 1. **...
一、sudo命令 概念: sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等。这样不仅减少了root用户的登录和管理时间,同样也提高...
参考了java版的expect4j,expectj的原理,进行了极大的简化,可完成基本的功能: 1,运行java代码,执行交互式命令 2,sudo提权,自动输入密码(echo "password" | sudo -S mkdir /opt/test)
sudo 提权、Ansible 配置、Ansible Playbook 实践详解 本资源摘要信息将围绕 sudo 提权、Ansible 配置、Ansible Playbook 等相关知识点进行详细的介绍和实践。 sudo 提权 sudo(superuser or another do)是 ...
11.10 中安装 VMWare Tools 时,可能会出现以下问题:Searching for GCC...Detected GCC binary at "/usr/bin/gcc".The path "/usr/bin/gcc" appears to be a valid path to the gcc binary.Would you like to ...
Linphone编译错误及解决方法 Linphone是一款开源的VoIP电话软件,但是在编译过程中经常会遇到各种错误。这些错误可能是由于缺少依赖项、头文件、库文件等原因引起的。在这里,我们将列举一些常见的Linphone编译...
echo "Password for sudo:" sudo apt-get install some-package """ # 将脚本写入临时文件 with open('/tmp/temporary_script.sh', 'w') as f: f.write(bash_script) # 执行Bash脚本,注意添加shell=True ...
Linux系统中的Sudo命令是Unix/Linux环境中不可或缺的工具,它为系统管理员提供了高效而安全的权限管理机制。Sudo允许管理员赋予普通用户执行特定管理任务的权限,这些任务通常需要root权限,例如挂载文件系统、关闭...
1. 列举本地更新:sudo apt-get update 2. 安装可用更新:sudo apt-get upgrade 3. 查询软件包:apt-cache search package_name 4. 安装一个软件包:sudo apt-get install package_name 5. 删除一个软件包:sudo apt...
基于sudo 1.9.5p2源码编译打包,用以解决Sudo 堆溢出(CVE-2021-3156)漏洞,已再rhel6.5及centos6.5上安装验证,直接使用rpm -Uvh升级安装即可
Docker 是一个开源的应用容器引擎,它允许开发者打包他们的应用以及应用的运行环境到一个可移植的容器中。以下是配置和使用 Docker 的基本步骤: 安装 Docker 系统要求:确保你的系统...sudo systemctl enable docker
LNMP环境的核心组件是Nginx,使用以下命令安装Nginx: sudo apt-get install nginx 然后,启动Nginx服务: sudo /etc/init.d/nginx start 或者: service nginx start 二、安装PHP和MySQL 接下来,安装PHP和...
包中包含jdk-7u80-linux-x64.tar.gz和oracle-java7-jdk_7u80_amd64.deb,其中deb包是使用命令把tar.gz转换生成的,Ubunt18.04无法直接安装openjdk-7-jdk,Oracle官网不好下载,而且网上很多下载的都是tar.gz包,不是...
3)a安装gcc-c++: sudo apt-get install build-essential 或者直接执行这两条命令 sudo apt-get install gcc sudo apt-get install g++ 4)进入文件夹下执行以下命令: sudo ./bootstrap sudo make sudo make ...
在CentOS上安装MySQL可以按照以下步骤进行:更新系统软件包列表:sudo yum update安装MySQL的存储库,您可以使用官方的MySQL Yum Repository或Remi存储库。官方的MySQL Yum Repository:sudo yum localinstall ...
grant all privileges on 'pi'.* to 'pi'@'%' identified by 'Raspberry'; 刷新权限: flush privileges 八、配置目录权限 使用以下命令设置目录权限: chmod -R 777 /var/www/html 九、解压缩zip文件 使用...