Linux 用户及用户组的基本管理
【概述】
Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问,另一方面也可以帮助用户组织文件,同时为用户提供安全性保护。
每个用户账号都拥有一个唯一的用户名和各自的口令,用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
实现用户账号的管理,要完成的工作主要有如下几个方面:- 用户账号的添加、删除与修改。
- 用户口令的管理。
- 用户组的管理。
【用户的管理】
1.查看用户账号
查看用户账号用的是 who 命令,who 命令常用参数如下
参数 | 说明 |
-m | 打印打开当前伪终端的用户的用户名、当前伪终端的序号及其启动时间 |
-q | 打印当前登录用户数及用户名 |
-u | 打印当前登录用户登录信息 |
-r | 打印运行等级 |
-a | 打印能打印的全部 |
-d | 打印死掉的进程 |
以下图的 who -m 命令为例:
1.输出的第一列表示打开当前伪终端的用户的用户名;
2.第二列的 pts/0 中 pts 表示伪终端(所谓伪终端是相对于 /dev/tty ),伪终端是在当前图形用户界面使用 /dev/tty7 时每打开一个终端就会产生一个伪终端, pts/0 后面那个数字就表示打开的伪终端序;
3.第三列则表示当前伪终端的启动时间。
2.创建用户
创建用户是在 root 权限下,使用 useradd 命令创建,其基本语法为:useradd [选项] 用户名
选项:
-c | 指定一段注释性描述 |
-d | 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录 |
-g | 指定用户所属的用户组 |
-G | 指定用户所属的附加组 |
-s |
Shell文件 指定用户的登录Shell |
-u | 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号 |
例如:
创建好一个用户后即可用创建的用户登录,使用如下命令切换登录用户:su -l 用户名,然后输入刚刚设置的用户名的密码即可。
注意,为保证安全性,用户登录时输入密码是不可见的。
退出当前用户与退出终端方法相同,使用 exit 命令或者使用快捷键 Ctrl+D 均可。
注:除了使用 useradd 命令创建用户,还可以使用 adduser 命令创建,两个命令在不同的 Linux 发行版上有所不同。
- 在 CentOs 下 useradd 与 adduser 是没有区别的,都是在创建用户时在home下自动创建目录,没有设置密码,需要使用passwd命令修改密码。
- 而在 Ubuntu 下 useradd 在创建用户时不会在 /home 下自动创建与用户名同名的用户目录,且不会自动选择 shell 版本,也没有设置密码,需要使用 passwd 命令修改密码后才可登录;adduser 在创建用户会在 /home 下自动创建与用户名同名的用户目录,以及系统 shell 版本,并且会在创建时会提示输入密码,更加友好。
3.删除用户
如果一个用户的账号不再使用,可以从系统中删除。
删除用户账号实质就是将在 /etc/passwd 等系统文件中的该用户记录删除,必要时还删除用户的主目录。
删除一个已有的用户账号使用 userdel 命令,其格式为:userdel [选项] 用户名
常用的选项是 -r,其作用是将用户的主目录一起删除。
例如:
4.修改用户
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录 Shell 等。
修改已有用户的信息使用 usermod 命令,其格式为:usermod [选项] 用户名
常用的选项包括 -c , -d , -m , -g , -G , -s , -u ,-o 等,这些选项的意义同 useradd 命令中的选项一样,可以为用户指定新的资源值。
具体的命令可以使用:usermod -h 命令,显示此命令的帮助信息。
例如:
5.用户口令的管理
用户管理的一项重要内容是用户口令的管理,用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。
指定和修改用户口令的 Shell 命令是 passwd,超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。
命令的格式为:passwd [选项] 用户名
常见的选项有:
-l | 锁定口令(锁定某一用户,使其不能登录,即禁用帐号) |
-u | 口令解锁 |
-d | 使账号无口令(此命令将用户口令删除,这样用户下一次登录时,系统就不再询问口令) |
-f | 强迫用户下次登录时修改口令 |
注:
1.如果是默认用户名,则修改当前用户的口令。
2.如果是超级用户,可以用下列形式指定任何用户的口令:passwd 用户名
【用户组的管理】
每个用户都有一个用户组,简单的来说就是一组用户的集合,它们共享一些资源和权限,同时拥有私有资源,系统可以对一个用户组中的所有用户进行集中管理。
用户组的管理涉及用户组的添加、删除和修改,实质上就是对 /etc/group 文件的更新。
1.查看当前用户属于哪一用户组
语法格式:groups
可以看到,root 用户属于 root 用户组
2.增添一个新的用户组
增添新用户组的格式为:addgroup [选项] 用户组
常见选项有:
-g |
指定新用户组的组标识号(GID) |
-o | 一般与 -g 同时使用,表示新用户组的 GID 可以与系统已有用户组的 GID 相同 |
3.修改用户组的属性
修改用户组的属性语法如下:groupmod [选项] 用户组
常见选项有:
-g | GID 为用户组指定新的组标识号 |
-o | 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同 |
-n | -n新用户组 将用户组的名字改为新名字 |
4.删除一个已有的用户组
删除用户组格式为:groupdel 用户组
5.用户在用户组之间的切换
语法格式为:newgrp 用户组
6.将一个用户添加到已有的用户组
将一个已有用户 test 增加到已有用户组 group1、group2 中,使用户组成为该用户的附加用户组。
使用 geroups 命令可以看到,用户 test 属于 test、group1、group2 用户组。
usermod 命令中, -a 代表 append,即将用户添加到新用户组中而不必离开原有的其他用户组。该命令需要配合 -G 使用,指定用户的附加组。
如果要将 test 的主要用户组改为 group ,则直接使用 -g 选项