Ubuntu18.04 环境搭建——用户管理

1. 用户管理原则

禁用 root 用户,严格控制 sudo 权限,合理分配普通用户。

root 用户,又称超级用户,在 Linux 系统中具有最高级别权限,并且不受系统安全设置的限制。例如,使用 !wq 可以无视权限强行修改文件内容,使用 rm -rf / 可以不加警告地删除系统根目录。在系统管理和日常使用中,应该禁用 root 用户以保证系统安全。

对于系统管理需求,推荐设置专用的管理员用户,赋予 sudo 权限,允许其临时以 root 身份执行命令。管理员用户数量不宜过多,需要严格控制。

对于日常使用需求,推荐合理地分配普通用户。长期闲置无人管理的僵尸用户是重要的安全风险,可以通过设置用户有效期,自动封禁过期用户。

2. 超级用户管理

2.1 相关操作

sudo passwd root               # 启用 root 用户并设置密码
sudo passwd -l root            # 禁用 root 用户
sudo vim /etc/ssh/sshd_config  # 修改 PermitRootLogin 禁止/允许 root 用户远程登录

2.2 PermitRootLogin 可选项

/etc/ssh/sshd_config 用于配置远程连接,其中 PermitRootLogin 指定 root 用户通过 ssh 远程连接时的登录方式,如禁止登录、禁止使用密码登录、仅允许密钥登录和开放登录等,具体如下:

参数解释是否允许远程登陆登录方式交互式shell
yes开放登录无限制无限制
without-password禁止使用密码登录不允许密码无限制
forced-commands-only仅允许密钥登录仅允许密钥仅允许已授权的命令
no禁止登录

3. 普通用户管理

3.1 创建用户

sudo adduser ubuntu  # 根据提示输入用户名、登陆密码、联系电话等必要信息

adduser 自动创建用户目录,通过文本指引配置密码、shell 等用户信息;
useradd 提供参数选项配置用户信息,如果无参数,则创建的用户无密码、无主目录、不指定 shell 脚本。

3.2 配置 sudo 权限

修改 /etc/sudoers 配置文件,添加/移除 sudo 权限。注意,用户组权限配置会覆盖用户配置,为用户添加 sudo 权限的同时,应该同时修改其用户组的权限配置。

user_name/group_name  ALL=(ALL:ALL) ALL            # 需要输入密码
user_name/group_name  ALL=(ALL:ALL) NOPASSWD: ALL  # 无需输入密码

3.3 删除用户

sudo userdel -r ubuntu  # -r 删除用户目录
### 配置VSCode用于C/C++开发环境 #### 安装必要的工具链 为了在Ubuntu 18.04设置C/C++开发环境,需要安装GNU Compiler Collection (GCC),这是Linux平台上的标准编译器套件。可以通过包管理器apt-get来完成这一操作[^1]。 ```bash sudo apt update sudo apt install build-essential ``` 上述命令会更新软件源并安装构建基本组件,其中包括gcc和g++编译器以及make等工具。 #### 设置Visual Studio Code编辑器 对于集成开发环境的选择,Visual Studio Code因其轻量级特性和强大的插件生态系统而成为理想之选。首先需下载并安装该应用程序: ```bash sudo snap install --classic code ``` 这一步骤利用Snapcraft提供的官方渠道快速部署最新版本的VSCode到用户的系统环境中去[^2]。 #### 安装扩展支持C/C++ 打开已安装好的VSCode之后,在左侧活动栏点击扩展图标(四个方块组成的图案),搜索`C/C++`由Microsoft发布的官方扩展,并单击安装按钮将其加入当前工作区之中。此扩展提供了 IntelliSense、调试功能以及其他有助于编写高效代码的功能特性[^3]。 #### 创建项目结构与配置文件 创建一个新的目录作为项目的根路径,接着初始化Git仓库以便于版本控制。进入新建的工作空间内,通过终端依次运行下面两条指令生成`.vscode`隐藏文件夹及其内部所需的两个重要JSON格式设定文档——即`c_cpp_properties.json`用来指定包含头文件的位置信息;还有就是前面提到过的`tasks.json`负责定义具体的编译流程[^4]。 ```json // c_cpp_properties.json example content { "configurations": [ { "name": "Linux", "includePath": ["${workspaceFolder}/**"], "defines": [], "compilerPath": "/usr/bin/gcc", "cStandard": "gnu11", "cppStandard": "gnu++14", "intelliSenseMode": "clang-x64" } ], "version": 4 } ``` 以上展示了如何自定义C/C++语言服务器的行为模式,确保其能够识别用户所使用的特定编程风格及语法规范。 #### 调试配置 最后还需要准备一份launch.json文件,它描述了启动程序的方式方法,特别是当涉及到断点调试的时候显得尤为重要。这里给出一个简单的例子说明怎样针对单一目标二进制文件进行本地测试[^5]。 ```json // launch.json sample configuration { "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/a.out", // Replace with your executable path "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] } ``` 这样就完成了整个基于VSCode搭建起来的支持现代C/C++工程实践的学习平台!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值