GVKun编程网logo

在 EC2 上:找不到 sudo 节点命令,但没有 sudo 的节点可以(找不到ecpol.msc)

12

最近很多小伙伴都在问在EC2上:找不到sudo节点命令,但没有sudo的节点可以和找不到ecpol.msc这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展bash–sudocat文

最近很多小伙伴都在问在 EC2 上:找不到 sudo 节点命令,但没有 sudo 的节点可以找不到ecpol.msc这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展bash – sudo cat << EOF>文件不起作用,sudo su、centos执行sudo命令提示找不到该命令怎么办、E09 - 关于 sudo sudo: effective uid is not 0, is sudo installed setuid root?、Linux sudo 命令与其配置文件 /etc/sudoers等相关知识,下面开始了哦!

本文目录一览:

在 EC2 上:找不到 sudo 节点命令,但没有 sudo 的节点可以(找不到ecpol.msc)

在 EC2 上:找不到 sudo 节点命令,但没有 sudo 的节点可以(找不到ecpol.msc)

我刚刚在一个新的 EC2 微型实例上安装了 nodejs。

我正常安装了,./configure -> make -> sudo make install。

问题:当我在 ec2-user 下运行“node”时,它运行良好。当我运行“sudo node”时,它失败了。

我发现该节点位于:

[ec2-user@XXXX ~]$ whereis nodenode: /usr/local/bin/node /usr/local/lib/node

当前路径是

[ec2-user@XXXX ~]$ echo $PATH/usr/local/bin:/bin:/usr/bin:/opt/aws/bin:/home/ec2-user/bin

但是,sudo 路径是

[root@ip-10-112-222-32 ~]# echo $PATH/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/root/bin

然后我尝试编辑根路径以包含节点的路径,因此当我以 root 身份登录时“节点”运行 - 但当我以 ec2-user 身份登录并运行“sudo node”时它仍然无法工作.

我需要这个来正确安装 npm。关于在运行“sudo node”时如何包含节点路径的任何想法?

答案1

小编典典

是的,这有点烦人,但您可以通过一些链接修复它:

sudo ln -s /usr/local/bin/node /usr/bin/nodesudo ln -s /usr/local/lib/node /usr/lib/nodesudo ln -s /usr/local/bin/npm /usr/bin/npmsudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf

可能还有更多,但这就是我到目前为止所遇到的全部。缺少 node-waf 会导致某些npm安装失败并显示相当神秘的错误消息。

bash – sudo cat << EOF>文件不起作用,sudo su

bash – sudo cat << EOF>文件不起作用,sudo su

我在bash中的命令提示符下尝试了以下命令:
sudo cat << EOF > /etc/yum.repos.d/some-name.repo
#Content
#....
#...
EOF

它抱怨:

-bash: /etc/yum.repos.d/some-name.repo: Permission denied

然后我做了sudo su,尝试了除猫之前的sudo完全相同的东西,它没有任何问题.在上面我缺少什么?

输出重定向(例如,>)由bash执行,而不是由cat执行,同时使用UID运行.要使用root的UID运行,请使用sudo:
sudo bash -c 'cat << EOF > /etc/yum.repos.d/some-name.repo
line1
line2
line3
EOF'

centos执行sudo命令提示找不到该命令怎么办

centos执行sudo命令提示找不到该命令怎么办

centos执行sudo命令提示找不到该命令怎么办

首先切换到root用户, 以root用户身份来编辑文件/etc/sudoers:

# vim /etc/sudoers
登录后复制

接着找到Defaults env_reset, 将其改为Defaults !env_reset,然后wq!强制保存退出。

然后, 切换回普通用户如用户名为xx, 编辑用户根目录下的配置文件~/.bashrc

# su xx
$ vim .bashrc
登录后复制

在文件内最后追加

alias sudo=&#39;sudo env PATH=$PATH&#39;
登录后复制

最后, 使配置文件生效

$ source ~/.bashrc
登录后复制

推荐教程:centos/" target="_blank">centos教程

以上就是centos执行sudo命令提示找不到该命令怎么办的详细内容,更多请关注php中文网其它相关文章!

E09 - 关于 sudo sudo: effective uid is not 0, is sudo installed setuid root?

E09 - 关于 sudo sudo: effective uid is not 0, is sudo installed setuid root?

参考文档:https://www.cnblogs.com/ImJerryChan/p/6667819.html

解决办法 1

如果用普通用户切换 root 权限 :sudo: effective uid is not 0, is sudo installed setuid root?

用 ls -l /usr/bin/sudo, 会发现该文件会显示红色,并且所有者是 root,就是 uid 为 0 的用户。并且该所有的执行为设置为 s(SUID),意思是执行该程序的用户将暂时获得所有者即 root 账户的权限。

原理是:sudo 会检查 /etc/sudoers 里面是否定义了当前用户对某条命令的使用定义,例如如果你用了:sudo useradd user1, 那么 sudo 会检查 user1 是否有 useradd 的使用权限定义。如果有,就会暂时提升 user1 的权限为 root 权限来执行 useradd 操作。否则,就会拒绝执行。

