CenOS7.9配置sudo权限dutyview ALL=(ALL) NOPASSWD: /usr/sbin/*,/usr/bin/*,!/usr/sbin/su
时间: 2023-07-04 09:30:43 浏览: 62
好的,您的问题是如何在 CentOS 7.9 上配置 sudo 权限,使得用户 dutyview 可以在不需要输入密码的情况下执行 /usr/sbin/* 和 /usr/bin/* 目录下的命令,但是不能执行 /usr/sbin/su 命令,对吗?
首先,您需要使用 root 用户登录到 CentOS 7.9 系统上。然后,您可以按照以下步骤配置 sudo 权限:
1. 执行以下命令以安装 sudo 工具:
```bash
yum install sudo
```
2. 执行以下命令以创建用户 dutyview:
```bash
useradd dutyview
```
3. 执行以下命令以编辑 /etc/sudoers 文件:
```bash
visudo
```
4. 在 /etc/sudoers 文件中添加以下行:
```
dutyview ALL=(ALL) NOPASSWD: /usr/sbin/*, /usr/bin/*, !/usr/sbin/su
```
注意,这一行需要放在文件的最后。
5. 保存并关闭 /etc/sudoers 文件。
现在,用户 dutyview 就可以在不需要输入密码的情况下执行 /usr/sbin/* 和 /usr/bin/* 目录下的命令,但是不能执行 /usr/sbin/su 命令了。
相关问题
which: no ll in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
在Linux系统中,"which"命令用于查找指定命令的路径。如果在环境变量中找不到该命令,则会显示"no ll in"的错误信息,其中的路径列表是环境变量$PATH的值。
引用中的错误信息表明在环境变量$PATH中找不到"ll"命令。"ll"命令通常是"ls -l"的别名,用于以长格式显示目录内容。这意味着系统中可能没有安装"ls"命令或者环境变量$PATH没有包含到"ls"命令所在的路径。
要解决这个问题,可以尝试以下方法:
1. 检查"ls"命令是否存在:可以使用"ls"命令来验证是否已经安装。在终端中输入"ls"命令,如果能够正常显示目录内容,则说明"ls"命令已经安装。
2. 检查环境变量$PATH:可以使用"echo $PATH"命令来查看当前的环境变量$PATH的值。确保环境变量$PATH中包含了"ls"命令所在的路径。如果没有包含,可以通过修改环境变量$PATH来添加"ls"命令所在的路径。
3. 安装"ls"命令:如果系统中没有安装"ls"命令,可以通过包管理器来安装。例如,在Ubuntu系统中可以使用以下命令安装"ls"命令:
```shell
sudo apt-get install coreutils
```
在CentOS系统中可以使用以下命令安装:
```shell
sudo yum install coreutils
```
sudo: /usr/sbin/nc: command not found
这个错误提示表明您尝试使用sudo命令运行nc命令,但是系统找不到nc命令。nc是一个非常常用的网络工具,用于在网络上进行数据传输和监听端口等操作。
您可以尝试使用以下命令来安装nc命令:
- 对于Debian/Ubuntu系统:sudo apt-get install netcat
- 对于CentOS/RHEL系统:sudo yum install nc
- 对于MacOS系统:brew install netcat
安装完成后,您应该可以使用nc命令了。如果问题仍然存在,请检查您的PATH环境变量是否包含nc命令所在的路径。