欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

拓展练习:(用户的基本管理及用户提权部分)

程序员文章站 2023-01-16 12:29:53
[toc] vim视图模式及扩展、用户的相关配置文件 1.复制系统/etc/services文件到/root目录,然后使用vim命令打开此文件。 2.显示该文件的行号 3.显示该文件的每一行结尾的标识符 4.替换文件中所有的"ssh"字符串替换成"oldboy" 5.跳转到30行,并删除此行。 6. ......

目录

vim视图模式及扩展、用户的相关配置文件

1.复制系统/etc/services文件到/root目录,然后使用vim命令打开此文件。
cp /etc/services /root/services.
vim service.
cp /etc/services ./
2.显示该文件的行号
:set nu
3.显示该文件的每一行结尾的标识符
:set list
4.替换文件中所有的"ssh"字符串替换成"oldboy"
:%s#ssh#oldboy#g
5.跳转到30行,并删除此行。
:set nu   ---->30gg--->dd      #注释行,跳转到30行,删除
vim services. +30    --->dd  #登陆的时候直接跳转到30行,删除
6.撤销一次你的操作。
u
7.当你执行了撤销的时候,发现撤销错了,回滚,怎么操作。
ctrl +r
8.给第25行到30行的行首添加一个注释"#".写出操作步骤。
:set nu  --->25gg---->ctrl+v---->方向键到30行--->shift+i---->shift+#--->esc esc
9.删除第10行到20行的行首的注释"#".写出操作步骤。
10gg--->ctrl +v--->按方向键选中到20行--->d
10.vim编辑文件时,非正常退出,再从新编辑文件时,出现报错,怎么解决,写出解决步骤。
删除临时保存文件,同文件名的.swp文件即可删除
例如: .filename.swp   rm -f .filename.swp
注意:先查看是否有别的用户在编辑这个文件a
11.vim的环境变量配置文件都有哪些?哪个优先级高?
~/.vimrc 个人环境变量(优先级高)
/etc/vimrc  全局环境变量
12.你知道如何使用vim编辑多个文件吗?
vim -o a.sh zls.txt (水平分割)
vim -o a.sh zls.txt (垂直分割)
13.什么命令可以比对两个文件的不同,两个命令有什么区别?
diff 文件对比(用的不多)
vimdiff 以vim 方式打开两个文件对比,高亮标记不同的内容
14.普通模式下的s是什么作用?
删除光标所在行,并进入编辑模式
15.什么是用户?
用户指的是能够正常登陆linux或windows系统
16.linux与windows系统的用户有什么区别?
本质都是登录系统的,只不过linux支持多用户同时登录,windows默认不支持,但是修改`组策略`的情况下也是可以多用户登录的。
17.使用什么命令可以查看用户是否存在?
id
18.跟用户相关的配置文件都有哪些?分别存放的是什么?
/etc/passwd   存放用户的信息
/etc/shadow    存放用户的密码
19./etc/passwd文件以':' 为分割符, 分为7个字段,请说明一下每个字段的具体含义?
第1列 :用户账户名称
第2列 :密码占位符,存放账户的口令
第3列 :用户uid,用户标识号
第4列 :用户gid,组标识号
第5列 : 用户注释,用户详细信息
第6列 :用户家目录,root家目录
第7列 :用户登陆linux使用的shell
20./etc/shadow文件以':' 为分割符, 分为9个字段,请说明一下每个字段的具体含义?
第1列 :用户登录名,也就是用户的账户名称
第2列 :加密后的密码
第3列 :最近一次密码更改时间
第4列 :密码最少使用几天
第5列 : 密码最长使用几天
第6列 :密码到期前警告期限
第7列 :密码到期后保持活动的天数
第8列 : 账户到期时间
第9列 : 标志
21.什么是用户的uid?
用户标识号
22.不同的用户对应uid号范围是多少?
0: 超级管理员(拥有最高权限)
1-200: 系统用户,有系统分配给系统进程使用
201-999:系统用户,用来运行服务账户,不需要登陆系统(动态分配)
1000+   :常规普通用户
23.新建用户user1、user2,用户user2不允许登陆到系统中。
useradd user1
useradd user2 -m -s /sbin/nologin
或者useradd user1;useradd user -m -s /sbin/nologin
24.创建普通用户oldboy,其id号为789.
useradd oldboy -u 789
25.创建虚拟用户test,其id号为666
useradd test -m -u 666 -s /sbin/nologin
26.修改oldboy用户的id号,修改为777.
usermod oldboy -u 777
27.修改用户test的命令解释器,使其可以登录到系统。
usermod test -s /bin/bash
28.删除用户user1.不删除其家目录。
userdel user1
29.删除用户user2,不保留其家目录。
userdel -r user2
30.给oldboy用户创建一个密码为123,并尝试登录。
passwd oldboy  
123--->123
 oldboy@10.0.0.100
