拓展练习:(用户的基本管理及用户提权部分)
程序员文章站
2022-05-15 14:29:08
[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