大数据学习环境搭建系列(七)Linux用户管理

大数据学习环境搭建系列(七)Linux用户管理

作者 | CDA数据分析师

1. 概述

上一篇文章介绍了Linux文件系统的目录结构、目录常用操作命令相关知识。然而当我们用hduser登录Ubuntu后尝试在根目录下去操作一些文件时往往会提示权限不够,不允许操作。这时我们通过在命令前增加sudo关键字就可以执行成功。

这是为什么呢?原因就在我们今天要学习的内容“Linux系统的用户管理”中。小伙伴们让我们开始今天的发现之旅吧。

2. 用户管理

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。不同的用户处于不同的地位,拥有不同的权限,root用户拥有最高的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

那当我们普通用户需要使用root用户权操作时怎么办呢?Linux系统提供了相应的工具sudo,该命令为管理员提供了一种方便的访问控制方法。通过它人们既可以作为超级用户又可以作为其它类型的用户来访问系统。这样管理员能够在不告诉用户root密码的前提下,授予普通用户某些特定类型的超级权限。这也就解释了文章开头的疑问,我们通过sudo命令让hduser用户获得了root用户的权限,所以可以在根目录下的操作可以执行成功。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。

实现用户账号的管理,要完成的工作主要有如下几个方面:

-用户账号的添加

-用户口令的管理

-用户账号的删除

-用户组的管理

2.1 用户账号的添加

添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。刚添加的账号是被锁定的,无法使用。

大数据学习环境搭建系列(七)Linux用户管理

1)添加新的用户账号使用useradd命令,其语法如下:

useradd 选项[可选] 用户名

参数说明:

选项:

-c comment 指定一段注释性描述。

-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录,若不指定用户主目录,则会自动使用/home/username作为用户主目录。

  • g 用户组 指定用户所属的用户组。

  • G 用户组,用户组 指定用户所属的附加组。

  • s Shell文件 指定用户的登录Shell。

  • u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

用户名:

  • 指定新账号的登录名。

例1创建hadoop用户(hduser用户需要使用sudo命令)

打开我们创建的Ubuntu虚拟机,登录后(Ctrl+Alt+t)打开终端输入如下命令:

sudo useradd -m hadoop -s /bin/bash

如下图所示hadoop用户创建成功

大数据学习环境搭建系列(七)Linux用户管理

2.2 用户口令的管理(口令可理解为登录密码)

用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。

指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为:

passwd 选项[可选] 用户名

可使用的选项:

  • l 锁定口令,即禁用账号。

  • u 口令解锁。

  • d 是账号无口令。

  • f 强迫用户下次登录时修改口令

用户名

  • 需要修改口令的用户名称,如果不给出则默认是当前的用户。

例2为新建的用户hadoop添加口令:1

sudo passwd hadoop

执行命令后两次输入密码1,密码更新完成。执行过程如下图所示:

大数据学习环境搭建系列(七)Linux用户管理

2.3 用户的删除

如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。

删除一个已有的用户账号使用userdel命令,其格式如下:

userdel 选项 用户名

常用的选项是 -r,它的作用是把用户的主目录一起删除。

例如:

sudo userdel -r hadoop

此命令删除用户hadoop在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。

2.4 用户的参数修改

修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。

修改已有用户的信息使用usermod命令,其格式如下:

usermod 选项 用户名

常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。

另外,有些系统可以使用选项:-l 新用户名

例如:

sudo usermod -g hadoop hduser

此命令将用户hduser的用户组更改为hadoop用户组。

3. 用户组的管理

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

大数据学习环境搭建系列(七)Linux用户管理

3.1 创建用户组

增加一个新的用户组使用groupadd命令。其格式如下:

groupadd 选项 用户组

可以使用的选项有:

-g GID 指定新用户组的组标识号(GID)。

-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。

例1创建名为BIGDATA的用户组

sudo groupadd BIGDATA

3.2 删除用户组

删除已有的用户组使用groupdel命令。其格式如下:

groupdel 用户组

例2删除名为BIGDATA的用户组

sudo groupdel BIGDATA

3.3 修改用户组的属性

修改用户组属性使用groupmod命令。其格式如下:

groupmod 选项 用户组

常用的选项有:

-g GID 为用户组指定新的组标识号。

-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。

-n新用户组 将用户组的名字改为新名字

例3更改名为BIGDATA的用户组标识号为112

sudo groupmod -g 112 BIGDATA

好啦,今天的内容就到这里了,下篇文章我们将介绍一下Linux系统的文件属性。