我有一个用户,他是一个无密码的sudoer。我需要和他一起执行shell脚本文件,并让他执行一个块作为sudo。 E.g:
BULK INSERT Product
FROM 'data/product.dat'
WITH ( DATA_SOURCE = 'MyAzureBlobStorageAccount');
SELECT Color, count(*)
FROM OPENROWSET(BULK 'data/product.bcp', DATA_SOURCE = 'MyAzureBlobStorage',
FORMATFILE='data/product.fmt', FORMATFILE_DATA_SOURCE = 'MyAzureBlobStorage') as data
GROUP BY Color;
但没有任何作用。我试过了:
su root <<"AS_ROOT"
# do something with my linux
AS_ROOT
su - root <<...
它向我咆哮。我在ubuntu 16.04 lts。
谢谢。
答案 0 :(得分:1)
正如Cyrus所指出的,su
是sudo
配置不适用的不同实用程序。
听起来你正在寻找这样的东西:
sudo -s <<'AS_ROOT'
echo "Hi from $USER."
AS_ROOT
这应输出Hi from root.
请注意,-s
需要sudo
来创建 shell 才能解释通过stdin(here-doc)传递的命令。该shell是当前用户的默认shell,如环境变量$SHELL
中所反映的那样。