我怎样才能su从root到db2inst1和调用SQL脚本都在1号线?我在考虑这样的事情:
su db2inst1 | db2 CONNECT TO myDatabase USER db2inst1 USING mypw; db2 -c -i -w -td@ -f /tmp/deploy/sql/My.sql | exit;
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我有一个用Ruby编写的特定脚本需要root权限.大多数其他流程不需要,因此在Monit中很容易设置.不是这个.
服务器需要在386处侦听,此端口仅适用于root.我不会详细说明为什么,因为1)我不是一个低级别的人,2)到目前为止使用sudo时工作正常.
monit配置文件很简单,如下所示:
set logfile syslog facility LOG_daemon # Default facility is LOG_USER
set mailserver smtp.sendgrid.net
username "blah", password "blah"
with timeout 20 seconds
set alert blah@bleh.com
set logfile /home/deploy/monit.log
check process ldapserver
with pidfile /var/pids/ldap_server.pid
start program = "/usr/local/bin/ruby /var/lib/ldap_server.rb"
stop program = "/bin/sh"
Run Code Online (Sandbox Code Playgroud)
注意:我已将/ bin/sh放入停止程序中,因为此过程没有停止程序.
如果我这样说:
start program = "/usr/local/bin/ruby /var/lib/ldap_server.rb"
Run Code Online (Sandbox Code Playgroud)
它无法启动.没有提示.
start program = "/usr/bin/sudo -u deploy /usr/local/bin/ruby /var/lib/ldap_server.rb
Run Code Online (Sandbox Code Playgroud)
也失败了.没有输出.
start program = "/bin/su deploy -c '/usr/local/bin/ruby /var/lib/ldap_server.rb'
Run Code Online (Sandbox Code Playgroud)
无法启动.
我也尝试使用> ~/out.log 2 > &1捕获stderr和stdout来重定向输出,但它似乎不起作用.
现在,我在部署用户下开始监控,这是受限制的.所以,我需要以某种方式以root身份运行ldap服务器,但事实证明这很难做到. …
我需要在ssh中登录到服务器,执行"su username"(没有密码)来执行一些命令作为该用户(在ssh中没有直接登录).
从终端,它将是这样的:
root@cs01:~# su foo
foo@cs01:/root$ cd
foo@cs01:~$ ls
Run Code Online (Sandbox Code Playgroud)
我试图用paramiko(python)做到这一点:
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('host', username='root', password='mypassword', key_filename='<filename>')
stdin, stdout, stderr = ssh.exec_command('su foo')
print stdout.readlines()
stdin, stdout, stderr = ssh.exec_command('cd')
print stdout.readlines()
stdin, stdout, stderr = ssh.exec_command('pwd')
print stdout.readlines()
ssh.close()
Run Code Online (Sandbox Code Playgroud)
但剧本并没有结束.
日志是这些:
...
DEB [20111207-16:22:25.538] thr=1 paramiko.transport: userauth is OK
INF [20111207-16:22:25.921] thr=1 paramiko.transport: Authentication (publickey) successful!
DEB [20111207-16:22:25.923] thr=2 paramiko.transport: [chan 1] Max packet in: 34816 bytes
DEB [20111207-16:22:26.088] thr=1 paramiko.transport: [chan 1] Max packet …Run Code Online (Sandbox Code Playgroud) 我有代码和一切:
pkill python
Run Code Online (Sandbox Code Playgroud)
但是我想从这样的 php 脚本运行它:
echo shell_exec("pkill python");
Run Code Online (Sandbox Code Playgroud)
我得到一个输出,上面写着:
bash: pkill: (1503) - Operation not permitted
Run Code Online (Sandbox Code Playgroud)
我知道问题是什么,即 pkill 是 su 命令。无论如何要更改它以便php脚本可以运行它?
我etc/sudoers在Mac OS X 10.6.8中修改过(以某种错误的方式)文件.
出于这个原因,我删除了错误的行并替换了原始文件.但是现在每当我键入sudo命令时输出为:
sudo: /etc/sudoers is owned by uid 501, should be 0
Segmentation fault
Run Code Online (Sandbox Code Playgroud)
解决方案可能是这样,但当我输入su(和密码)输出时:
su: Sorry
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
我正在尝试编写一个 bash 脚本,该脚本以不同的用户身份执行多个命令来自动化安装过程。
在某一时刻我有
su gpadmin
gpperfmon_install --enable --password password --port 5432
y
gpstar
y
Run Code Online (Sandbox Code Playgroud)
su gpadmin 以 root 身份运行,一旦运行,脚本就会停止,直到我退出 gpadmin 并以 root 身份返回。
如何在不停止脚本的情况下切换到新用户?
抱歉我的无知,我尝试用谷歌搜索但没有发现任何有用的东西。任何帮助将不胜感激。
我有一个128MB的VPS,偶尔也会变得杂乱无章.重新启动将解决问题,但如果我想从浏览器(密码保护页面)重新启动该怎么办.如何使用PHP的shell_exec()功能"www-data"重启我的机器(Natty Narwhal)?
我很困惑,因为它需要sudo.问题是我从未登录为www-data,它会是我的sudo密码吗?另外,我如何包含密码来执行此操作?
会使用root工作吗?如果是这样,我将如何从www-data做su?
有没有人遇到一个奇怪的环境问题,在调用hadoop命令时被迫使用SU而不是SUDO?
sudo su -c 'hadoop fs -ls /' hdfs
Run Code Online (Sandbox Code Playgroud)
Found 4 items drwxr-xr-x - hdfs hdfs 0 2014-02-11 12:33 /apps drwx------ - mapred hdfs 0 2014-03-10 10:25 /mapred drwxrwxrwx - hdfs hdfs 0 2014-03-10 10:26 /tmp drwxr-xr-x - hdfs hdfs 0 2014-02-11 12:34 /user
环境允许查找可执行文件:
sudo -u hdfs 'hadoop'
Run Code Online (Sandbox Code Playgroud)
Usage: hadoop [--config confdir] COMMAND where COMMAND is one of: namenode -format format the DFS filesystem ... fs run a generic filesystem user client ... ... Most commands print help when …
我有一个问候世界的C例子./a.out
现在我使用time以下命令测量执行时间
time ./a.out
Hello World
real 0m0.001s
user 0m0.000s
sys 0m0.002s
time runuser -l root -c './a.out'
real 0m0.017s
user 0m0.004s
sys 0m0.011s
time su -s /bin/bash -c "./a.out" root
Hello World
real 0m0.080s ---> 80 times slower
user 0m0.005s
sys 0m0.071s
Run Code Online (Sandbox Code Playgroud)
为什么第三个命令80时间比第一个命令慢?
环境 - Redhat 7
我正在 CentOS 6.5 上工作。我的glibc版本是2.14,我不小心将/lib64/libc.so.6链接到了以前的glibc(libc-2.12.so)。
然后我运行,除了和 之外export LD_PRELOAD=/lib64/libc-2.14.so,大多数命令都可以执行。运行时,它给出“分段错误”。当 run 时,它给出"su: /lib64/libc.so.6: version `GLIBC_2.14' not find (required by /lib64/libcrypt.so.1)"。susudosusudo
如何设置LD_PRELOAD和su,sudo或者如何恢复 glibc?