实验4

练习

1.当用户docker对/testdir 目录无执行权限时,意味着无法做哪些操作?

无法进入该目录,即不能使用cd /testdir命令切换到该目录。
如果试图访问/testdir下的文件或子目录,即使这些文件有合适的权限,由于用户不能搜索目录内容,所以也无法直接通过相对路径来访问。

2.当用户mongodb对/testdir 目录无读权限时,意味着无法做哪些操作?

无法查看/testdir目录下的文件和子目录列表,即不能使用ls /testdir命令列出目录内容。
因为没有目录的读权限,所以即使目录内的某个文件对其有写或执行权限,用户mongodb也无法通过相对路径找到并访问这些文件。

3.当用户redis 对/testdir 目录无写权限时,该目录下的只读文件file1是否可修改和删除?

当用户redis对/testdir目录无写(w)权限时,该目录下的只读文件file1不可修改。但删除文件的行为并不受文件所在目录的写权限影响,而是取决于用户对文件本身的权限。如果redis用户对file1只有读权限而无写权限和执行权限,则无法修改或删除该文件。

4.当用户zabbix对/testdir 目录有写和执行权限时,该目录下的只读文件file1是否可修改和删除?

用户zabbix对/testdir目录有写(w)和执行(x)权限时,对于目录下的只读文件file1,即使目录拥有足够的权限,如果file1设置为只读,zabbix用户仍然无法修改文件内容,因为需要文件自身的写权限。但是,如果zabbix用户对该文件有写权限或者属于文件所有者并且具有sudo权限,那么理论上是可以更改其权限后再进行修改的。至于删除文件,同样需要对文件本身具有写权限或属主权限,目录的权限并不能决定能否删除文件。

5.复制/etc/fstab文件到/var/tmp下,设置文件所有者为tomcat读写权限,所属组为apps组有读写
权限,其他人无权限

要复制 /etc/fstab 文件到 /var/tmp 并设置相应权限,可以这样操作:

Bash
sudo cp /etc/fstab /var/tmp/
sudo chown tomcat:apps /var/tmp/fstab
sudo chmod 660 /var/tmp/fstab
这里的 chmod 660 指令将文件权限设置为:所有者(tomcat)具有读写权限(6),所属组(apps)具有读写权限(6),其他人没有任何权限(0)。


6.误删除了用户git的家目录,请重建并恢复该用户家目录及相应的权限属性

# 创建用户git的家目录,并设置适当的权限
sudo mkdir /home/git
sudo chown git:git /home/git
sudo chmod 700 /home/git

# 如果之前备份过/home/git的内容,还原备份
sudo rsync -aP /path/to/backup/home/git/ /home/git/

# 或者根据实际情况重新配置家目录内容,例如创建默认文件等
sudo cp -rp /etc/skel/. /home/git/

# 如果需要恢复特定的文件权限,可以根据之前记录的权限进行设置
# 对于每个文件或目录分别执行chown和chmod命令
请注意,如果你没有事先备份git用户的家目录,那么上述过程将只能创建一个空的家目录,并且可能需要手动重新配置相关文件和环境设置。若已有的数据未备份,则无法恢复。

练习

1、找出ifconfig “网卡名” 命令结果中本机的IPv4地址

ifconfig ens160 | grep 'inet ' | awk '{print $2}' | cut -d':' -f2

2、查出分区空间使用率的最大百分比值

df | tr -s ' ' '%' | cut -d '%' -f 5 | sort -nr | head -n 1

3、查出用户UID最大值的用户名、UID及shell类型

awk -F: 'BEGIN{max=0} $3>max{u=$1; max=$3} END{print u, max, $7}' /etc/passwd

4、查出/tmp的权限,以数字方式显示

stat -c '%a' /tmp

5、统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序

netstat -an | grep 'ESTABLISHED' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

1、显示/proc/meminfo文件中以大小s开头的行(要求:使用六种方法)

