直到最近我alias sudo='sudo '在我的.zshrc档案中。今天我在尝试时遇到了这个错误sudo mv:
? ~ sudo mv nginx.conf.orig nginx.conf.orig2
sudo: nocorrect: command not found
Run Code Online (Sandbox Code Playgroud)
现在谷歌搜索我发现这似乎与一些前缀为 的命令有关nocorrect,我可以用alias sudo='nocorrect sudo'.
但是,当我尝试将别名设置alias sudo='nocorrect sudo '为允许自己使用其他别名时,问题就出现了。我还确保我的 su 正在使用这里提到的 zsh 。
? ~ alias sudo='nocorrect sudo '
? ~ sudo mv nginx.conf.orig nginx.conf.orig2
sudo: nocorrect: command not found
? ~ alias sudo='nocorrect sudo'
? ~ sudo mv nginx.conf.orig nginx.conf.orig2
? ~ su
Password:
michaelarch# ps -p $$
PID TTY TIME …Run Code Online (Sandbox Code Playgroud) 请解释一下,sudo su "username"与su "username"之间有什么区别
哪个特权更高?如果我使用sudo su "username"登录 root ,我只是一个命令的 root 用户?所以可能是脚本的开头工作正常,但其余部分却没有?那么在这种情况下,建议使用su "username",因为它具有更高的权限?请解释这两个命令之间的区别,谢谢。
作为 sudo 的成员,我可以将自己添加到不属于我的组吗?
$ getent group thegroupname
thegroupname:x:123794798:administrator,users,auser,moreusers,manymoreusers
$ sudo usermod -a -G thegroupname myusername
usermod: group 'thegroupname' does not exist
Run Code Online (Sandbox Code Playgroud)
当我运行上述时,我无法将自己添加到组中。错误消息说该组不存在,但确实存在。
在这里,我将根据@terdon 的评论创建一个新组。
$ sudo groupadd testgroup
useradd: user 'myusername' already exists
$ groups
myusername sudo users
$ getent group testgroup
testgroup:x:01234:
$ sudo usermod -a -G testgroup myusername
$ groups myusername
myusername : myusername sudo users testgroup
Run Code Online (Sandbox Code Playgroud)
抱歉,只是使用groups而不是groups myusername. 我不确定这些信息是否有帮助,因为它仍然显示我不属于测试组groups myusername。
$ groups
myusername sudo users
Run Code Online (Sandbox Code Playgroud) 我的用户名被允许执行
sudo 命令
那为什么这个炸弹
strace sudo 命令
有错误:
sudo: must be setuid root
我做了一些研究,为了允许用户使用 sudo 命令,您必须将它们添加到“sudoers”组。只要他们输入 root 的密码,这就会为他们提供 root 权限。但我也遇到过将用户添加到“root”组而不是“sudoers”组的例子。我的问题是这两组之间是否有不同的特权,如果有,它们是什么以及这两种技术的好处是什么?
我正在使用 Debian Linux 服务器。
谢谢
我在一个小型 VPS 上安装了一个新的 Debian,现在当我尝试安装 sudo 时,我只是收到此消息。我还尝试将 FTP 服务器添加到列表中,但仍然收到该错误。
root@srv45758:~# vi /etc/apt/sources.list
deb http://ftp.de.debian.org/debian/ jessie main contrib non-free
deb http://ftp.de.debian.org/debian/ main contrib non-free
deb http://security.debian.org jessie/updates main contrib non-free
Run Code Online (Sandbox Code Playgroud)
有谁知道这个问题吗?
我尝试在不成为 su 用户的情况下运行脚本,并为此使用此命令:
echo "password" | sudo -S <command>
Run Code Online (Sandbox Code Playgroud)
如果我将此命令用于“scp”、“mv”、“whoami”命令,则该命令运行良好,但是当我用于“chmod”时,该命令会要求我的用户输入密码。我不输入密码,命令有效。我的问题是系统向我询问密码。我不希望系统要求输入密码。
问题ss是这样的:
[myLocalUser@myServer test-dir]$ ls -lt
total 24
--wx-wx-wx 1 root root 1397 May 26 12:12 file1
--wx-wx-wx 1 root root 867 May 26 12:12 script1
--wx-wx-wx 1 root root 8293 May 26 12:12 file2
--wx-wx-wx 1 root root 2521 May 26 12:12 file3
[myLocalUser@myServer test-dir]$ echo "myPassw0rd" | sudo -S chmod 111 /tmp/test-dir/*
[sudo] password for myLocalUser: I DONT WANT ASK FOR PASSWORD
[myLocalUser@myServer test-dir]$ ls -lt
total …Run Code Online (Sandbox Code Playgroud) 如何在不输入密码的情况下将用户设置为sudo(或su -)?
当我运行 '# sudo touch newfile' 时,我的期望是该文件将由我拥有,而不是由 root 拥有,因为我对 sudo 的理解是它给了我,用户,root 权限,但实际上并没有切换用户。
我对 sudo 是什么有根本的误解吗?
我有一个别名,我想通过 sudo 作为普通用户和 root 用户使用它。具体来说,是这样的:
alias rm=trash
Run Code Online (Sandbox Code Playgroud)
这作为普通用户工作正常,当我sudo -i用来获取 root shell 提示时它工作正常,但如果我使用sudo rm,则别名不适用。那么我需要在哪里放置我的别名以便它在一次性 sudo 命令中工作?