centos source /etc/sudoers 报:bash: Defaults: 未找到命令...
时间: 2024-01-25 18:04:10 浏览: 250
当你运行 `source /etc/sudoers` 命令时,出现 "bash: Defaults: command not found" 错误,这是因为 `/etc/sudoers 文件不应该被直接加载或执行,它是由系统自动解析的。`source` 命令用于加载 shell 脚本文件,而 `/etc/sudoers` 并不是一个可执行的脚本文件。
如果你需要重新加载 sudoers 文件使更改生效,可以使用以下命令:
```
sudo -i
```
这将以 root 用户身份登录并打开一个新的交互式 shell。在这个 shell 中,sudoers 文件会自动加载,并且你的更改将生效。
请注意,在修改 sudoers 文件之前,务必小心并确保对文件的更改是正确的。任何错误的更改都可能导致系统安全性问题。如果你不确定如何修改 sudoers 文件,请备份原始文件并寻求系统管理员或其他有经验的人员的帮助。
相关问题
请您在系统中创建一个名为dev的用户,密码123456,并请您通过在/etc/sudoers.d/目录下添加一个名为dev配置文件的方法,赋予dev用户在任意地方登陆当前主机且以root身份执行useradd命令的权限。
在Linux系统中,按照您的需求操作,我会分步骤进行:
首先,创建名为`dev`的新用户并设置密码:
```sh
sudo useradd -m -s /bin/bash dev
echo "dev:123456" | sudo chpasswd
```
这里`-m`选项表示创建一个新的主目录,`-s`指定shell(bash),`chpasswd`用于设置密码。
接下来,为了允许`dev`用户以root权限执行`useradd`命令,我们需要编辑`/etc/sudoers.d/dev`文件,这个文件需要有合适的权限设置。可以使用文本编辑器如`visudo`打开它:
```sh
sudo visudo
```
然后,在打开的`sudoers`编辑器里添加如下行(假设您使用的是CentOS或Red Hat家族的系统,如果使用Debian或Ubuntu则可能略有差异):
```bash
dev ALL=(ALL) NOPASSWD: ALL
# 或者
dev ALL=(root) NOPASSWD: useradd
```
这行意思是让`dev`用户对所有资源(`(ALL)`)都有无密码sudo权限,包括执行`useradd`命令。记得保存并退出编辑器。
最后,需要刷新`sudoers`数据库使其生效:
```sh
sudo chmod 0440 /etc/sudoers.d/dev
sudo update-rc.d visudo defaults
```
现在`dev`用户应该可以在无需输入密码的情况下,以root权限在任何地方运行`useradd`命令了。
centos 7 sudo yum install net-tools bash: sudo: command not found
CentOS 7 中默认的`yum`命令行工具在安全模式下可能不会加载图形化的用户界面,导致`sudo`命令找不到。当你尝试使用`sudo`安装软件时遇到这个错误,说明你的系统可能还没有启用`sudo`功能,或者`sudo`配置有问题。
解决这个问题,你可以按照以下步骤操作:
1. 首先,确认是否已经安装了`sudo`包。打开终端,输入`yum list installed | grep sudo`检查是否已安装。如果没有,输入`yum install sudo`安装它。
2. 安装完`sudo`后,需要设置密码才能使用。运行`visudo`编辑`/etc/sudoers`文件,然后添加一行像这样的内容:
```
Defaults env_reset
%wheel ALL=(ALL) NOPASSWD: ALL
```
这将允许`wheel`组的成员(通常是root)无需密码执行所有命令。记得保存并退出编辑器。
3. 接下来重启系统或者使用`source /etc/bashrc`刷新环境变量,然后再次尝试使用`sudo yum install net-tools`。
如果上述步骤完成后仍存在问题,可能是其他环境配置问题,比如shell配置或PATH环境变量未设置正确。你可以检查你的登录shell以及PATH变量,确保它们包含了`/usr/bin`目录,这是`yum`命令通常所在的路径。
阅读全文