解决办法:

chown root.root  /usr/bin/sudo

chmod u+s /usr/bin/sudo    如果还报错则 

chmod go-w /usr/libexec/sudoers.so

 

解决办法 2

主要是运用到一条命令  yum reinstall `rpm -qf /usr/bin/sudo`

 

 

Linux sudo 命令与其配置文件 /etc/sudoers

Linux sudo 命令与其配置文件 /etc/sudoers

对 linux 有一定了解的人多少也会知道点关于 sudo 命令。sudo 命令核心思想是权限的赋予 ,即某个命令的所属用户不是你自己,而你却有权限执行它。但是我们需要注意的是,虽然你有权限执行这个命令,但是在执行的时候却仍是以这个命令本身所属用户来完成的 [注释 1]。(su 命令类似 sudo 命令,但是两者的差别在于前者 su 是一个粗粒度权限赋予,
对 su 最好的理解我觉得是 change user running command permanent。即永久的切换到了 su 过去的用户,然后以这个 su 到的新用户干它能干的一切事情,而 sudo 则是指在执行某个命令的时候临时切换到这个命令的所属用户执行 [注释 1],而且 sudo 可以做到以单个命令为单位将权限赋予给其他用户,相比 su 显得更加灵活。)

大概了解了 sudo 的功能,那么你知道怎么配置 sudo 吗?下面来简要说明一下:
配置 sudo 的配置文件在 /etc/sudoers 里面,一般通过 visudo 命令来安全打开编辑。查看 /etc/sudoers 的用法可以使用命令: man 5 sudoers。在 /etc/sudoers 文件里面主要包括这两部分:
1. 别名设置
别名主要包括这几种:User_Alias,Host_Alias,Runas_Alias,Cmnd_Alias,分别是用户别名,主机别名,运行用户别名,命令别名。设置这几个别名的命令主要是为了配 置方便,这个很类似 linux 用户群组或是数据库中角色的作用,有了别名便可以批量的赋予权限。
设置方法 Alias_Type alias_name = name1, name2, name3, 例如 User_Alias User1 = user1, user2, user3。其他类型的 alias 设置方法类似。
2. 真正的 sudo entry
这个就是真正配置哪些用户可以使用哪些命令了(你甚至可以不使用别名设置那部分)。
格式为:用户名 (用户别名) 主机名 (主机别名)=[(运行用户或是 Runas_Alias) 可选] [tag 可选]  可以执行的命令 (或 Cmmd_Alias)  这样描述语法很生硬,不易理解,举例子
user1  host1 = /bin/kill                                                                              # user1 可以在 host1 上使用命令 /bin/kill
user1  host1 = NOPASSWD: /bin/kill                                                     # user1 可以在 host1 上使用命令 /bin/kill 同时可以不必输入密码 (这里就是使用了 NOPASSWD
                                                                                                                      # 这个 tag,默认是 PASSWD)
user1  host1 = NOPASSWD: /bin/kill , PASSWORD: /bin/ls              # user1 可以在 host1 上使用命令 /bin/kill 无需输入密码,但是使用 /bin/ls 则需要输入密码
user1  host1 = (opterator) /bin/kill                                                          # user1 可以在 host1 上使用命令 /bin/kill 但是必须是以 operator 用户运行这个命令,等价于
                                                                                                                      # su -u opertor /bin/kill
user1  host1 = (:group_name) /bin/kill                                                 # user1 可以在 host1 上使用命令 /bin/kill, 且必须以 group_name 这个用户群组里面的用户来运行。

% group_name host1 = /bin/kill                                                              # 所有 group_name 里面的用户都可以在 host1 上执行 /bin/kill (linux 中一般代表整个用户群组用

                                                                                                                     # %group_name)


再举个实际例子,我之前对 sudo su 这个命令不理解,为什么我可以直接就 su 到 root 用户了呢,连密码都不需要?查看了一下 sudoers 文件才知道原来里面有这么一行:
xxx     ALL=NOPASSWD: /bin/su


注释 1:
在 linux 中每个进程都是有与之相关的 UID,GID,分别为有效 UID, 真实 UID,有效 GID, 真实 GID。有效 UID,GID 是用来判断权限,而真实 UID,GID 是用来记账 (哪个进程属于哪个用户,或记录日志等等)。当配置了 sudo entry 后,有效 UID 里面就包含了这个被配置的用户 UID,因而权限验证的时候就可以通过。


参考文章:
1. Linux 技术管理手册
2. Unix 高级环境编程

今天关于在 EC2 上:找不到 sudo 节点命令,但没有 sudo 的节点可以找不到ecpol.msc的分享就到这里,希望大家有所收获,若想了解更多关于bash – sudo cat << EOF>文件不起作用,sudo su、centos执行sudo命令提示找不到该命令怎么办、E09 - 关于 sudo sudo: effective uid is not 0, is sudo installed setuid root?、Linux sudo 命令与其配置文件 /etc/sudoers等相关知识,可以在本站进行查询。

本文标签: