运行“su -c”时环境会发生什么变化?
我问的原因是这种神秘的行为:
bash$ which firefox
/usr/local/bin/firefox
bash$ su - user -c "echo $PATH"
bin:/usr/bin:/sbin:/usr/sbin:/opt/java/bin:/usr/local/bin:...
bash$ su - user -c "firefox ..."
-bash: firefox: command not found
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
好的,这是我的问题 - 请不要因为我没有安全感而对我大喊大叫!:) 这是在我的主机上。我是唯一一个使用它的人,所以它相当安全,但我有一个非常复杂的密码,很难一遍又一遍地输入。我使用控制台来移动文件和执行任意命令很多,我切换终端,所以 sudo 记住控制台是不够的(而且我仍然必须至少输入一次我糟糕的密码!)在过去我在 sudoers 中使用了 NOPASSWD 技巧,但我决定更安全。除了不允许密码访问某些应用程序之外,还有什么妥协吗?(这仍然可能不安全)可以阻止恶意软件和远程登录 sudo rm -rf /-ing me,但在我的终端中我可以愉快地输入?我可以在每个终端都有这个吗?所以只是随机命令不会通过?我试过以 sudo 身份运行终端仿真,但这使我成为 root。
Ubuntu 服务器 12.04
在我通过 ssh 连接的远程服务器上,我设置了一个特殊用户:
sudo adduser --system --disabled-login --disabled-password --group suser
运行一些维护功能。有时我会进入一个登录会话suser:
sudo su -l suser -s /bin/bash
做一些任务......但是我特别希望能够通过以下方式运行一些git命令:
sudo su suser -c <COMMAND>
来自我的真实用户并且没有登录到 suser。
不幸的是,我一直无法确定我如何去做。我尝试了唯一对我有意义的方法:
sudo su suser -c git clone https://example.com/repos/project.git
sudo su suser -c "git clone https://example.com/repos/project.git"
or even
sudo su suser -c mkdir /home/suser/test
sudo su suser -c "mkdir /home/suser/test"
Run Code Online (Sandbox Code Playgroud)
但没有任何反应,我回到提示。任何人都可以协助或解释为什么这是不可能的?
这是我的简单 bash:
cat test.sh
#!/bin/bash
echo "hello"
su - root -c /path/to/script.sh <<EOF
password
EOF
whoami
echo "good bye"
Run Code Online (Sandbox Code Playgroud)
但我收到此错误:
./test.sh
hello
su: must be run from a terminal
<current-user>
good bye
Run Code Online (Sandbox Code Playgroud)
(或者)
cat test2.sh
#!/bin/bash
echo "hello"
sudo su <<EOF
password
EOF
whoami
echo "good bye"
Run Code Online (Sandbox Code Playgroud)
又一个错误
(或者)
cat test3.sh
#!/bin/bash
echo "hello"
su root <<EOF
password
EOF
whoami
echo "good bye"
Run Code Online (Sandbox Code Playgroud)
又是错误...
当我尝试:
#!/bin/bash
echo "hello"
sudo -s <<EOF
<password>
echo Now I am root
id
echo "yes!" …Run Code Online (Sandbox Code Playgroud) 是否有任何最新的 linux 发行版可以提供完全的 root 访问权限(没有 SUDO)?我想将它用于我必须非常频繁地使用 / 文件系统的编程。
我需要的是任何好的 linux 发行版,具有像 Synaptic 这样的 Nice Installer 和像 ubuntu 9.04 这样的快速启动速度。
Fedora 11 是否提供完全的 root 访问权限?
谢谢,桑尼。
我使用的是 Mac OS X 10.5,并且设置了我的帐户以便我不需要登录。当我转到网络首选项并单击左下角的锁图标时,系统会提示我输入用户名和密码。我只需输入我的密码,锁定图标就会解锁。
但是当我进入一个 shell 并输入时su,我得到了这个:
$ su
Password:
su: Sorry
Run Code Online (Sandbox Code Playgroud)
我在这里输入什么密码?
我有一个关于 sudo 命令和 root 用户的 Linux 问题。如果我使用该su命令以root用户登录,下面两个命令有什么区别?
root> sudo ./some_executable
Run Code Online (Sandbox Code Playgroud)
和
root> ./some_executable
Run Code Online (Sandbox Code Playgroud)
有区别吗?我正在尝试使用一个可执行文件,并注意到该可执行文件与第一个命令一起工作正常,但第二个命令失败,说明我没有以 root 身份运行该命令。我一直认为 sudo/su 命令允许您以 root 权限执行命令,因此执行第一个命令将是多余的。但是,我确实注意到 root 用户在 sudoers 文件中,所以我不知道这是否是可执行文件中的错误,或者运行以 root 身份登录的命令与使用 sudo 登录的命令之间是否真的有区别?
这似乎发生在很多程序(不是全部)中。
另一个例子:如果我不使用相同的方法,apt-get 似乎无法正确安装应用程序。
如果我已经是 root,我不需要写 sudo。
这是为什么?我能做些什么来解决这个问题?
在 linux 系统中
su -
Run Code Online (Sandbox Code Playgroud)
任何用户(具有 root 密码)都可以获得 root 权限。我如何限制某些用户?
//类似于AllowUsers在sshd_config
我知道这是非常基本的,但我使用的是 Ubuntu Linux 并且我刚刚输入
须藤须
我输入了密码并执行了我必须完成的操作。现在我如何停止成为 root 用户并重新成为普通用户?恐怕我会把事情搞砸之类的rm -rf /。
su ×10
linux ×7
root ×5
sudo ×5
bash ×3
command-line ×1
debian ×1
git ×1
login ×1
osx-leopard ×1
privileges ×1
security ×1
sh ×1
sudoers ×1
ubuntu-12.04 ×1
unix ×1