su   #登陆
su   #退出登陆

用户的相关命令,useradd /usermod 、userdel

1.创建普通用户test01、test02、test03,要求uid为888,999,998

useradd test01 -u 888
useradd test02 -u 999
useradd test03 -u 998

2.给test01用户使用交互式设置密码为123456

passwd test01
123456
123456

3.使用test01用户进行登录。

su test01
或者在xhell中更改账户密码链接su
ssh test01@10.0.0.100

4.使用非交互式给test01设置密码为oldboy123

echo "oldboy123" | passwd --stdin test01

5.使用修改之后的密码进行登录。

passwd username

6.有哪些命令可以查看当前用户的登录情况?

who
whoami
w

7.删除用户test02,要求连家目录一起删除。

userdel -r test02

8.请问,我删除了test02用户,哪个文件会发生变化?

/etc/passwd
/etc/shadow

9.创建一个虚拟用户oldboy01,要求uid为555,不创建家目录。

useradd oldboy01 -u 555 -m -s /sbin/nologin

10.创建用户时,不指定选项设置参数了,系统创建之后的默认参数是根据什么文件来定义的?

系统会根据/etc/login.defs、/etc/defaults/useradd两个文件作为参照物

11.切换普通用户时,出现这样的命令行"-bash-4.1$",这是什么原因造成的,该怎么解决?

原因:家目录下的.bash_* 环境变量相关的文件删除了
解决: cp /etc/skel/.bash* ./     再重新登录
      环境变量文件默认从/etc/skel目录中拷贝

12.登录到test01用户,给其用户test03设置密码,发现报错,请问是什么原因?该怎么解决?

普通用户没有修改其他用户密码的权限
只有root用户管理员才可以修改其他用户的密码,
使用非交互式来修改
echo  “密码” |passwd --stdin test03

13.登录到test01用户,给其本用户设置密码为123,报错,请问是什么原因?该怎么解决?

普通用户只能更改自己的密码,但密码必须满足8位字符

14.使用root用户给test01用户设置一个18位的随机密码,并进行登录。

[root@centos7 ~]# echo $random|md5sum |cut -c 1-18|tee /tmp/a |passwd --stdin test01
cat /tmp/a         #查询密码

15.创建10个用户,前缀是你的姓,后缀为数字序列,比如qiu1等。

seq '10' |awk '{print "useradd gong"$1}'|bash

16.创建10个用户,前缀是你的名,后缀为数字序列,比如zengjia1等,并给其10个用户设置统一密码为123456,最后尝试是否可以登录。

[root@centos7 ~]# seq '10' |awk '{print " useradd jingyun"$1";""echo123456|passwd --stdin jingyun"$1}'|bash

17.创建10个用户,前缀是oldboy,后缀为数字序列,比如oldboy1等,并给其10个用户设置随机密码,最后尝试是否可以登录。

[root@centos7 ~]# seq '10' |awk '{print "useradd oldboy"$1";""echo $random|md5sum|cut -c 1-10 |tee /tmp/old0"$1"|passwd --stdin oldboy"$1}'|bash

cat /tmp/old01

18.创建用户qiudao,并给其用户设置一个24位的随机密码,要求密码包含数字,大小写字母及特殊符号,最后查看是否可以登录。