[13:58:43 root@localhost ~][#awk '/^[0-9]+(.[0-9]+)?[kKmMgGtTpPeE]?[sS]/ {print}' /proc/meminfo
[13:58:52 root@localhost ~][#grep -i "^[^[:space:]]*s" /proc/meminfo | cut -d' ' -f1
Buffers:
SwapCached:
SwapTotal:
SwapFree:
Zswap:
Zswapped:
AnonPages:
Shmem:
Slab:
SReclaimable:
SUnreclaim:
KernelStack:
PageTables:
SecPageTables:
NFS_Unstable:
Committed_AS:
VmallocUsed:
AnonHugePages:
ShmemHugePages:
ShmemPmdMapped:
FileHugePages:
HugePages_Total:
HugePages_Free:
HugePages_Rsvd:
HugePages_Surp:
Hugepagesize:










方法一

[14:00:26 root@localhost ~][#(head -n 100 /proc/meminfo; tail -n +101 /proc/meminfo) | grep '^[Ss]'
SwapCached:            0 kB
SwapTotal:       2105340 kB
SwapFree:        2105340 kB
Shmem:             13268 kB
Slab:             119644 kB
SReclaimable:      45084 kB
SUnreclaim:        74560 kB
SecPageTables:         0 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB






方法二 
注意此方法会一直查找下去,所以如果ctrl+c无法退出的话,那就按ctrl+z


[14:01:00 root@localhost ~][#less +'/^[Ss]' /proc/meminfo



















SwapCached:            0 kB
Active:           137760 kB
Inactive:         870436 kB
Active(anon):       2624 kB
Inactive(anon):   469452 kB
Active(file):     135136 kB
Inactive(file):   400984 kB
Unevictable:          16 kB
Mlocked:              16 kB
SwapTotal:       2105340 kB
SwapFree:        2105340 kB
Zswap:                 0 kB
Zswapped:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:        454760 kB
Mapped:           186652 kB
Shmem:             13268 kB
KReclaimable:      45084 kB
Slab:             119712 kB
SReclaimable:      45084 kB
SUnreclaim:        74628 kB
KernelStack:        8696 kB
PageTables:        10152 kB
SecPageTables:         0 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     2992200 kB
Committed_AS:    2032596 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       59412 kB
VmallocChunk:          0 kB
Percpu:            59392 kB
HardwareCorrupted:     0 kB
AnonHugePages:    235520 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
FileHugePages:         0 kB
FilePmdMapped:         0 kB
CmaTotal:              0 kB
CmaFree:               0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB
DirectMap4k:      180096 kB
DirectMap2M:     1916928 kB
DirectMap1G:           0 kB












方法三



[14:05:35 root@localhost ~][#cat /proc/meminfo | grep '^[Ss]'
SwapCached:            0 kB
SwapTotal:       2105340 kB
SwapFree:        2105340 kB
Shmem:             13260 kB
Slab:             119676 kB
SReclaimable:      45500 kB
SUnreclaim:        74176 kB
SecPageTables:         0 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB

2、显示/etc/passwd文件中不以/bin/bash结尾的行

[root@centos7 ~]# grep -v '/bin/bash$' /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
libstoragemgmt:x:998:997:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
colord:x:997:996:User for colord:/var/lib/colord:/sbin/nologin
saslauth:x:996:76:Saslauthd user:/run/saslauthd:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
chrony:x:995:993::/var/lib/chrony:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
geoclue:x:994:991:User for geoclue:/var/lib/geoclue:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
setroubleshoot:x:993:990::/var/lib/setroubleshoot:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:992:987::/run/gnome-initial-setup/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
bash:x:1001:1001::/home/bash:/sbin/bash
testbash:x:1002:1002::/home/testbash:/sbin/bash
basher:x:1003:1003::/home/basher:/sbin/bash
sh:x:1004:1004::/home/sh:/sbin/bash
nologin:x:1005:1005::/home/nologin:/sbin/nologin








3、显示用户rpc默认的shell程序

[root@centos7 ~]# grep rpc /etc/passwd | cut -d: -f7
/sbin/nologin
/sbin/nologin


[root@centos7 ~]# grep '^rpc:' /etc/passwd | cut -d: -f7
/sbin/nologin

4、找出/etc/passwd中的两位或三位数

[root@centos7 ~]# grep -o '[0-9]\{2,3\}' /etc/passwd
12
11
12
100
14
50
99
99
192
192
81
81
999
998
173
173
998
997
32
32
997
996
996
76
172
172
995
993
107
107
59
59
113
113
994
991
29
29
655
34
655
34
75
75
993
990
171
171
42
42
992
987
74
74
70
70
89
89
38
38
72
72
100
100
100
100
100
100
100
100
100
100
100
100




[13:54:45 root@localhost ~][#grep -oE '[0-9]{2,3}' /etc/passwd
12
11
12
100
14
50
655
34
655
34
999
997
81
81
998
996
70
70
172
172
997
993
996
992
990
990
989
989
59
59
988
987
987
986
986
985
985
984
984
983
983
982
982
981
42
42
981
980
74
74
980
979
979
978
72
72
100
100
89
89
100
100
100
100
100
100
100
100

5、显示CentOS7的/etc/grub2.cfg文件中,至少以一个空白字符开头的且后面有非空白字符的行


[root@centos7 ~]# grep '^[[:space:]]\+[^[:space:]]' /etc/grub2.cfg
  load_env
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
   set default="${saved_entry}"
  menuentry_id_option="--id"
  menuentry_id_option=""
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
  set timeout_style=menu
  set timeout=5
  set timeout=5
  source ${prefix}/user.cfg
  if [ -n "${GRUB2_PASSWORD}" ]; then
    set superusers="root"
    export superusers
    password_pbkdf2 root ${GRUB2_PASSWORD}
  fi
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod xfs
	set root='hd0,msdos1'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  4c6d4e1d-bfc8-48a4-a48c-9247095fec80
	else
	  search --no-floppy --fs-uuid --set=root 4c6d4e1d-bfc8-48a4-a48c-9247095fec80
	fi
	linux16 /vmlinuz-3.10.0-693.el7.x86_64 root=UUID=e5f25cac-f6e2-4533-8253-ab83965d54fa ro rhgb quiet LANG=en_US.UTF-8
	initrd16 /initramfs-3.10.0-693.el7.x86_64.img
	load_video
	insmod gzio
	insmod part_msdos
	insmod xfs
	set root='hd0,msdos1'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  4c6d4e1d-bfc8-48a4-a48c-9247095fec80
	else
	  search --no-floppy --fs-uuid --set=root 4c6d4e1d-bfc8-48a4-a48c-9247095fec80
	fi
	linux16 /vmlinuz-0-rescue-1ba5fcb6a5ba4c61a4599eea3f57608c root=UUID=e5f25cac-f6e2-4533-8253-ab83965d54fa ro rhgb quiet
	initrd16 /initramfs-0-rescue-1ba5fcb6a5ba4c61a4599eea3f57608c.img
  source ${config_directory}/custom.cfg
  source $prefix/custom.cfg;














[13:53:17 root@localhost ~][#grep '^\s\+[^[:space:]]' /etc/grub2.cfg
  load_env -f ${config_directory}/grubenv
  load_env
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
   set default="${saved_entry}"
  menuentry_id_option="--id"
  menuentry_id_option=""
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
  set timeout_style=menu
  set timeout=5
  set timeout=5
  source ${prefix}/user.cfg
  if [ -n "${GRUB2_PASSWORD}" ]; then
    set superusers="root"
    export superusers
    password_pbkdf2 root ${GRUB2_PASSWORD}
  fi
  # if countdown has ended, choose to boot rollback deployment,
  # i.e. default=1 on OSTree-based systems.
  if  [ "${boot_counter}" = "0" -o "${boot_counter}" = "-1" ]; then
    set default=1
    set boot_counter=-1
  # otherwise decrement boot_counter
  else
    decrement boot_counter
  fi
  save_env boot_counter
  search --no-floppy --fs-uuid --set=root --hint='hd0,msdos1'  fb99d21e-3f1c-4194-9c68-f71f2740591d
  search --no-floppy --fs-uuid --set=root fb99d21e-3f1c-4194-9c68-f71f2740591d
  search --no-floppy --fs-uuid --set=boot --hint='hd0,msdos1'  fb99d21e-3f1c-4194-9c68-f71f2740591d
  search --no-floppy --fs-uuid --set=boot fb99d21e-3f1c-4194-9c68-f71f2740591d
  set kernelopts="root=/dev/mapper/rl-root ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rl-swap rd.lvm.lv=rl/root rd.lvm.lv=rl/swap rhgb quiet "
  set menu_hide_ok=1
  set menu_hide_ok=0 
  set boot_indeterminate=0
  set boot_indeterminate=2
  if [ "${menu_show_once}" ]; then
    unset menu_show_once
    save_env menu_show_once
    set timeout_style=menu
    set timeout=60
  elif [ "${menu_auto_hide}" -a "${menu_hide_ok}" = "1" ]; then
    set orig_timeout_style=${timeout_style}
    set orig_timeout=${timeout}
    if [ "${fastboot}" = "1" ]; then
      # timeout_style=menu + timeout=0 avoids the countdown code keypress check
      set timeout_style=menu
      set timeout=0
    else
      set timeout_style=hidden
      set timeout=1
    fi
  fi
  if [ "${menu_show_once_timeout}" ]; then
    set timeout_style=menu
    set timeout="${menu_show_once_timeout}"
    unset menu_show_once_timeout
    save_env menu_show_once_timeout
  fi
	menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
		fwsetup
	}
  source ${config_directory}/custom.cfg
  source $prefix/custom.cfg

6、找出“netstat -tan”命令结果中以LISTEN后跟任意多个空白字符结尾的行

[13:52:50 root@localhost ~][#netstat -tan | grep 'LISTEN\s*$'
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:6011          0.0.0.0:*               LISTEN     
tcp6       0      0 ::1:6011                :::*                    LISTEN     
tcp6       0      0 ::1:6010                :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:631                 :::*                    LISTEN    

7、显示CentOS7上所有UID小于1000以内的用户名和UID

awk -F: '$3 < 1000 {print $1 "\t" $3}' /etc/passwd

8、添加用户bash、testbash、basher、sh、nologin(其shell为/sbin/nologin),找出/etc/passwd用户

名和shell同名的行

首先添加用户:

bash
useradd bash -s /sbin/bash  
useradd testbash -s /sbin/bash  
useradd basher -s /sbin/bash  
useradd sh -s /sbin/bash  
useradd nologin -s /sbin/nologin
然后查找同名用户和shell:

bash
grep '^\([^:]:[^:]\)\:\(.*\)\:\(.*\):\4:' /etc/passwd

9、利用df和grep,取出磁盘各分区利用率,并从大到小排序

df | grep -oP '\d+%' | sort -nr
posted @ 2024-02-24 22:10  三思博客  阅读(29)  评论(1编辑  收藏  举报