Linux新建用户并分配相关权限
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 | [root@sharplee creatfile]# cat /etc/shells |
下面是改变shell需要牢记的一些点:
- 一个用户能够改变他们自己的shell为任何shell,但是前提这个shell要在/etc/shells中要有。
- 仅仅只有root用户有权限更改shell在Linux中的/etc/shell文件中找不到的shell。
- 如果一个用户是被限制登录的,这个用户的shell只有root用户有权限更改。
1、使用usermod修改
usermod是一个工具用于修改用户账号的信息,这些信息存储在“/etc/passwd”中,下面我们通过 -s 或者 --shell选项来改变用户的shell。
1 | [sharplee@sharplee creatfile]# grep sharplee /etc/passwd |
2、使用chsh命令进行修改
chsh 是一个命令行实用程序,使用 -s 或 –shell 选项更改登录 shell,如下所示。
1 | [sharplee@sharplee creatfile]# grep sharplee /etc/passwd |