[root@centos7 ~]# useradd  qiudao ;mkpasswd -l 24 -d 2 -c 2 -c 2 -s 4|tee /tmp/aaa|passwd --stdin qiudao

cat /tmp/aaa

19.尝试使用sed命令的后向引用取出ip地址,请分别使用ip和ifconfig命令取出,实在取不出,也没有关系。

[root@centos7 ~]# ip a s ens33|sed -rn '3s#.*t (.*)/.*#\1#p'
10.0.0.100
[root@centos7 ~]# ifconfig ens33|sed -rn '2s#.*t (.*) n.*#\1#gp'
10.0.0.100

20.尝试使用awk命令取出ip地址,请分别使用ip和ifconfig命令取出,实在取不出,也没有关系。

[root@centos7 ~]# ifconfig ens33|awk -f ' ' 'nr==2 {print $2}'
10.0.0.100
[root@centos7 ~]# ip a s ens33|awk -f '[ /]+' 'nr==3 {print$3}'
10.0.0.100

组的切换,shell分类,用户身份提权

1.跟组相关的两个配置文件是?
/etc/group
/etc/gshadow
2.创建一个用户基本组,shanghai01.
groupadd  shanghai01 
3.创建一个用户基本组,shanghai02,指定gid为1099.
groupadd  -g 1099 shanghai02
4.创建一个用户系统组,shanghai03.
groupadd -r shanghai03 
5.修改用户基本组shanghai02的gid号为1033.
groupmod  -g 1033  shanghai02
6.将基本组shanghai01组名修改为linux
groupmod -n linux shanghai01 
7.创建一个用户linux01,指定该用户的附加组为shanghai02
useradd  -g shanghai02 linux01
8.创建用户linux02.指定用户基本组为shanghai03
useradd  -g shanghai03 linux02
9.创建用户linux03,指定该用户的附加组为shanghai02,shanghai03。
useradd  -g shanghai02,shanghai03 linux03
10.查看用户linux02的uid和gid信息
id linux02
11.删除用户基本组shanghai02。
groupdel shanghai02
12.删除用户基本组shanghai03。发现无法正常删除,怎样才能将其删除掉,不能删除用户。
只有将基本组下的用户变更组才可以删除
13.打开多个xshell窗口连接登录同一虚拟机,使用不同的用户登录多次,分别使用w和who命令显示当前系统上的所有已经登录的用户,取出用户名这一列,注意:同一个用户登录多次,则只显示一次即可。
who|awk '{print$1}'|uniq -c
w|awk 'nr==3,nr==6 {print$1}'|uniq -c
14.创建用户olddir,其id号为1005,基本组为old
groupadd old
useradd olddir -u 1005 -g old
15.显示当前登录的用户的uid号,你有几种方法实现?
id
cat /etc/passwd
16.对于用户来说,组有几种类别?有什么区别?
基本组不可以被删除,只有一个基本组
附加组可以有多个附加组,可以删除
17./etc/group文件以:为分隔符,分为四列,解释其每列的含义?
1.组的名称
2.组的密码(存在/etc/gshadow)
3.组gid信息
4.仅显示附加成员,基本成员不显示
18./etc/gshadow文件以:为分隔符,分为四列,解释其每列的含义?
1.组名称
2.组密码
3.组管理员
4.仅显示附加成员,基本成员不显示
19.如果想从root用户切换到普通用户,使用什么命令?
su - username
20.切换到普通用户后,想返回到root用户,怎么做?几种方法有什么区别?
su -      要输入密码
exit      不用输入密码
21.shell主要分为哪几类?
交互式shell    //等待用户输入执行的命令(终端操作,需要不断提示)
非交互式shell   //执行shell脚本, 脚本执行结束后shell自动退出

