当前位置:   article > 正文

Linux文件/目录高级管理与用户管理_第2关:修改文件权限

第2关:修改文件权限

Linux文件/目录高级管理一

第1关:Linux文件权限修改
任务描述
假设系统中存在一个文件File,修改该文件的权限,根据实际需求添加/删除该文件读、写、执行权限,通过本关的学习,我们学会如何让一个文件允许哪些用户访问或禁止哪些用户访问。

本关任务:学会如何修改文件的权限。

相关知识
Linux系统中的每个文件都有访问许可权限,文件的访问权限分为只读,只写和可执行三种。

只读权限表示只允许读其内容,而禁止对其做任何的更改操作。

只写权限表示允许修改文件的内容。

可执行权限表示允许将该文件作为一个程序执行。

每一文件的访问权限都有三组,每组用三位表示,分别为文件所属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。

当用ls -l或ll命令显示文件的详细信息时,最左边的一列为文件的访问权限。例如显示test文件详细信息:
在这里插入图片描述

[请在右侧“命令行”里直接体验]

Linux修改文件权限命令
Linux中使用chmod命令来修改文件权限。

文字设定法具体命令如下:

chmod [who] [+ | - | =] [mode] 文件名

who参数如下:

u 表示“用户(user)”,即文件或目录的所有者;
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户;
o 表示“其他(others)用户”;
a 表示“所有(all)用户”,它是系统默认值。
操作符如下:

+:添加某个权限;
-:取消某个权限;
=:赋予给定权限并取消其他所有权限。
mode参数如下:

r 可读;
w 可写;
x 可执行。
数字设定法具体命令如下:

chmod [mode] 文件名

mode为具体的数字。

首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是u、g和o。

案例演示一:

将文件testFile的所有权限设置为仅读权限,可以使用如下命令:

chmod a=r testFile
在这里插入图片描述

[请在右侧“命令行”里直接体验]

案例演示二:

将文件testFile的所有权限设置为可读可写,同组用户权限设置为只读,可以使用如下命令:

chmod u=rw,g=r testFile
在这里插入图片描述

[请在右侧“命令行”里直接体验]

案例演示三:

将文件testFile的权限设置为所有者可读可写可执行,同组用户设置为可读可执行,其他用户设置为可读,可以使用如下命令:

chmod 754 testFile
在这里插入图片描述

[请在右侧“命令行”里直接体验]

Linux修改所有者权限
linux使用chmod u+/-/=命令来设置文件所有者的权限。

具体命令如下:

chmod u [+ | - | =] [mode] 文件名

操作符如下:

+:添加某个权限;
-:取消某个权限;
=:赋予给定权限并取消其他所有权限。
mode参数如下:

r 可读;
w 可写;
x 可执行。
案例演示一:

将文件testFile的所有者权限设置为仅读权限,可以使用如下命令:

chmod u=r testFile
在这里插入图片描述

[请在右侧“命令行”里直接体验]

案例演示二:

给文件testFile的所有者权限添加可执行权限,可以使用如下命令:

chmod u+x testFile
在这里插入图片描述

[请在右侧“命令行”里直接体验]

Linux修改同组用户权限
Linux修改同组用户权限的方法与修改所有者的权限大致一样,唯一不同的点是修改同组用户权限采用chmod g而不是采用chmod u。

案例演示一:

将文件testFile的同组用户权限设置为仅读权限,可以使用如下命令:

chmod g=r testFile
在这里插入图片描述

[请在右侧“命令行”里直接体验]

案例演示二:

给文件testFile的同组用户权限添加可执行权限,可以使用如下命令:

chmod g+x testFile
在这里插入图片描述

[请在右侧“命令行”里直接体验]

Linux修改其他用户权限
Linux修改其他组用户权限的方法与修改所有者的权限大致一样,唯一不同的点是修改其他组用户权限采用chmod o而不是采用chmod u。

案例演示一:

