编程要求
根据右侧窗口命令行内的提示,在Begin - End
区域内进行命令行语句补充,具体任务如下:
- 新创建一个用户newUser,并且设置登录密码;
- 使用su命令切换当前用户身份为newUser,并且执行whoami指令,然后恢复原来的身份。
注意:本平台执行环境默认以root
账户登录,所以执行的所有命令都是以root
权限执行。
任务描述
恭喜你已经完成了Linux
之用户管理的实训,接下来让我们一起来学习Linux
中用户组的管理,本关主要讲解如何在Linux
中创建和删除用户组,通过本关的实训,你将学会如何新创建一个用户组,并且学会如何删除一个已经存在的用户组。
本关的任务是新创建一个用户组,并将一个已经存在的用户组删除掉。
相关知识
Linux创建用户组命令
Linux
中使用groupadd
命令来创建一个新用户组。
命令格式:groupadd [命令参数] 参数
常见命令参数:
- -g:指定新建工作组的id;
- -r:创建系统工作组,系统工作组的组ID小于500;
groupadd
必须以root
权限才能执行,如果是普通用户想使用该命令,需要在命令前加sudo
命令来提升权限为root
权限。
案例演示一
使用groupadd
命令新创建一个用户组testGroup
[请在右侧“命令行”里直接体验]
在背景介绍中,我们了解到,Linux
中用户组信息是保存在/etc/group
文件中,我们可以使用命令tail /etc/group
命令查看/etc/group
文件最后10行中是否存在刚刚新创建的testGroup
用户信息。
[请在右侧“命令行”里直接体验]
案例演示二
使用groupadd
命令新创建一个用户组testGroupID
,并且指定组的ID
[请在右侧“命令行”里直接体验]
注意:我们可以看到有时执行sudo
命令就不需要输入密码,这是因为每次都输入密码比较麻烦,所以Linux
会设置一个sudo
的会话时间,就是说我们在第一次执行sudo
的时候是要输入密码,那么在接下来的一段时间内在执行sudo
的时候就不需要输入密码,这个会话时间默认是5
分钟,用户也可以通过编辑/etc/sudoers
来修改这个会话时间的大小。
同样我们可以使用命令tail /etc/group
命令查看/etc/group
文件最后10
行中是否存在刚刚新创建的testGroupID
用户信息。
[请在右侧“命令行”里直接体验]
Linux删除用户组命令
Linux
中使用groupdel
命令来删除一个已经存在的用户组。
命令格式:groupdel 参数
参数为要删除的用户组名
groupdel
必须以root
权限才能执行,如果是普通用户想使用该命令,需要在命令前加sudo
命令来提升权限为root
权限。
案例演示一
使用groupdel
命令删除上面创建的testGroup
和testGroupID
组
[请在右侧“命令行”里直接体验]
编程要求
根据右侧窗口命令行内的提示,在Begin - End
区域内进行命令行语句补充,具体任务如下:
- 新创建一个用户组
newGroup
; - 新创建一个用户组
newGroupID
,并自设置其ID
为1010
; - 删除已经存在的用户组
oldGroup
。
注意:本平台执行环境默认以root
账户登录,所以执行的所有命令都是以root
权限执行。
任务描述
恭喜你已经完成了第一关的挑战,现在你已经学会了如何创建一个新用户组和删除一个已经存在的用户组,接下来,我们一起学习如何修改用户所属组。
本关的任务是为新创建的用户修改其所属组。
相关知识
Linux查看用户所属组
Linux
中查看一个用户所属的组两种方法。
使用id
命令查看。
命令格式:id [命令参数] 参数
参数为要查询的用户名,默认是当前登录用户。
常见命令参数:
-g或--group
:显示用户所属群组的ID
;-G或--groups
:显示用户所属附加群组的ID
;-n或--name
:显示用户,所属群组或附加群组的名称。
id
命令的执行权限是面向所有用户。
案例演示:
使用id
命令查看用户fzm
所属组。
[请在右侧“命令行”里直接体验]
使用group
命令查看。
命令格式:groups 参数
参数为要查询的用户名,默认是当前登录用户。
执行权限:groups
命令的执行权限是面向所有用户。
案例演示:
使用groups
命令查看用户fzm
所属组。
[请在右侧“命令行”里直接体验]
一个用户是可以属于多个组的。
Linux修改用户所属组
使用usermod命令修改用户组
如果要一个用户仅仅属于某一个组,而不是同时属于多个组,则使用如下命令:
命令格式:usermod -g 组名 用户名
如果要给一个用户添加一个新的组,同时保留原来有所的组,则使用如下命令:
命令格式:usermod -a -G 组名 用户名
usermod
必须以root
权限才能执行,如果是普通用户想执行usermod
时,需要在命令前加sudo
命令来提升权限为root
权限。
案例演示一:
新创建一个用户newUser
和新创建一个用户组newGroup
,使用usermod
命令将newUser
用户所属组修改为newGroup
。
[请在右侧“命令行”里直接体验]
首先,创建用户newUser
和组newGroup
,使用groups
命令查看用户newUser
所属的组,因为默认情况下新创建用户的时候会默认创建一个与用户名同名的私有组,并将新创建的用户所属组设置为私有组。接下来使用usermod
命令来修改用户所属组,最后查看修改是否成功。
案例演示二:
新创建一个用户newUser
和新创建一个用户组newGroup
,使用usermod
命令为newUser
用户新添加一个组newGroup
。
[请在右侧“命令行”里直接体验]
首先,创建用户newUser
和组newGroup
,使用groups
命令查看用户newUser
所属的组。接下来使用usermod
命令来为用户添加一个新的组,最后查看添加是否成功。
使用useradd命令创建用户的时候指定用户组
在创建新用户的同时可以修改默认用户所属组,如果想在创建的时候直接将用户所属组修改成系统中已经存在的一个组,而不是使用默认私有组,则使用如下命令:
命令格式:useradd -g 组名 用户名
在创建新用户的同时可以为用户添加其它组,如果想在创建新用户的时候为用户添加一个已经存在的组,而不仅只属于默认创建的私有组,则使用如下命令:
命令格式:useradd -G 组名 用户名
useradd
必须以root
权限才能执行,如果是普通用户执行时,需要在命令前加sudo
命令来提升权限为root
权限。
案例演示一:
新创建一个用户组newGroup
,并且使用useradd
命令新创建用户newUser
同时将其所属组修改为newGroup
。
[请在右侧“命令行”里直接体验]
首先,创建用户组newGroup
,使用useradd
命令创建新用户newUser
,同时将其所属组修改为newGroup
,最后查看修改是否成功。
案例演示二:
新创建一个用户组newGroup
,并且使用useradd
命令新创建用户newUser
同时为其添加一个新的用户组newGroup
。
[请在右侧“命令行”里直接体验]
首先,创建用户组newGroup
,使用useradd
命令创建新用户newUser
,同时为其添加一个新的用户组newGroup
,最后查看添加是否成功。
编程要求
根据右侧窗口命令行内的提示,在Begin - End
区域内进行命令行语句补充,具体任务如下:
- 新创建一个用户newUser;
- 使用usermod命令为用户newUser新添加一个已经存在的用户组oldGroup。
注意:本平台执行环境默认以root
账户登录,所以执行的所有命令都是以root
权限执行。
任务描述
恭喜你已经顺利通过以上两个关卡任务,本关主要讲解如何修改用户和用户组信息,通过本关的实训,你将学会如何对一个已经存在的用户或用户组的信息进行修改。
本关的任务是对一个已经存在的用户和用户组信息的修改。
相关知识
Linux查看用户属性命令
Linux
中使用id
命令可以查看用户的大多数信息。具体使用方法请参看上一关的实训。
Linux
中还可以通过查看/etc/passwd
文件来获取用户的信息。具体方法可以参考背景知识。
Linux
中还可以使用finger
命令来查询用户的信息。
注意:Ubuntu
系统中默认没有安装finger
命令,用户可以通过以下命令来安装finger
,然后就可以使用finger
。
sudo apt-get install finger
具体使用方法如下:
命令格式:finger [命令参数] 参数
常见命令参数
- -l:多行显示;
- -s:单行显示。这个选项只显示登入名称、真实姓名、终端机名称、闲置时间、登入时间、办公室号码及电话号码。如果所查询的使用者是远端服务器的使用者,这个选项无效。
案例演示:
使用finger
命令查看用户信息。
例如,查看系统中已经存在的用户newUser
信息。
[请在右侧“命令行”里直接体验]
Linux用户信息修改命令
Linux
中usermod
命令是最强大的用户账户修改实用工具。
usermod
命令我们在上一关只是简单的用到其-g
、-G
参数对用户的所属组进行修改,本关我们将进一步使用usermod
命令的其它属性进行修改更多的属性。
命令格式:usermod [命令参数] 参数
常见命令参数:
- -c<备注>:修改用户帐号的备注文字;
- -d<登入目录>:修改用户登入时的目录;
- -e<有效期限>:修改帐号的有效期限;
- -f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;
- -g<群组>:修改用户所属的群组;
- -G<群组>;修改用户所属的附加群组;
- -l<帐号名称>:修改用户帐号名称;
- -L:锁定用户密码,使密码无效;
- -s:修改用户登入后所使用的
shell
; - -u:修改用户
ID
; - -U:解除密码锁定。
usermod
必须以root
权限才能执行,如果是普通用户想使用该命令时,需要在命令前加sudo
命令来提升权限为root
权限。
案例演示一:
使用usermod
命令修改用户名。
例如,在系统中已经存在一个用户名为oldUser
的用户,由于某种原因,现在必须将其修改成newUser
。
[请在右侧“命令行”里直接体验]
案例演示二:
使用usermod
命令修改用户登录目录。
[请在右侧“命令行”里直接体验]
首先使用finger
命令查看用户newUser
的登录目录为/home/oldUser
,然后新创建一个/home/newUser
,使用usermod
将用户newUser
的登录目录修改成/home/newUser
,最后使用finger
命令查看是否修改成功。
Linux用户组信息修改命令
Linux
中使用groupmod
命令来修改用户组信息。
命令格式:groupmod [命令参数] 参数
常见命令参数:
- -g<群组识别码>:设置欲使用的群组识别码;
- -n<新群组名称>:设置欲使用的群组名称。
groupmod
必须以root
权限才能执行,如果是普通用户想使用该命令时,需要在命令前加sudo
命令来提升权限为root
权限。
案例演示:
使用groupmod
命令修改已有用户组名称。
[请在右侧“命令行”里直接体验]
首先通过tail
命令查看一个已有用户组信息,可以看到该用户组名为oldUser
,并且组ID为1004,通过groupmod
命令将其名由oldUser
修改成renameOldUser
,最后使用再查看是否修改成功。
编程要求
根据右侧窗口命令行内的提示,在Begin - End
区域内进行命令行语句补充,具体任务如下:
- 将系统已有用户
oldName
名修改成newName
; - 将修改过后的
newName
用户的登录目录修改成系统已存在文件夹/home/newName
; - 将系统已有用户组
oldGroup
名修改成newGroup
。
注意:本平台执行环境默认以root
账户登录,所以执行的所有命令都是以root
权限执行。