Linux 题目(educoder)
第1关:linux知识训练-硬件与软件安装1、在Linux中第一块IDE磁盘的名字为(/dev/sda)。2、当使用mount进行存储设备或者文件系统挂载的时候,需要用到的设备名称位于( /dev)目录下。3、将一块硬盘(hdc)安装到文件系统的/mnt/hdc子目录下的命令是(mount -t ext4 /dev/hdc/mnt/hdc )。4、已知/dev/sdb2设备挂载在/mnt文件夹中,
目录
概述
此为太理大二edu中Linux部分题目(全部)过段时间把学习通中Linux题目总结整理出,小何爆肝两万字,希望有用!也希望对大家有帮助!
第1关:linux知识训练-硬件与软件安装
1、在Linux中第一块IDE磁盘的名字为(/dev/sda )。
2、当使用mount进行存储设备或者文件系统挂载的时候,需要用到的设备名称位于( /dev )目录下。
3、将一块硬盘(hdc)安装到文件系统的/mnt/hdc子目录下的命令是( mount -t ext4 /dev/hdc /mnt/hdc )。
4、已知/dev/sdb2设备挂载在/mnt文件夹中,卸载该设备的方法是( umount /mnt )。
5、欲查询 bind 套件是否有安装,可用下列那一指令(rpm -q bind).
第2关:linux知识训练-账户进程与权限
1、Passwd文件用于存放系统的用户账号信息,该文件位于( /etc/shadow ),文件中的每一行代表一个用户。
2、root所属的组的GID为( 0 )。
3、如果不想退出普通用户,重新用root用户登录,就必须使用( su )命令切换到root
4、( ps )命令是linux系统标准的进程查看工具,通过它可查看系统中进程的详细信息
5、下面的命令中哪个是用来停止系统中的进程( kill )
6、修改密码的命令是( passwd )
7、增加用户的命令是( useradd )
8、下列选项中,哪个不属于操作权限保护的内容( 删除 )
9、权限741为rwxr----x,那么权限652是( rw-r-x-w- )
10、系统中有用户user1和user2,主组同属于users组。在user1用户目录下有一文件file1,该文件拥有644的权限,如果想让user2用户也能够修改user1用户目录下的file1文件,应将该文件的权限设置为( 664 )
第3关:linux知识训练-文件与目录
1、CentOS 7根分区的文件系统类型是(ext4 )
2、符号链接相当于Windows系统中的( 快捷方式 )
3、设超级用户当前所在目录为:/usr/local,键入cd ~命令后,该用户当前所在目录为( /root )
4、已知某用户stud1,其用户主目录为/home/stud1。如果当前目录为/home,进入以下子目录/home/stud1/test的命令是:( cd stud1/test )
5、可以为文件或目录重命名的是( mv )命令
6、下面哪条命令可以把f1.txt复制为f2.txt?( cat f1.txt > f2.txt )
7、在Linux中,目录( /dev )主要用于存放设备文件
8、创建目录myhome的命令是( mkdir myhome )
9、若要删除/usr/jobtest目录及其下的子目录和文件,以下操作正确的是( rm -r /usr/jobtest )。
10、以下文件中表示Linux隐藏文件的是( .file1 )
第4关:linux知识训练-shell基础
1、shell也是一种( 程序设计语言 )
2、Linux默认的Shell版本是( bash )
3、shell输入的命令不完整时,可以通过按( Tab )键来完成命令的自动补齐
4、在Linux下表示输出重定向的符号是( > )
5、显示当前路径的shell命令是( pwd )
第5关:Linux操作系统知识训练-概述
1、以下哪个不属于操作系统( Oracle )
2、第一个企业版的Linux是哪一个( RedHat )
3、GPL计划是指( 通用公共许可证 )
4、UNIX操作系统目前已经成为大型系统的主流操作系统,以下( 单任务 )不是UNIX的特点
5、有一个Linux2.5.1其中5是( 次版本号 )
第6关:Linux 文件/目录管理
任务一:Linux之文件创建/删除
相关知识
Linux
几乎大多数工作都可以在命令行下完成,除非要运行图形化工具。Linux bash shell
提供了许多命令,例如:在命令行下可以轻松的完成文件的创建和删除。
本关将介绍如何在Linux
命令行下创建文件和删除文件。
Linux创建文件
Linux
中使用touch
命令来创建一个空文件。
具体命令如下:touch 文件名
具体说明:
-
如果一次想创建多个文件,则每个文件名用空格隔开。
-
touch
命令创建一个指定的新文件,并将当前登录用户作为文件所有者。 -
由于
touch
命令创建的文件为空,所以文件的大小为0。 -
touch
命令还可以用于更改文件的访问时间和修改时间,而不改变文件的内容。
应用示例一:
在Linux
系统命令行下创建一个新的文件,文件名为:newFile
,则可以使用如下命令:
touch newFile
[请在右侧“命令行”里直接体验]
使用ls
命令来查看文件是否创建成功。
应用示例二:
在Linux
系统命令行下一次创建2
个文件,文件名分别为:newFile1
和newFile2
,则可以使用如下命令:
touch newFile1 newFile2
[请在右侧“命令行”里直接体验]
使用ls
命令来查看文件是否创建成功。
Linux删除文件
Linux
中使用rm
命令来删除一个已经存在的文件。
具体命令如下:rm 参数 文件名
常用参数如下:
- -f:强制删除文件或目录;
- -i:删除已有文件或目录之前先询问用户;
- -r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;-i:删除已有文件或目录之前先询问用户。
具体说明:
-
如果一次想删除多个文件,则每个文件名用空格隔开。
-
rm
命令可以使用通配符来删除文件。
应用示例一:
在Linux
系统命令行下删除一个文件,文件名为:newFile
,则可以使用如下命令:
rm newFile
[请在右侧“命令行”里直接体验]
使用ls
命令来查看文件是否删除成功。
应用示例2:
在Linux
系统命令行下一次删除2
个文件,文件名分别为:newFile1
和newFile2
,则可以使用如下命令:
rm newFile1 newFile2
[请在右侧“命令行”里直接体验]
使用ls
命令来查看文件是否删除成功。
应用示例三:
在Linux
系统命令行下删除一个文件同时删除前询问用户,文件名分别为:newFile
,则可以使用如下命令:
rm -i newFile
[请在右侧“命令行”里直接体验]
使用ls
命令来查看文件是否删除成功。
编程要求
本关的编程任务是补全右侧代码片段中Begin
至End
中间的代码,具体要求如下:
- 新创建两个文件空文件
file1
和file2
。 - 删除系统已存在的两个文件
oldFile1
和oldFile2
。
#!/bin/bash
#在以下部分写出完成任务的命令
#***********begin*************#
touch file1 file2 #touch 来创建空文件,创建两个中间用空格分开
rm oldFile1 oldFile2 #rm 来删除文件,删除两个中间用空格分开
#************end**************#
任务二:Linux之目录创建/删除
相关知识
本关将介绍如何在Linux
命令行下创建目录和删除目录。
Linux创建目录
Linux
中使用mkdir
命令来创建一个空目录。
具体命令如下:mkdir 参数 目录名
常用参数如下:
-p或--parents
:若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录。
具体说明:
-
如果一次想创建多个目录,则每个目录名用空格隔开。
-
mkdir
命令创建一个指定的目录,并将当前登录用户作为目录所有者。 -
mkdir
命令创建一个空目录后,该目录下只存在两个特殊的目录,分别是.
和..
。
应用示例一:
在Linux
系统命令行下创建一个新的目录,目录名为:newDir
,则可以使用如下命令:
mkdir newDir
[请在右侧“命令行”里直接体验]
使用ls
命令来查看目录是否创建成功。
应用示例二:
在Linux
系统命令行下一次创建2
个目录,目录名分别为:newDir1
和newDir2
,则可以使用如下命令:
mkdir newDir1 newDir2
[请在右侧“命令行”里直接体验]
使用ls
命令来查看目录是否创建成功。
应用示例三:
在Linux
系统命令行下创建一个目录如果上层目录目前尚未建立则一并将其创建,目录名分别为:Dir1/Dir2
,则可以使用如下命令:
mkdir -p Dir1/Dir2
[请在右侧“命令行”里直接体验]
首先查看Dir1
目录是否存在,如果不存在直接创建Dir1/Dir2
,使用ls
命令查看目录是否创建成功。
Linux删除目录
Linux
中使用rmdir
命令来删除一个已经存在的空目录。
具体命令如下:rmdir 参数 目录名
常用参数如下:
-p或--parents
:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;
具体说明:
-
如果一次想删除多个空目录,则每个目录名用空格隔开。
-
rmdir
命令可以使用通配符来删除目录。
如果想删除的目录不为空,则先使用rm
命令将目录下的所有文件都清空,然后再使用rmdir
将目录删除,或者直接使用rm -r
命令直接递归的删除整个目录。
应用示例一:
在Linux
系统命令行下删除一个空目录,目录名为:newDir
,则可以使用如下命令:
rmdir newDir
[请在右侧“命令行”里直接体验]
使用ls
命令来查看目录是否删除成功。
应用示例二:
在Linux
系统命令行下一次删除2
个空目录,目录名分别为:newDir1
和newDir2
,则可以使用如下命令:
rmdir newDir1 newDir2
[请在右侧“命令行”里直接体验]
使用ls
命令来查看目录是否删除成功。
应用示例三:
在Linux
系统命令行下删除一个目录如果上层目录为空则一并将其删除,目录名分别为:Dir1/Dir2
,则可以使用如下命令:
rmdir -p Dir1/Dir2
[请在右侧“命令行”里直接体验]
使用ls
命令来查看目录是否删除成4。
应用示例四:
在Linux
系统命令行下删除一个不为空的目录,则可以使用如下命令:
rm -r Dir
[请在右侧“命令行”里直接体验]
使用ls
命令来查看目录是否删除成功。
编程要求
本关的编程任务是补全右侧代码片段中Begin
至End
中间的代码,具体要求如下:
- 新创建两个空目录
newDir1
和newDir2
。 - 删除系统已存在的两个目录
oldDir1
和oldDir2
,其中oldDir1
目录为空、oldDir2
目录不为空。
#!/bin/bash
#在以下部分写出完成任务的命令
#***********begin*************#
#mkdir 是目录 touch 是文件
mkdir newDir1 newDir2 #mkdir 来创建目录,创建两个中间用空格分开
rmdir oldDir1 #rmdir 来删除空目录
rm -r oldDir2 #rm -r 来删除非空目录
#************end**************#
任务三:Linux之文件复制/重命名
相关知识
本关将介绍如何在Linux
命令行下对文件拷贝和重命名。
Linux拷贝文件
Linux
中使用cp
命令将一个或多个源文件复制到指定的目的目录下。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。
具体命令如下:cp 参数 源文件 目的目录
常用参数如下:
- -f:强行复制文件或目录,不论目标文件或目录是否已存在;
- -i:覆盖既有文件之前先询问用户;
- -p:保留源文件或目录的属性。
具体说明:
-
cp
命令支持同时复制多个文件,当一次复制多个文件时,目的目录参数必须是一个已经存在的目录,否则将出现错误; -
cp
命令支持同时复制多个文件,当一次复制多个文件时,多个文件用空格分隔。
应用示例一:
将当前目录下的一个文件拷贝到一个指定的目录下,文件名为:newFile
,目录名为:newDir
,则可以使用如下命令:
cp newFile newDir
[请在右侧“命令行”里直接体验]
使用ls
命令来查看文件是否拷贝成功。
应用示例二:
将当前目录下的一个文件拷贝到一个指定的目录下并重命名为newFileCpy
,文件名为:newFile
,目录名为:newDir
,则可以使用如下命令:
cp newFile newDir/newFileCpy
[请在右侧“命令行”里直接体验]
使用ls
命令来查看文件是否拷贝成功。
应用示例三:
将当前目录下的两个文件拷贝到一个指定的目录下,文件名为:newFile1
和newFile2
,目录名为:newDir1
,则可以使用如下命令:
cp newFile1 newFile2 newDir1
[请在右侧“命令行”里直接体验]
使用ls
命令来查看文件是否拷贝成功。
Linux重命名文件
Linux
中使用mv
命令来重命名一个文件名。
mv
命令还可以用来移动文件,类似于Windows
上的剪切功能。
具体命令如下:mv 参数 目录名
常用参数如下:
- -f:若目标文件与现有的文件重复,则直接覆盖现有的文件;
- -i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。
具体说明:
-
如果一次想移动多个文件,则每个文件名用空格隔开;
-
mv
命令可以使用通配符来移动目录。
应用示例一:
将当前目录下的文件newFile
重命名为newFileRename
,则可以使用如下命令:
mv newFile newFileRename
[请在右侧“命令行”里直接体验]
使用ls
命令来查看文件是否重命名成功。
应用示例二:
将当前目录下的文件newFileRename
移动到一个指定的目录下,目录名为:Dir
,则可以使用如下命令:
mv newFileRename Dir
[请在右侧“命令行”里直接体验]
使用ls
命令来查看文件是否移动成功。
应用示例三:
将当前目录下的文件newFileRename
移动到一个指定的目录下并重命名为newFile
,目录名为:Dir
,则可以使用如下命令:
mv newFileRename Dir/newFile
[请在右侧“命令行”里直接体验]
使用ls
命令来查看文件是否移动和重命名成功。
编程要求
本关的编程任务是补全右侧代码片段中Begin
至End
中间的代码,具体要求如下:
- 将当前目录下的文件
file1
和file2
拷贝到目录Dir
下; - 将当前目录下的文件
file1
拷贝到目录Dir
下并重命名为file1Cpy
; - 将当前目录下的文件
file3
和file4
移动到目录Dir
下; - 将当前目录下的文件
file5
重命名为file6
。
#!/bin/bash
#在以下部分写出完成任务的命令
#***********begin*************#
cp file1 file2 Dir #cp 把两个文件复制到指定目录下 中间用空格分开
cp file1 Dir/file1Cpy # 把文件复制到指定目录下,后加左下划线可以把该文件改名
mv file3 file4 Dir #mv 把两个文件移动到指定目录下 中间用空格分开
mv file5 file6 # mv 来把文件改名
#************end**************#
任务四:Linux之目录复制/重命令
相关知识
本关将介绍如何在Linux
命令行下对目录拷贝和重命名。
Linux拷贝目录
Linux
中使用cp -r
命令将一个或多个源目录复制到指定的目录下。它可以将单个源目录复制成一个指定目录名的具体的目录或一个已经存在的目录下。
具体命令如下:cp 参数 源目录 目的目录
常用参数如下:
- -r 是递归把源目录下的目录递归进行移动;
- -f:强行复制文件或目录,不论目标文件或目录是否已存在;
- -i:覆盖既有文件之前先询问用户;
- -p:保留源文件或目录的属性;
具体说明:
-
cp
命令支持同时复制多个目录,当一次复制多个目录时,目的目录参数必须是一个已经存在的目录,否则将出现错误; -
cp
命令支持同时复制多个目录,当一次复制多个目录时,多个目录名用空格分隔; -
cp
命令拷贝目录和拷贝文件大致用法相似,最大差别就是拷贝目录的时候必须加上-r
参数,而拷贝文件的时候不需要加-r
参数。
应用示例一:
将当前目录下的一个目录拷贝到指定的目录下,被拷贝目录名为:Dir1
,指定目录名为:Dir2
,则可以使用如下命令:
cp -r Dir1 Dir2
[请在右侧“命令行”里直接体验]
使用ls
命令来查看目录是否拷贝成功。
应用示例二:
将当前目录下的一个目录拷贝到一个指定的目录下并重命名为Dir1Cpy
,被拷贝目录名为:Dir1
,指定目录名为:Dir2
,则可以使用如下命令:
cp -r Dir1 Dir2/Dir1Cpy
[请在右侧“命令行”里直接体验]
使用ls
命令来查看目录是否拷贝成功。
应用示例三:
将当前目录下的两个目录拷贝到一个指定的目录下,被拷贝目录名为:Dir1
和Dir2
,指定目录名为:Dir3
,则可以使用如下命令:
cp -r Dir1 Dir2 Dir3
[请在右侧“命令行”里直接体验]
使用ls
命令来查看目录是否拷贝成功。
Linux重命名目录
Linux
中使用mv
命令来重命名一个目录名。
mv
命令还可以用来移动目录,类似于Windows
上的剪切功能。
具体命令如下:mv 参数 源目录 目的目录
常用参数如下:
- -f:若目标目录与现有的目录重复,则直接合并现有的目录;
- -i:交互式操作,覆盖前先行询问用户,如果源目录与目标目录同名,则询问用户是否合并目标目录。用户输入”y”,表示将合并目标目录;输入”n”,表示取消对源目录的移动。这样可以避免误将目录覆盖。
具体说明:
-
如果一次想移动多个目录,则每个目录名用空格隔开。
-
mv
命令可以使用通配符来移动目录。 -
mv
命令移动目录和移动文件的使用大致一样,唯一不同的是如果出现源目录和目标目录重名,则采用合并的方式,而对于文件则是直接覆盖。
应用示例一:
将当前目录下的目录newDir
重命名为newDirCpy
,则可以使用如下命令:
mv newDir newDirCpy
[请在右侧“命令行”里直接体验]
使用ls
命令来查看目录是否重命名成功。
应用示例二:
将当前目录下的目录newDirCpy
移动到一个指定的目录下,指定目录名为:Dir
,则可以使用如下命令:
mv newDirCpy Dir
[请在右侧“命令行”里直接体验]
使用ls
命令来查看目录是否移动成功。
应用示例三:
将当前目录下的目录newDirCpy
移动到一个指定的目录下并重命名为newDir
,指定目录名为:Dir
,则可以使用如下命令:
mv newDirCpy Dir/newDir
[请在右侧“命令行”里直接体验]
使用ls
命令来查看目录是否移动和重命名成功。
编程要求
本关的编程任务是补全右侧代码片段中Begin
至End
中间的代码,具体要求如下:
- 将当前目录下的目录
Dir1
和Dir2
拷贝到目录Dir
下; - 将当前目录下的目录
Dir1
拷贝到目录Dir
下并重命名为Dir1Cpy
; - 将当前目录下的目录
Dir3
和Dir4
移动到目录Dir
下; - 将当前目录下的目录
Dir5
重命名为Dir6
。
#!/bin/bash
#在以下部分写出完成任务的命令
#***********begin*************#
cp -r Dir1 Dir2 Dir #cp -r 可以把两个目录复制到指定目录 中间用空格分开
cp -r Dir1 Dir/Dir1Cpy # 复制目录过后用左下划线可以讲复制后的目录改名
mv Dir3 Dir4 Dir #mv 可以把两个目录移动到指定目录
mv Dir5 Dir6 #mv 可以把目录改名
#************end**************#
任务五:Linux之文件/目录内容查看
相关知识
Linux查看文件内容
Linux
中查看文件内容的命令有很多,接下来我们介绍常用的几个命令。
cat命令
具体命令如下:cat 参数 文件名
常用参数如下:
-n 或 --number
:由1
开始对所有输出的行数编号;-b 或 --number-nonblank
:和-n
相似,只不过对于空白行不编号。
具体说明:
-
cat
命令支持同时查看多个文件,当一次查看多个文件时,每个文件的内容都会被打印到屏幕上; -
cat
命令不能对文件进行编辑操作,只能查看文件内容。
应用示例:
查看文件/etc/passwd
内容,则可以使用如下命令:
cat /etc/passwd
[请在右侧“命令行”里直接体验]
head命令
具体命令如下:head 参数 文件名
常用参数如下:
-n number
:显示文件的前number
行内容;
具体说明:
-
head
命令是从文件的开头显示内容,默认情况下只显示前10
行的内容; -
head
命令不能对文件进行编辑操作,只能查看文件内容。
应用示例:
查看文件/etc/passwd
的前8
行内容,则可以使用如下命令:
head -n 8 /etc/passwd
[请在右侧“命令行”里直接体验]
tail
具体命令如下:tail 参数 文件名
常用参数如下:
-n number
:显示文件的最后number
行内容;
具体说明:
-
tail
命令是从文件的结尾显示内容,默认情况下只显示最后10
行的内容; -
tail
命令不能对文件进行编辑操作,只能查看文件内容。
应用示例:
查看文件/etc/passwd
末尾5
行内容,则可以使用如下命令:
tail -n 5 /etc/passwd
[请在右侧“命令行”里直接体验]
Linux查看目录内容
Linux
中使用ls
命令来查看一个目录下的内容。
具体命令如下:ls 参数 目录
常用参数如下:
- -a:显示所有档案及目录(
ls
内定将档案名或目录名称为“.”的视为影藏,不会列出); - -A:显示除影藏文件“.”和“..”以外的所有文件列表;
- -l:列出内容的详细信息;
- -r:以文件名反序排列并输出目录内容列表;
- -s:显示文件和目录的大小,以区块为单位;
- -i:显示文件索引节点号(
inode
)。一个索引节点代表一个文件; - -R:递归处理,将指定目录下的所有文件及子目录一并处理。
具体说明:
- 如果一次查看多个目录,则每个目录名用空格隔开。
应用示例一:
查看目录/mnt
下的所有信息(包括隐藏内容),则可以使用如下命令:
ls -a /mnt
[请在右侧“命令行”里直接体验]
应用示例二:
查看目录/mnt
下的所有信息(包括隐藏内容),同时显示每个文件的详细信息,则可以使用如下命令:
ls -al /mnt
[请在右侧“命令行”里直接体验]
编程要求
本关的编程任务是补全右侧代码片段中Begin
至End
中间的代码,具体要求如下:
- 查看当前目录下的文件
file1
的所有内容; - 查看当前目录下的文件
file2
的头5行内容; - 查看当前目录下的文件
file2
的末尾5行内容; - 查看目录
/home
目录下的所有内容(包括隐藏内容)。
#!/bin/bash
#在以下部分写出完成任务的命令
#***********begin*************#
cat file1 #cat 可以得到所有的内容
head -5 file2 #head 可以得到前n行的内容
tail -5 file2 #tail 可以得到后n行的内容
ls -a /home #显示所有档案及目录 包括隐藏的
#************end**************#
第7关:Linux文件/目录高级管理一
任务一:Linux文件权限修改
相关知识
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
的权限设置所有者权限为可读,同组用户权限为可写,其他用户权限为可执行;
#!/bin/bash
#在以下部分写出完成任务的命令
#***********begin*************#
chmod u=x oldFile1 # u=x 把所有者(u)权限设置(=)为可执行权限(x)
chmod g-w oldFile2 # g-w 把同组用户(g)权限删除(-)可写权限(w)
chmod o+x oldFile3 # o+x 把其他组用户(o)权限添加(+)可执行权限(x)
chmod u=r,g=w,o=x oldFile4 # 所有者权限(u)为可读(r),同组用户权限(g)为可写(w),其他用户权限(o)为可执行(x);
#************end**************#
任务二:Linux目录权限修改
相关知识
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
的权限设置所有者权限为可读,同组用户权限为可写,其他用户权限为可执行,同时将该目录下的所有子目录或文件权限一并处理。
#!/bin/bash
#在以下部分写出完成任务的命令
#***********begin*************#
chmod u=x oldDir1 #所有者权限(u)设置(=)为可执行(x)
chmod g-w oldDir2 #同组用户权限(g)删除(-)可写权限(w)
chmod o+x oldDir3 #其他组用户权限(o)添加(+)可执行权限(x)
chmod 421 oldDir4 #权限设置所有者权限为可读(r4),同组用户权限为可写(w2),其他用户权限为可执行(x1)
chmod -R 421 oldDir5 #权限设置所有者权限为可读(r4),同组用户权限为可写(w2),其他用户权限为可执行(x1),同时将该目录下的所有子目录或文件权限一并处理(-R)。
#************end**************#
任务三: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。
#!/bin/bash
#在以下部分写出完成任务的命令
#***********begin*************#
chown oldUser oldFile #已存在文件oldFile的所有者设置为oldUser
chown oldUser oldDir1 #已存在目录oldDir1的所有者设置为oldUser
chown -R oldUser oldDir2 #已存在目录oldDir2以及(-R)其所有子目录和子文件的所有者设置为oldUser
#************end**************#
任务四: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
。
#!/bin/bash
#在以下部分写出完成任务的命令
#***********begin*************#
chgrp oldGroup oldFile #已存在文件oldFile的所属组设置为oldGroup
chgrp oldGroup oldDir1 #已存在目录oldDir1的所属组设置为oldGroup
chgrp -R oldGroup oldDir2 #已存在目录oldDir2以及(-R)其所有子目录和子文件的所属组设置为oldGroup
#************end**************#
第8关: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
命令打印出当前工作目录。
#!/bin/bash
#在以下部分写出完成任务的命令
#***********begin*************#
useradd -m newUser #自动创建其登录目录(-m)
userdel -r oldUser #自动删除其关联的登录目录(-r)
cd /home/newUser #将当前工作目录切换到新创建的用户newUser家目录
pwd #打印出当前工作目录(pwd)
#************end**************#
任务二: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
设置登录密码;
#!/bin/bash
#创建newUser新用户
#***********begin*************#
useradd newUser #创建新用户
#************end**************#
#在符号<<前输入设置用户密码的命令(命令与<< EOF保持在同一行), 密码输入在下一行,确认密码输入在下下行
#例如:
#command << EOF
#password
#password
#EOF
#***********begin*************#
passwd newUser << EOF #用passwd给用户设置密码 用EOF结束
heshuren #第一次输入的密码
heshuren #密码验证是否相同
EOF #结束
#************end**************#
任务三:Linux用户权限切换
相关知识
通过本关学习,你将掌握如下知识点: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=<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指令,然后恢复原来的身份。
此题目代码与任务二相同(edu出了问题)
更多推荐
所有评论(0)