将文件testFile的其他组用户权限设置为仅读权限,可以使用如下命令:

chmod o=r testFile
在这里插入图片描述

[请在右侧“命令行”里直接体验]

案例演示二:

给文件testFile的其他组用户权限添加可执行权限,可以使用如下命令:

chmod o+x testFile
在这里插入图片描述

[请在右侧“命令行”里直接体验]

编程要求
根据右侧窗口命令行内的提示,在Begin - End区域内进行命令行语句补充,具体任务如下:

将系统已存在文件oldFile1的所有者权限设置为可执行;
为系统已存在文件oldFile2的同组用户权限删除可写权限;
为系统已存在文件oldFile3的其他组用户权限添加可执行权限;
将系统已存在文件oldFile4的权限设置所有者权限为可读,同组用户权限为可写,其他用户权限为可执行;
测试说明
本平台只需将需要的命令写入到对应的命令填写区域(命令间使用换行分隔)即可,平台会自动读入和执行用户写入的命令,并判断用户输入的命令是否符合要求。

#在以下部分写出完成任务的命令
#***********begin*************#
chmod u=x oldFile1
chmod g-w oldFile2
chmod o+x oldFile3
chmod u=r,g=w,o=x oldFile4
#************end**************#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

第2关:Linux目录权限修改
任务描述
假设系统中存在一个目录DIR,修改该目录的权限,根据实际需求添加/删除该目录读、写、访问权限,通过本关的学习,我们学会如何让一个目录运行哪些用户访问或禁止哪些用户访问。

本关任务是学会修改目录的权限。

相关知识
Linux系统中的每个目录都有访问许可权限,目录的权限和文件的权限类似,目录的访问权限也分为只读,只写和可进入三种。

只读权限表示允许浏览其内容。

只写权限表示允许在目录下新创建文件或目录。

可进入权限表示允许使用cd命令进入到该目录下。

每一目录的访问权限都有三组,每组用三位表示,分别为所有者权限、同组用户权限和其他用户权限。

当用ls -l命令显示目录的详细信息时,最左边的一列为目录的访问权限。例如显示当前目录下的test目录详细信息可以使用如下命令:

ls -l .
在这里插入图片描述

[请在右侧“命令行”里直接体验]

Linux修改目录权限命令
Linux中使用chmod命令来修改目录权限。

文字设定法具体命令如下:

chmod 参数 [who] [+ | - | =] [mode] 目录名

常用参数如下:

-R或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理。
who参数如下:

u 表示“用户(user)”,即文件或目录的所有者;
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户;
o 表示“其他(others)用户”;
a 表示“所有(all)用户”,它是系统默认值。
操作符如下:

+:添加某个权限;
-:取消某个权限;
=:赋予给定权限并取消其他所有权限。
mode参数如下:

r 可读;
w 可写;
x 可执行。
数字设定法具体命令如下:

chmod [mode] 文件名

mode为具体的数字。

首先了解用数字表示的属性的含义:0表示没有权限,1表示可进入权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是u、g和o。

案例演示一:

将目录testDir的所有权限设置为仅读权限,可以使用如下命令:

chmod a=r testDir
在这里插入图片描述

[请在右侧“命令行”里直接体验]
在这里插入图片描述

此时testDir目录只能被用户所读,而不能进行其他的任何操作。

[请在右侧“命令行”里直接体验]

案例演示二:

将目录testDir的所有权限设置为可读可写,同组用户权限设置为只读,可以使用如下命令:

chmod u=rw,g=r testDir
在这里插入图片描述

[请在右侧“命令行”里直接体验]
在这里插入图片描述

[请在右侧“命令行”里直接体验]

此时testDir目录有写权限,但是还是无法创建新文件,原因是目录中的写权限(w)必须与执行权限(x)配合才能创建和删除目录下的内容。

案例演示三:

将目录testDir的权限设置为所有者可读可写可执行,同组用户设置为可读可执行,其他用户设置为可读可执行,可以使用如下命令:

chmod 755 testDir
在这里插入图片描述

此时,用户可以向testDir目录添加新文件和删除已有文件。

[请在右侧“命令行”里直接体验]

Linux修改所有者权限
linux使用chmod u+/-/=命令来设置目录所有者的权限。

具体命令如下:

chmod u [+ | - | =] [mode] 目录名

操作符如下:

操作符如下:

+:添加某个权限;
-:取消某个权限;
=:赋予给定权限并取消其他所有权限。
mode参数如下:

r 可读;
w 可写;
x 可执行。
案例演示一:

将目录testDir的所有者权限设置为可读可写可执行,可以使用如下命令:

chmod u=rwx testDir
在这里插入图片描述

[请在右侧“命令行”里直接体验]

案例演示二:

将目录testDir的所有者权限添加可执行权限,同时递归的将该目录下的所有文件或目录都添加可执行权限,可以使用如下命令:

chmod -R u+x testDir
在这里插入图片描述

[请在右侧“命令行”里直接体验]

Linux修改同组用户权限
Linux修改同组用户权限的方法与修改所有者的权限大致一样,唯一不同的点是修改同组用户权限采用chmod g而不是采用chmod u。

案例演示一:

将目录testDir的同组其他用户权限设置为可读可写可执行,可以使用如下命令:

chmod g=rwx testDir
在这里插入图片描述

[请在右侧“命令行”里直接体验]

案例演示二:

将目录testDir的同组其他用户权限添加可执行权限,同时递归的将该目录下的所有文件或目录都添加可执行权限,可以使用如下命令:

chmod -R g+x testDir
在这里插入图片描述

[请在右侧“命令行”里直接体验]

Linux修改其他用户权限
Linux修改其他组用户权限的方法与修改所有者的权限大致一样,唯一不同的点是修改其他组用户权限采用chmod o而不是采用chmod u。

案例演示一:

将目录testDir的其他组用户权限设置为可读可写可执行,可以使用如下命令:

chmod o=rwx testDir
在这里插入图片描述

[请在右侧“命令行”里直接体验]

案例演示二:

将目录testDir的其他组用户权限添加可执行权限,同时递归的将该目录下的所有文件或目录都添加可执行权限,可以使用如下命令:

chmod -R o+x testDir
在这里插入图片描述

[请在右侧“命令行”里直接体验]

编程要求
根据右侧窗口命令行内的提示,在Begin - End区域内进行命令行语句补充,具体任务如下:

将系统已存在目录oldDir1的所有者权限设置为可执行;
为系统已存在目录oldDir2的同组用户权限删除可写权限;
为系统已存在目录oldDir3的其他组用户权限添加可执行权限;
将系统已存在目录oldDir4的权限设置所有者权限为可读,同组用户权限为可写,其他用户权限为可执行;
将系统已存在目录oldDir5的权限设置所有者权限为可读,同组用户权限为可写,其他用户权限为可执行,同时将该目录下的所有子目录或文件权限一并处理。

#在以下部分写出完成任务的命令
#***********begin*************#
chmod u=x oldDir1
chmod g-w oldDir2
chmod o+x oldDir3
chmod 421 oldDir4
chmod -R 421 oldDir5
#************end**************#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

第3关:Linux修改文件/目录所有者
任务描述
通过本关的学习,我们学会修改一个文件/目录的所有者信息,假设文件File是由用户A创建,通过本关学习,我们将学会如何将文件File的所有者从用户A修改到用户B。

本关任务:对Linux系统已存在文件和目录的所有者进行修改。

相关知识
Linux系统中的每个文件/目录皆有其拥有者(Owner)。我们知道只有用户登录到系统后才可以在系统上创建文件或目录,而文件/目录的所有者即是创建该文件/目录的用户。