登陆shell     //需要输入用户名和密码才能进入shell su - zls
非登陆shell    //不需要输入用户和密码就能进入,比如执行sh, bash, su username
22.bash shell的个人及全局配置文件有哪些?哪个优先级别高?
个人配置文件: ~/.bash_profile ~/.bashrc
全局配置文件:/etc/profile /etc/profile.d/*.sh /etc/bashrc
23.登录式shell配置文件执行顺序?
//登录式shell配置文件执行顺序
/etc/profile->/etc/profile.d/*.sh->~/.bash_profile->~/.bashrc->/etc/bashrc
24.非登录式shell配置文件执行顺序?
//非登陆式shell配置文件执行顺序
~/.bashrc->/etc/bashrc->/etc/profile.d/*.sh
25.在root用户下,以普通用户身份执行"pwd"命令。
su - username 
pwd
26.什么是sudo?
sudo执行一个仅有root身份才能执行的命令是可以办到的,但是需要输入密码,这个密码并不是root的密码而是用户自己的密码。
普通用户提权命令。
27.可以根据哪个文件对sudo提权?
visudo /etc/sudoers
28.登录到普通用户,查看/etc/shadow文件的内容,发现查看不了,怎么办?
sudo cat /etc/shadow
29.登录到普通用户,删除/opt目录,若无法删除,该怎么解决?
sudo rm - fr /pot
30.登录到普通用户,使用sudo命令时,不想输出密码,怎么解决?
visudo     修改成nopasswd
31.怎样查看普通用户的sudo权限?
sudo -l
32.配置好了sudo授权,怎么检查语法是否正确?
visudo -c
/etc/sudoers: parsed ok
33.禁止root用户远程登录,怎么实现?
vim /etc/ssh/ssh_config  permitrootlogin no
34.修改远程连接端口号为2222,然后进行登录?
vim /etc/ssh/ssh_config    port 改为222
35.把对sshd的设置修改成默认。
vim /etc/ssh/ssh_config  
把permitrootlogin yes port 改为 22
36.使用sed命令打印出/etc/passwd文件的第一行到第三行
sed -n '1,3p' /etc/passwd
37.用一条命令创建/oldboy/test/shl05目录
mkdir -p /oldboy/test/shl05
38.说出下面几个特殊符号的含义 * > >> # .. . ^ $ `` !
*  代表所有
>  标准输出重定项
>> 标准输出追加重定向
#    注释
.. 当前目录的上层目录
. 当前目录  
^ 以什么开头
$ 以什么结尾
`` 先执行
!非,取反
39.把/oldboy/oldboy.txt文件中的oldboy替换为oldgirl,
vim /oldboy/oldboy.txt
:%s#oldboy#oldgirl#g
40.如何查看/etc/services文件的有多少行?
cat -n /etc/services
wc -l /etc/services
41.过滤出/etc/services 文件包含3306或1521两数字所在的行的内容。一条命令实现。
egrep '3306|1521' /etc/services 
42.test.txt内容如下:

zengdao
qiudao
oldboy
请给出输出test.txt 文件内容时,不包含oldboy字符串的命令,有几种方法。

grep -v 'oldboy' test.txt
43.入职新公司

,老大让你在服务器上限制rm 命令,当用户输入rm 命令时候提示”rm commandis not allowed to use.” 请问实现的步骤是?

alias rm='echo "rm commandis not allowed to use"'
44. 在linux 系统中,当lan(局域网)内没有条件记案例dns 服务器,但又想让局域网内的用户可以使用计算机名互相访问时,应配置( )文件(请写全路径)
etc/hosts
45.写出redhat 中,配置网卡及dns 的配置文件是什么?有什么区别?
etc/sysconfig/network-scripts/ifconfig-ens33
/etc/resolv.conf
46.若要将鼠标从vm中释放出来,可按()键完成
ctrl +alt
47.如果用户想对一个命令详细的了解,可用()命令?
命令 --help
48.vim中把所有oldboy替换为oldgirl,给出命令?
:%s#oldboy#oldgirl#g
49.如何统计/etc下有多少个目录,不包括隐藏目录,只显示目录个数。
tree -d /etc
50.统计secure.log文件中每个ip地址破解你用户密码的次数.文件群里有。
sed -rn 's#^.*m (.*) p.*#\1#gp' secure.log|sort|uniq -c|sort -rn