我正在尝试使用makefile编译一些源代码。在makefile中,有一堆命令需要作为sudo运行。
当我从终端编译源代码时,一切都很好,并且在第一次运行sudo命令等待密码时,make会暂停。一旦我输入密码,做简历和完成。
但是我希望能够在NetBeans中编译源代码。所以,我开始了一个项目,并向netbeans展示了在哪里可以找到源代码,但当我编译项目时,它给出了错误:
sudo: no tty present and no askpass program specified
第一次执行sudo命令时。
我在网上查了这个问题,我找到的所有解决方案都指向一件事:禁用这个用户的密码。因为这里讨论的用户是根用户。我不想那样做。
还有其他解决办法吗?
当我试图挂载sshfs时,我有同样的错误消息,需要sudo:命令是这样的:
sshfs -o sftp_server="/usr/bin/sudo /usr/lib/openssh/sftp-server" user@my.server.tld:/var/www /mnt/sshfs/www
通过添加选项-o debug
sshfs -o debug -o sftp_server="/usr/bin/sudo /usr/lib/openssh/sftp-server" user@my.server.tld:/var/www /mnt/sshfs/www
对于这个问题,我也有同样的意思:
sudo: no tty present and no askpass program specified
所以通过阅读其他人的答案,我开始在/etc/sudoer中创建一个文件D /user在my.server.tld
user ALL=NOPASSWD: /usr/lib/openssh/sftp-server
现在我可以挂载驱动器,而不给我的用户太多额外的权利。
允许用户使用该命令而不提示输入密码应该可以解决这个问题。首先打开一个shell控制台,输入:
sudo visudo
然后编辑该文件添加到最后:
username ALL = NOPASSWD: /fullpath/to/command, /fullpath/to/othercommand
eg
john ALL = NOPASSWD: /sbin/poweroff, /sbin/start, /sbin/stop
将允许用户约翰sudo关机,启动和停止没有提示密码。
查看屏幕底部你需要在visudo中使用的击键——顺便说一下,这不是vi——并在出现任何问题的第一个迹象时不保存就退出。健康警告:损坏此文件将导致严重后果,请小心编辑!