当用ls -l或ll命令显示文件的详细信息时,第三列数据表示该文件的所有者。例如显示test文件所有者信息:
在这里插入图片描述

[请在右侧“命令行”里直接体验]

可以看到test文件的所有者是fzm,因为test文件是由fzm用户所创建。

Linux修改文件所有者命令
Linux中使用chown命令来修改文件所有者。

具体命令如下:

chown 用户名/用户ID 文件名

执行权限:

chown必须以root权限才能执行,如果是普通用户想执行chown时,需要在命令前加sudo命令来提升权限为root权限。

案例演示一:

首先创建一个新用户newUser,然后将系统中已存在的文件testFile的所有者设置为newUser,可以使用如下命令:

sudo useradd newUser
sudo chown newUser testFile
在这里插入图片描述

[请在右侧“命令行”里直接体验]

案例演示二:

首先查看用户fzm的ID是多少,然后将系统中已存在的文件testFile的所有者设置为fzm,可以使用如下命令:

id fzm
sudo chown 1000 testFile
在这里插入图片描述

[请在右侧“命令行”里直接体验]

Linux修改目录所有者命令
Linux中使用chown命令来修改目录所有者。

具体命令如下:

chown 参数 用户名/用户ID 目录名

常见命令参数:

-R或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
–help:在线帮助;
执行权限

chown必须以root权限才能执行,如果是普通用户想执行chown时,需要在命令前加sudo命令来提升权限为root权限。

案例演示一:

将系统中已存在的目录testDir的所有者设置为newUser,可以使用如下命令:

sudo chown newUser testDir
在这里插入图片描述

[请在右侧“命令行”里直接体验]

可以使用ls -l或ll命令查看目录所有者是否修改成功。
在这里插入图片描述

[请在右侧“命令行”里直接体验]

案例演示二:

将系统中已存在的目录Dir以及其所有子目录和子文件的所有者设置为newUser,可以使用如下命令:

sudo chown -R newUser Dir
在这里插入图片描述

[请在右侧“命令行”里直接体验]

可以看到Dir目录下的所有子目录和子文件的所有者都已经修改成了newUser。

编程要求
根据右侧窗口命令行内的提示,在Begin - End区域内进行命令行语句补充,具体任务如下:

将系统已存在文件oldFile的所有者设置为oldUser;
将系统已存在目录oldDir1的所有者设置为oldUser;
将系统已存在目录oldDir2以及其所有子目录和子文件的所有者设置为oldUser。

#在以下部分写出完成任务的命令
#***********begin*************#
chown oldUser oldFile
chown oldUser oldDir1
chown -R oldUser oldDir2
#************end**************#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

第4关:Linux文件/目录所属组修改
任务描述
通过本关的学习,我们学会修改一个文件/目录的所属组信息,假设文件File是由组A创建,通过本关学习,我们将学会如何将文件File的所属组从组A修改到组B。

本关任务:对Linux系统已存在文件和目录的所属组进行修改。

相关知识
Linux系统中的每个文件/目录皆有其所属组。默认在创建文件和目录的时候,将其所有者所在的所属组作为新创建文件或目录的所属组。

当用ls -l或ll命令显示文件的详细信息时,第四列数据表示该文件的所有者。例如显示test文件所有者信息:
在这里插入图片描述

[请在右侧“命令行”里直接体验]

可以看到test文件的所属组是fzm,因为test文件是由fzm用户所创建,而fzm用户创建test文件的时候其所属组是fzm。

Linux修改文件所属组命令
Linux中使用chgrp命令来修改文件所属组。

具体命令如下:

chgrp 用户组名/组ID 文件名

执行权限

chgrp必须以root权限才能执行,如果是普通用户想执行chgrp时,需要在命令前加sudo命令来提升权限为root权限。

案例演示一:

首先创建一个新用户组newGroup,然后将系统中已存在的文件testFile的所属组设置为newGroup,可以使用如下命令:

sudo groupadd newGroup
sudo chgrp newGroup testFile
在这里插入图片描述

[请在右侧“命令行”里直接体验]

案例演示二:

首先通过/etc/group查看用户组fzm的ID是多少,然后将系统中已存在的文件testFile的所属组设置为fzm,可以使用如下命令:

cat /etc/group | grep fzm
sudo chgrp 1000 testFile
在这里插入图片描述

[请在右侧“命令行”里直接体验]

linux中也可以使用chown命令来修改文件的所属组。

具体命令如下:

chown:用户组名/组ID 文件名

如果用户想使用chown命令同时修改所有者和所属组信息,则可以使用如下:

chown 用户名/用户名ID:用户组名/组ID 文件名

执行权限

chgrp必须以root权限才能执行,如果是普通用户想执行chgrp时,需要在命令前加sudo命令来提升权限为root权限。

案例演示一:

使用chown命令将系统已存在的文件testFile的所属组设置newGroup,可以使用如下命令:

sudo chown :newGroup testFile
在这里插入图片描述

[请在右侧“命令行”里直接体验]

案例演示二:

使用chown命令将系统已存在的文件testFile的所有者设置为newUser所属组设置为fzm,可以使用如下命令:

sudo chown newUser:fzm testFile
在这里插入图片描述

[请在右侧“命令行”里直接体验]

Linux修改目录所属组命令
Linux中使用chgrp命令来修改目录所属组。

具体命令如下:

chgrp 参数 用户组名/组ID 目录名

常见命令参数:

-R或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
–help:在线帮助;
执行权限

执行权限

chgrp必须以root权限才能执行,如果是普通用户想执行chgrp时,需要在命令前加sudo命令来提升权限为root权限。

案例演示一:

将系统中已存在的目录testDir的所属组设置为newGroup,可以使用如下命令:

sudo chgrp newGroup testDir
在这里插入图片描述

[请在右侧“命令行”里直接体验]

案例演示二:

将系统中已存在的目录Dir以及其所有子目录和子文件的所属组设置为newGroup,可以使用如下命令:

sudo chgrp -R newGroup Dir
在这里插入图片描述

[请在右侧“命令行”里直接体验]

linux中也可以使用chown命令来修改目录的所属组,其使用方法与修改文件的使用方法一致。

案例演示一:

使用chown命令将系统已存在的文件Dir以及其所有子目录和子文件的所有者设置为fzm所属组设置为fzm,可以使用如下命令:

sudo chown -R fzm:fzm Dir
在这里插入图片描述

[请在右侧“命令行”里直接体验]

编程要求
根据右侧窗口命令行内的提示,在Begin - End区域内进行命令行语句补充,具体任务如下:

将系统已存在文件oldFile的所属组设置为oldGroup;
将系统已存在目录oldDir1的所属组设置为oldGroup;
将系统已存在目录oldDir2以及其所有子目录和子文件的所属组设置为oldGroup。

#在以下部分写出完成任务的命令
#***********begin*************#
chgrp oldGroup oldFile
chgrp oldGroup oldDir1
chgrp -R oldGroup oldDir2
#************end**************#

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Linux之用户管理

第1关:创建/删除新用户
任务描述
恭喜你已经完成了Linux入门的实训,接下来让我们一起来学习Linux中用户的管理,本关主要讲解如何在Linux中创建和删除用户。

本关的任务是新创建一个用户,并将一个已经存在的用户删除掉。

相关知识
为了完成本关任务,你需要掌握如下知识:

Linux创建用户命令
Linux删除用户命令
Linux创建用户命令
Linux中使用useradd命令来创建一个新用户。

命令格式格式:useradd [命令参数] 参数

常见命令参数:

-d<登入目录>:指定用户登入时的启始目录;
-D:查看或变更预设值;
-g<群组>:指定用户所属的群组;
-m:自动建立用户的登入目录;
-M:不要自动建立用户的登入目录;
-s:指定用户登入后所使用的shell。
useradd必须以root权限才能执行,如果是普通用户想创建一个新用户时,需要在命令前加sudo命令来提升权限为root权限。

案例演示
1 . 查看useradd系统默认属性值,使用命令useradd -D。

笔者使用的系统是Ubuntu16.04,useradd系统默认值如下所示:
在这里插入图片描述

参数 说明
GROUP 指新创建的用户将被添加到用户组ID为100的公共用户组中
HOME 指新创建的用户将在/home目录下创建一个HOME账户
INACTIVE 指当密码逾期时,用户将不会被禁用
EXPIRE 指新创建的用户不会在设定日期被设置为逾期
SHELL 指新创建的用户使用/bin/sh(也就是bash)作为默认shell
SKEL 指系统会将/etc/skel目录中的内容复制到新创建的用户的HOME目录
CREATE_MAIL_SPOOL 指系统不会在邮件目录中创建一个文件用于新创建用户账户接受邮件
2 . 使用useradd命令新创建一个用户test,并且自动建立用户的登入目录。
在这里插入图片描述

在背景介绍中,我们了解到,Linux中用户信息是保存在/etc/passwd文件中,我们可以使用命令tail /etc/passwd命令查看/etc/passwd文件最后10行中是否存在刚刚新创建的test用户信息。
在这里插入图片描述

Linux删除用户命令
Linux中使用userdel命令来删除一个已经存在的用户。

命令格式:userdel [命令参数] 参数

常见命令参数:

-f:强制删除用户,即使用户当前已登录;
-r:删除用户的同时,删除与用户相关的所有文件。
userdel必须以root权限才能执行,如果是普通用户想使用该命令时,需要在命令前加sudo命令来提升权限为root权限。

案例演示
1 . 使用userdel命令删除一个已经存在的用户test,并且自动删除其家目录文件。
在这里插入图片描述

因为系统默认是不会给新创建的用户自动创建一个文件夹用于用户账户接收邮件,所以在使用userdel -r命令删除的时候会提醒/var/mail/test文件夹不存在。

编程要求
根据右侧窗口命令行内的提示,在Begin - End区域内进行代码补充,具体任务如下:

新创建一个用户newUser,并自动创建其登录目录;
删除系统已经存在的用户oldUser,并自动删除其关联的登录目录;
将当前工作目录切换到新创建的用户newUser家目录;
使用pwd命令打印出当前工作目录。
注意:本平台执行环境默认以root账户登录,所以执行的所有命令都是以root权限执行。

#在以下部分写出完成任务的命令
#***********begin*************#
useradd -m newUser
userdel -r oldUser
cd /home/newUser
pwd
#************end**************#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

第2关:Linux 用户密码管理
任务描述
恭喜你已经完成了第一关的挑战,现在你已经学会了如何创建一个新用户和删除一个已经存在的用户,接下来,我们一起学习为新创建的用户设置登录密码。

本关的任务是新创建一个用户,并设置登录密码。

相关知识
通过本关学习,你将掌握如下知识点:

Linux中用户登录密码存放地以及方式
怎么使用passwd命令修改用户密码
怎么使用chpasswd命令修改用户密码
用户密码存放地及方式
Linux中用户的登录密码是存放在/etc/shadow文件中,/etc/shadow文件中存放的是加密过后的密码,所以在/etc/shadow文件中看到的密码是加密过后的密文。

看下笔者的电脑中/etc/shadow文件存放的内容格式。
在这里插入图片描述

可以看到第一个冒号前是用户名,用户名是以明文的方式存放。

在第一个冒号和第二个冒号之间存放的是加密过后的密码,密码是以密文的方式存放,其中密文是由用户密码和其它信息加密后组成的,这里不做详细讲解,我们只需要知道如果第一个冒号和第二个冒号之间是*或者!或者空,则表示该用户没有密码,否则,则表示该用户是有密码。

