我正在写一个C Shell程序,它正在做su或者sudo或者ssh.他们都希望他们的密码在控制台输入(TTY)而不是stdin或命令行.
有人知道解决方案吗?
设置无密码sudo不是一种选择.
期望可能是一个选择,但它在我的精简系统中不存在.
我有必须以user2身份运行的script.sh.但是,此脚本只能在我的应用程序中的user1下运行.
我想要运行以下命令:
su user2 -C script.sh
Run Code Online (Sandbox Code Playgroud)
但能够无密码运行.
我也希望这是非常严格的,因为在user1中只能在user2下运行script.sh而不是其他任何东西.
我试过用sudoers文件做这件事,经过几个小时的尝试后就无休止地混淆了.
如果有人可以提供一个如何实现这一点的明确示例(而不是像使用sudoers那样的通用),那将非常感激.
我编写了一个脚本,它接受一个字符串作为参数,该字符串是用户名和项目的串联.该脚本应该切换(su)到用户名,cd到基于项目字符串的特定目录.
我基本上想做:
su $USERNAME;
cd /home/$USERNAME/$PROJECT;
svn update;
Run Code Online (Sandbox Code Playgroud)
问题是,一旦我做了su ...它只是在那里等待.这是有道理的,因为执行流程已经转移到用户.一旦我退出,其余的东西都会执行,但它不能按预期工作.
我将su添加到svn命令,但命令失败(即它没有更新所需目录中的svn).
如何编写允许用户切换用户并调用svn(以及其他内容)的脚本?
通过sudo或su运行脚本时我想获得原始用户.这应该发生在不管多个sudo或su彼此内部并且特别是在内部sudo su -.
这里已经存在一些关于将命令作为另一个用户运行的问题.但是,问题和答案集中在单个命令而不是一组长命令上.
例如,请考虑以下脚本:
#!/bin/bash
set -e
root_command -p param1 # run as root
# these commands must be run as another user
command1 -p 'parameter with "quotes" inline'
command2 -p 'parameter with "quotes" inline'
command3 -p 'parameter with "quotes" inline'
Run Code Online (Sandbox Code Playgroud)
这里有几点需要注意:
最后三个命令必须作为另一个用户使用su或运行sudo.在示例中有三个命令,但假设还有更多...
命令本身使用单引号和双引号.
上面的第二点阻止使用以下语法:
su somebody -c "command"
Run Code Online (Sandbox Code Playgroud)
...因为命令本身包含引号.
什么是"分组"命令并在另一个用户帐户下运行它们的正确方法?
所以我无法获得su在终端上工作的命令.我只需输入"su"并按回车键,它会输入密码并输入我当前登录的用户密码.它总是给出这个错误.我发誓过去常常工作,不知道发生了什么.
su: Sorry
Run Code Online (Sandbox Code Playgroud)
我正在运行Mac OSX 10.7.1(Lion).谁知道什么可能是错的?我正在输入正确的密码.
我的新Mac OSX Lion机器上的postgreSQL设置有问题.
我似乎无法连接到该服务
$ createuser -a -d _postgres
Password:
createuser: could not connect to database postgres: FATAL: password authentication failed for user
Run Code Online (Sandbox Code Playgroud)
我没有机会找到正确的密码.知道那可能是什么.我有一个localhost服务器的默认设置.当我尝试通过pgAdmin连接时也会发生同样的情况.
$ su postgres
Password:
su: Sorry
Run Code Online (Sandbox Code Playgroud)
我没有机会发现什么是错的?
我有一个应用程序应该使用一些shell命令将文件从SD卡复制到/ system/media /.它将需要root,我正在root设备上进行测试.我正在使用运行时来执行shell命令,但它不起作用.这是我的运行时间
public void RunAsRoot{String[] commands = {"sysrw", "rm /data/local/bootanimation.zip", "sysro"};{
Process p = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(p.getOutputStream());
for (String tmpCmd : commands) {
os.writeBytes(tmpCmd+"\n");
}
os.writeBytes("exit\n");
os.flush();
}
Run Code Online (Sandbox Code Playgroud)
但我的logcat只显示其中两个没有被拒绝
07-30 03:14:11.112: WARN/su(3593): request rejected (10047->0 /system/bin/sh)
07-30 03:14:11.132: DEBUG/su(3592): 10047 com.bba.stormdroid executing 0 /system/bin/sh using shell /system/bin/sh : sh
07-30 03:14:11.152: WARN/su(3594): request rejected (0->0 /system/bin/sh)
07-30 03:14:11.182: WARN/su(3595): request rejected (0->0 /system/bin/sh)
07-30 03:14:11.202: WARN/su(3596): request rejected (0->0 /system/bin/sh)
07-30 03:14:11.242: DEBUG/su(3597): 10047 com.bba.stormdroid executing …Run Code Online (Sandbox Code Playgroud) 我有一个shell脚本,需要非root用户帐户才能运行某些命令,然后将用户更改为root以运行脚本的其余部分.我正在使用SUSE11.我用expect期望自动化密码提示.但是当我使用spawn su - 并且命令被执行时,提示符将以root身份返回,并且脚本的其余部分不会执行.
例如.
< non-root commands>
spawn su -
<root commands>
Run Code Online (Sandbox Code Playgroud)
但在su之后 - 提示以root身份返回用户.如何执行剩余的脚本.
sudo -S选项没有帮助,因为它没有运行sudo -S ifconfig命令,我需要找到机器的IP地址.
我已经浏览了这些链接但找不到解决方案: 在shell脚本中将脚本目录更改为用户的homedir
我正在开发一个Android应用程序,它需要3件事: -
你必须知道: - 我的手机是Moto E(已植根),并希望第二步完成.尝试了一些代码,但这对moto E不起作用.当连接USB时,它提供2作为响应,当与墙壁插座充电器连接时,它说1
任何帮助将不胜感激
PS: - 自动启动使用与笔记本电脑连接的USB电缆,但不与插座充电器连接
更新-1:1-发现fastboot oem off-mode-charge 0使用Nexus 7但不在Moto e上.
2-连接到路由器(USB加密狗端口)时的Moto e靴子