Centos7添加普通用户并赋予sudo权限/解决docker启动报错-把新用户加到docker组

本文详细介绍如何在Linux系统中创建普通用户、修改密码、赋予sudo权限,包括修改sudoers文件的具体步骤,以及如何将用户添加到特定组,解决Docker启动错误等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、添加普通用户

useradd user

2、修改密码

passwd user

3、赋予sudo权限

然后给普通用户user添加sudo权限,修改/etc/sudoers文件,在root下面添加一行。
在“root ALL=(ALL)ALL”这一行下面,加入一行(用户名 ALL=(ALL) ALL),并保存

user ALL=(ALL) ALL

注:

强调内容 修改文件权限,一般文件默认为只读。

1、ls -l /etc/sudoers 查看文件权限
2、chmod -v u+w /etc/sudoers 修改文件权限为可编辑
  • -v : 显示权限变更的详细资料
  • + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
  • u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
3、 修改文件,在如下位置增加一行,保存退出。

vim /etc/sudoers 进入文件编辑器
文件内容改变如下:
root ALL=(ALL) ALL 已有行
user ALL=(ALL) ALL 新增行

4、记得将文件权限还原回只读。

ls -l /etc/sudoers 查看文件权限
chmod -v u-w /etc/sudoers 修改文件权限为只读

5、切换用户
su user
6、查看当前用户
whoami

想要添加一个用户到一个组,同时保留以前添加的组时,请使用 gpasswd 这个命令来添加操作用户:

gpasswd -a user_name group_name

例子:如果新用户docker启动报错

[hengrui@LXCL-DB mysql]$ docker-compose up -d
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

就要把新用户加到docker组里

sudo gpasswd -a user docker
newgrp docker     #更新用户组

重新连接用户,再次docker-compose启动就好了

<think>我们正在尝试彻底删除系统中的docker-compose,但之前已经执行了多个删除命令后,运行`docker-compose --version`仍然显示版本信息。因此,我们需要找出系统中所有残留的docker-compose文件路径。 根据引用[2]的建议,我们可以使用`find`命令来搜索整个文件系统中名为`docker-compose`的文件。命令如下: ```bash sudo find / -name docker-compose 2>/dev/null ``` 这个命令会从根目录`/`开始搜索,`2>/dev/null`是为了将错误信息(如权限不足)重定向到空设备,从而只显示找到的文件路径。 执行此命令后,系统会列出所有名为`docker-compose`的文件路径。然后,我们可以根据这些路径逐一删除。 此外,考虑到docker-compose可能以插件形式存在(如v2版本),我们还需要查找可能存在的其他路径,例如: - `~/.docker/cli-plugins/` - `/usr/local/lib/docker/cli-plugins/` - `/usr/lib/docker/cli-plugins/` - `/usr/local/bin/` - `/usr/bin/` 但为了确保不遗漏,直接使用`find`命令搜索整个文件系统是最稳妥的。 注意:由于docker-compose v2版本是作为docker的插件存在的,其可执行文件名也是`docker-compose`,因此上述命令同样可以找到v2版本。 在删除所有找到的文件后,建议执行以下命令刷新命令缓存: ```bash hash -r ``` 然后再次尝试运行`docker-compose --version`,应该会提示命令未找到。 如果仍然存在,则可能是由于环境变量中配置了别名(alias)或者函数(function),我们可以通过以下命令检查: ```bash alias docker-compose 2>/dev/null declare -f docker-compose 2>/dev/null ``` 另外,如果之前通过包管理器(如apt、yum)安装过docker-compose,还需要使用包管理器卸载: - 对于Debian/Ubuntu系统:`sudo apt purge docker-compose docker-compose-plugin` - 对于CentOS/RHEL系统:`sudo yum remove docker-compose docker-compose-plugin` - 对于Fedora:`sudo dnf remove docker-compose docker-compose-plugin` 最后,如果系统中安装了Docker Desktop,它可能内置了docker-compose,需要卸载Docker Desktop才能完全移除。 现在,我们首先执行查找命令,找出所有残留的docker-compose文件路径。</think>### 彻底查找系统中所有 docker-compose 文件路径的方法 要找出系统中所有残留的 `docker-compose` 文件路径,请执行以下命令: ```bash # 搜索所有 docker-compose 文件(忽略权限错误) sudo find / -type f -name docker-compose 2>/dev/null # 搜索所有包含 docker-compose 的目录(包括插件路径) sudo find / -type d -name '*docker-compose*' 2>/dev/null ``` #### 执行结果分析: 命令会列出系统中所有 `docker-compose` 文件的完整路径,常见位置包括: 1. **传统安装路径** `/usr/local/bin/docker-compose` `/usr/bin/docker-compose` 2. **插件安装路径** `~/.docker/cli-plugins/docker-compose` `/usr/lib/docker/cli-plugins/docker-compose` `/usr/local/lib/docker/cli-plugins/docker-compose` 3. **包管理器安装路径** `/snap/bin/docker-compose` (Snap 安装) `/opt/homebrew/bin/docker-compose` (Homebrew 安装) 4. **Docker Desktop 集成路径** `/Applications/Docker.app/Contents/Resources/bin/docker-compose` (macOS) `/usr/libexec/docker/cli-plugins/docker-compose` (Linux) #### 完整清理流程: ```bash # 1. 查找所有残留文件 PATHS=$(sudo find / -type f -name docker-compose 2>/dev/null) # 2. 删除找到的所有文件 echo "$PATHS" | xargs sudo rm -f # 3. 刷新命令缓存 hash -r && sudo updatedb # 4. 验证是否完全删除 docker-compose --version # 应显示"command not found" ``` > **注意**:如果发现文件在 `/snap/` 或 `/opt/` 目录下,可能需要通过包管理器卸载: > ```bash > # Snap安装 > sudo snap remove docker > > # Homebrew安装 > brew uninstall docker-compose > ``` #### 常见残留原因: 1. **多版本共存**:V1(二进制)和V2(插件)同时存在不同路径[^2] 2. **包管理器残留**:APT/YUM/Snap等未完全卸载 3. **环境缓存**:Shell缓存未刷新(`hash -r`解决) 4. **Docker Desktop集成**:内置compose件需单独卸载
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值