例如:用户名fzm是存在密码,而mysql是不存在密码的。

使用passwd命令修改用户密码
命令格式:passwd [命令参数] 参数

常见命令参数:

-d 删除密码;
-l 停止账号使用;
-S 显示密码信息。
passwd必须以root权限才能执行,如果是普通用户想执行passwd时,需要在命令前加sudo命令来提升权限为root权限。

案例演示
1: 使用useradd命令来新创建一个用户,使用passwd命令来设置登录密码。
在这里插入图片描述

使用useradd命令创建一个新用户(test),此时test用户是没有密码的,所以使用tail -n 1 /etc/shadow命令查看/etc/shadow文件的最后一行可以看出test用户密码部分为!。

使用passwd命令为test用户设置密码时,可以看到需要输入两次密码,目的是为了确保两次输入的密码一致。当设置完密码后,可以看到/etc/shadow文件中test用户的密码部分已经为加密过后的密文。

2: 使用passwd命令来清除用户的密码。
在这里插入图片描述

使用passwd命令清除用户test的登录密码,使用tail -n 1 /etc/shadow命令查看/etc/shadow文件的最后一行可以看出test用户密码部分为空,此时test用户是没有密码的。

使用chpasswd命令修改用户密码
chpasswd命令通常是用于批量修改用户密码,从标准输入批量读取成对的用户名和密码,其中输入的用户名和密码的格式为 用户名:密码 。

例如要批量更新用户密码,将用户名和密码写入到一个文件中,格式如下所示:
在这里插入图片描述

然后执行执行如下命令来更新密码:

sudo chpasswd < batch.txt

<符号表示输入重定向,接下来的实训中我们会详细的介绍。

命令格式:chpasswd [命令参数] 参数

常见命令参数

-e:输入的密码是加密后的密文;
-h:显示帮助信息并退出。
chpasswd必须以root权限才能执行,如果是普通用户执行时,需要在命令前加sudo命令来提升权限为root权限。

案例演示
1: 使用chpasswd命令来更新用户登录密码。
在这里插入图片描述

chpasswd是从键盘不断的读入指令,我们可以使用Ctrl+D组合键来结束键盘输入。

编程要求
根据右侧窗口命令行内的提示,在Begin - End区域内进行命令行语句补充,具体任务如下:

新创建一个用户newUser;
使用passwd命令为用户newUser设置登录密码;
注意:本平台执行环境默认以root账户登录,所以执行的所有命令都是以root权限执行。

#创建newUser新用户
#***********begin*************#
useradd  newUser
#************end**************#

#在符号<<前输入设置用户密码的命令(命令与<< EOF保持在同一行), 密码输入在下一行,确认密码输入在下下行
#例如:
#command << EOF
#password
#password
#EOF
#***********begin*************#
passwd newUser << EOF
123456
123456
EOF

#************end**************#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

第3关:Linux用户权限切换
任务描述
恭喜你已经顺利的通过了前两关的挑战,现在你已经学会了如何创建一个新用户和删除一个已经存在的用户,以及如何修改一个用户的登录密码,接下来,我们一起学习不同用户之间的切换。Linux系统运行多个用户同时登录系统,也运行多个用户间的进行切换。Linux中使用whoami命令来查看当前登录系统的用户名。

本关的任务是新创建一个用户,并设置其登录密码,然后登录新创建的用户。

相关知识
通过本关学习,你将掌握如下知识点:Linux用户登陆的三种方式

图形化界面登录
Linux中添加用户后,用户在图形界面登录系统的方式和Windows一样,都是选择要登录的用户后直接输入登录密码即可。

案例演示
1: 添加一个新用户,并且设置登录密码,然后在图形界面登录。
在这里插入图片描述在这里插入图片描述

使用login命令登录
login命令是让用户登录系统,可通过它的功能随时更换登入身份。当/etc目录里含名称为nologin的文件时,系统只允许root帐号登入系统,其他用户一律不准登入。

