1. 新增用户

在Linux系统中,我们可以使用useradd命令来新增用户。useradd命令的基本语法如下:

1
useradd [选项] 用户名

下面是一些常用的选项:

  • -d:指定用户的主目录;
  • -m:在指定目录下创建用户的主目录;
  • -s:指定用户的默认shell;
  • -g:指定用户所属的初始组;
  • -G:指定用户所属的其他附加组。

例如,我们要新增一个名为testuser的用户,并将其主目录设置为/home/testuser,可以执行以下命令:

1
sudo useradd -m -d /home/testuser testuser

执行以上命令后,系统会自动在/home目录下创建一个testuser文件夹作为testuser用户的主目录。

2. 设置密码

为了保证用户登录的安全性,我们还需要为新增的用户设置密码。在Linux系统中,可以使用passwd命令来设置用户密码。passwd命令的基本语法如下:

1
passwd [选项] 用户名

以下是一些常用的选项:

  • -l:锁定用户账户;
  • -u:解锁用户账户;
  • -d:删除用户密码;
  • -e:强制用户下次登录时修改密码。

例如,我们要为testuser用户设置密码,可以执行以下命令:

1
sudo passwd testuser

执行以上命令后,系统会提示输入新密码,然后再要求确认密码。密码输入时不会显示在终端上,所以请仔细确认输入的密码。

3. 用户权限管理

在Linux系统中,用户的权限管理是非常重要的。通过设置用户的权限,我们可以控制用户对系统资源的访问和操作权限。下面是一些常用的权限管理的方法:

3.1. 用户组管理

在Linux系统中,用户可以属于一个或多个用户组。用户组可以用来控制用户对系统资源的访问权限。通过/etc/group文件可以查看系统中的用户组信息。

要将用户添加到用户组中,可以使用usermod命令。usermod命令的基本语法如下:

1
usermod -G 用户组 用户名

例如,将testuser用户添加到sudo用户组中,可以执行以下命令:

1
sudo usermod -G sudo testuser

3.3. Sudo权限管理

在Linux系统中,可以使用sudo命令临时提升用户权限,以执行特定的命令。通过控制用户的sudo权限,我们可以限制用户对系统资源的访问和操作。

要为用户设置sudo权限,可以使用visudo命令编辑/etc/sudoers文件。sudoers文件中包含了用户的sudo权限配置信息。

以下是一些常用的sudoers文件配置:

  • %sudo ALL=(ALL:ALL) ALL:允许用户组sudo的用户执行任何命令;
  • %sudo ALL=(ALL:ALL) NOPASSWD:ALL:允许用户组sudo的用户免密执行任何命令;
  • username ALL=(ALL) /path/to/command:允许指定用户执行特定的命令。

要为testuser用户添加sudo权限,可以执行以下命令:

1
sudo visudo

sudoers文件中添加以下行:

1
testuser ALL=(ALL:ALL) ALL

保存并退出文件后,testuser用户就具有了sudo权限。

4. 修改或指定默认shell

在 Linux 中更改用户的 shell 有几个原因,包括:

  • 使用nologin shell阻止或禁用Linux 中的正常用户登录。
  • 在将用户命令发送到 shell 执行之前,使用 shell 包装脚本或程序登录用户命令。在这里,您将 shell 包装器指定为用户的登录 shell。
  • 满足用户的需求(想要使用特定的 shell),尤其是那些具有管理权限的用户。
    下面来看一下Linux系统中所有可用的shell。
1
2
3
4
5
[root@sharplee creatfile]# cat /etc/shells  
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

下面是改变shell需要牢记的一些点:

  • 一个用户能够改变他们自己的shell为任何shell,但是前提这个shell要在/etc/shells中要有。
  • 仅仅只有root用户有权限更改shell在Linux中的/etc/shell文件中找不到的shell。
  • 如果一个用户是被限制登录的,这个用户的shell只有root用户有权限更改。

1、使用usermod修改
usermod是一个工具用于修改用户账号的信息,这些信息存储在“/etc/passwd”中,下面我们通过 -s 或者 --shell选项来改变用户的shell。

1
2
3
[sharplee@sharplee creatfile]# grep sharplee /etc/passwd  
[sharplee@sharplee creatfile]# sudo usermod --shell /bin/sh sharplee
[sharplee@sharplee creatfile]# grep sharplee /etc/passwd

2、使用chsh命令进行修改
chsh 是一个命令行实用程序,使用 -s 或 –shell 选项更改登录 shell,如下所示。

1
2
3
[sharplee@sharplee creatfile]# grep sharplee /etc/passwd  
[sharplee@sharplee creatfile]# sudo chsh --shell /bin/bash sharplee
[sharplee@sharplee creatfile]# grep sharplee /etc/passwd