当使用login命令登录系统后,可以使用logout命令或者exit命令来退出当前用户登录,返回到登录前的用户状态。

命令格式:login [命令参数] 参数

参数为登录的用户名,可以不输入登录的用户名,直接输入login命令后回车,然后根据提示再输入用户名和密码。

常见命令参数

-p:告诉login指令不销毁环境变量;
-h:指定远程服务器的主机名。
login必须以root权限才能执行,如果是普通用户执行时,需要在命令前加sudo命令来提升权限为root权限。

案例演示
1: 使用login命令来登录系统(文件/etc/nologin不存在)。

首先查看当前登录的用户名是fzm。
在这里插入图片描述

使用newUser用户来登录系统,然后查看当前登录的用户名。
在这里插入图片描述

使用logout或者exit命令退出newUser用户,然后在查看当前登录用户是否为fzm。
在这里插入图片描述

2: 使用login命令来登录系统(文件/etc/nologin存在)。

首先查看当前登录的用户名是fzm。
在这里插入图片描述

在/etc目录下新创建一个nologin文件,使用如下命令创建:

sudo touch /etc/nologin

使用普通用户newUser来登录系统,查看是否可以登录成功。
在这里插入图片描述

发现使用newUser用户是无法登录系统的,只有使用root用户才能登录系统。

使用su命令切换用户身份
su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号的密码。

当使用su命令切换用户后,使用exit命令退出当前身份,返回原有登录用户身份。

注:如果当前用户身份是root,则使用su命令切换到其他用户的时候不需要相应用户的密码

命令格式:su [命令参数] 参数

参数为登录的用户名,如果没有参数,则默认切换为root用户。

常见命令参数

-c<指令>或–command=<指令>:执行完指定的指令后,即恢复原来的身份;
-l或–login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量;
-m,-p或–preserve-environment:变更身份时,不要变更环境变量;
-s或–shell=:指定要执行的shell。
su命令所有使用者都可以执行。

案例演示
1: 使用su命令切换当前用户身份(不改变当前工作目录)。

首先查看当前登录的用户名是fzm,当前工作目录是/home/fzm。
在这里插入图片描述

切换当前用户为newUser用户,然后查看当前用户身份和当前工作目录。
在这里插入图片描述

使用exit命令退出newUser用户,然后在查看当前登录用户身份和当前工作目录。
在这里插入图片描述

2: 使用su命令切换当前用户身份(改变当前工作目录)。

首先查看当前登录的用户名是fzm,当前工作目录是/home/fzm。
在这里插入图片描述

切换当前用户为newUser用户,然后查看当前用户身份和当前工作目录。
在这里插入图片描述

使用exit命令退出newUser用户,然后在查看当前登录用户身份和当前工作目录。
在这里插入图片描述

编程要求
根据右侧窗口命令行内的提示,在Begin - End区域内进行命令行语句补充,具体任务如下:

新创建一个用户newUser,并且设置登录密码;
使用su命令切换当前用户身份为newUser,并且执行whoami指令,然后恢复原来的身份。
注意:本平台执行环境默认以root账户登录,所以执行的所有命令都是以root权限执行。

#创建newUser新用户
#***********begin*************#
useradd -m newUser
#************end**************#

#在符号<<前输入设置用户密码的命令(命令与<< EOF保持在同一行), 密码输入在下一行,确认密码输入在下下行
#例如:
#command << EOF
#password
#password
#EOF
#***********begin*************#
passwd newUser << EOF
123456
123456
EOF
#************end**************#

#使用su命令切换当前用户身份为newUser,并且执行whoami指令,然后恢复原来的身份;
#提示使用su命令的-c参数完成
#***********begin*************#
su -c whoami newUser
exit
#************end**************#

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/319426
推荐阅读
相关标签
  

闽ICP备14008679号