第四周作业

Linux系统文件管理使用案例

1、 复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。

首先,利用cp命令将/etc/skel目录复制为/home/tuser1:

[root@localhost ~]# cp -r /etc/skel /home/tuser1

随后通过chmod命令对/home/tuser1的权限进行调整:

[root@localhost ~]# chmod go-rwx /home/tuser1/
[root@localhost ~]# ll /home/ | grep tuser1
drwx------.  3 root     root       74 225 17:16 tuser1

2、编辑/etc/group文件,添加组hadoop。

使用vim编辑/etc/group文件,并在最后一行添加相关的组信息,最后再使用groupadd测试hadoop是否已经添加成功:

[root@localhost ~]# vim /etc/group
....
nologin:x:1104:
hadoop:x:1200:
:wq
[root@localhost ~]# groupadd hadoop
groupadd:“hadoop”组已存在

3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。

使用vim编辑/etc/passwd/,并在最后一行添加相应的用户信息:

[root@localhost ~]# vim /etc/passwd
hadoop:x:1200:1200::/home/hadoop:/bin/bash
:wq
[root@localhost ~]# id hadoop
uid=1200(hadoop) gid=1200(hadoop) 组=1200(hadoop)

4、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。

依旧使用cp命令完成复制操作:

[root@localhost ~]# cp -r /etc/skel/ /home/hadoop
[root@localhost ~]# ll /home/ | grep hadoop
drwxr-xr-x.  3 root     root       74 225 22:46 hadoop

使用chmod命令修改/home/hadoop目录的权限:

[root@localhost ~]# chmod go-rwx /home/hadoop
[root@localhost ~]# ll -d /home/hadoop
drwx------. 3 root root 74 225 22:46 /home/hadoop

5、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。

使用chown命令递归修改/home/hadoop目录的属主和属组:

[root@localhost ~]# chown -R hadoop:hadoop /home/hadoop
[root@localhost ~]# ll -a /home/hadoop
总用量 16
drwx------.  3 hadoop hadoop   87 225 23:03 .
drwxr-xr-x. 10 root   root   4096 225 22:46 ..
-rw-r--r--.  1 hadoop hadoop   18 225 22:46 .bash_logout
-rw-r--r--.  1 hadoop hadoop  193 225 22:46 .bash_profile
-rw-r--r--.  1 hadoop hadoop  231 225 22:46 .bashrc
-rw-r--r--.  1 hadoop hadoop    0 225 23:03 hadoop
drwxr-xr-x.  4 hadoop hadoop   37 225 22:46 .mozilla

6、显示/proc/meminfo文件中以大写或小写S开头的行。(多种方式)

第一种方式:

[root@localhost ~]# cat /proc/meminfo | grep -o "^[S|s].*$"
SwapCached:            0 kB
SwapTotal:       3145720 kB
SwapFree:        3145720 kB
Shmem:             10060 kB
Slab:             115384 kB
SReclaimable:      57680 kB
SUnreclaim:        57704 kB

第二种方式:

[root@localhost ~]# grep -i "^s" /proc/meminfo
SwapCached:            0 kB
SwapTotal:       3145720 kB
SwapFree:        3145720 kB
Shmem:             10060 kB
Slab:             115376 kB
SReclaimable:      57680 kB
SUnreclaim:        57696 kB

第三种方式:

[root@localhost ~]# grep "^[sS]" /proc/meminfo
SwapCached:            0 kB
SwapTotal:       3145720 kB
SwapFree:        3145720 kB
Shmem:             10060 kB
Slab:             115376 kB
SReclaimable:      57680 kB
SUnreclaim:        57696 kB

7、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;

使用grep命令并利用锚定行尾的特性和-v选项找出对应的行,最后用cut命令切割分段:

[root@localhost ~]# grep -v "/sbin/nologin$" /etc/passwd | cut -d':' -f1
root
sync
shutdown
halt
charlie
gentoo
fedora
charlie3
bash
testbash
basher
hadoop

8、显示/etc/passwd文件中其默认shell为/bin/bash的用户;

[root@localhost ~]# grep "/bin/bash$" /etc/passwd | cut -d':' -f1
root
charlie
gentoo
fedora
charlie3
bash
testbash
basher
hadoop

9、找出/etc/passwd文件中的一位数或两位数;

[root@localhost ~]# grep -o "\<[[:digit:]]\{1,2\}\>" /etc/passwd | uniq
0
1
2
3
4
....
42
29
70
72

10、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;

root@localhost ~]# grep "^[[:space:]].*" /boot/grub2/grub.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="${ch
...

11、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;

[root@localhost ~]# grep "^#[[:space:]]\+[^[:space:]]\+" /etc/rc.d/init.d/functions
# -*-Shell-script-*-
# functions This file contains functions to be used by most or all
#       shell scripts in the /etc/init.d directory.
# Make sure umask is sane
# Set up a default search path.
# Get a sane screen width
# Read in our configuration
# Check if any of $pid (could be plural) are running
# __proc_pids {program} [pidfile]

12、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;

[root@localhost ~]# netstat -tan | grep "LISTEN[[:space:]]*$"
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN     
tcp        0      0 192.168.122.1:53        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:631           0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN     
tcp6       0      0 :::139                  :::*                    LISTEN     
tcp6       0      0 :::21                   :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:631                 :::*                    LISTEN     
tcp6       0      0 ::1:25                  :::*                    LISTEN     
tcp6       0      0 :::445                  :::*                    LISTEN    

13、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;

首先使用useradd命令添加相应的用户:

[root@localhost ~]# useradd bash
[root@localhost ~]# useradd testbash
[root@localhost ~]# useradd basher
[root@localhost ~]# useradd -s /sbin/nologin nologin

然后通过命令找出/etc/passwd中用户名与默认shell名称相同的用户信息:

[root@localhost ~]# grep "^\([[:alpha:]]\+\):.*\1$" /etc/passwd
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
bash:x:2003:2003::/home/bash:/bin/bash
nologin:x:2006:2006::/home/nologin:/sbin/nologin

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/92856

(0)
酒粒酒粒
上一篇 2018-03-23 11:08
下一篇 2018-03-24 17:56

相关推荐

  • zabbix 自动注册(registration)实例

    原理: Zabbix_agnetd ==> Zabbix_server 【agnet自动发数据到server端】 实现目的:zabbix 根据计算机名称识别如(XLH-PROD-XXX)条件,自动添加相关服务器(组group+相关监控模板)  部署步骤 1.创建新的模板,主机组 1.1 新增或模板【组态】【模板】手选一个模板 如果已…

    Linux干货 2016-09-15
  • 深入理解java嵌套类和内部类

    一、什么是嵌套类及内部类   可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型:静态嵌套类和非静态嵌套类。静态嵌套类使用很少,最重要的是非静态嵌套类,也即是被称作为内部类(inner)。嵌套类从JDK1.1开始引入。其中inner类又可分为三种:  其一、在一个类(外部类)中直接定义的内部类;  其二、在一个方法…

    Linux干货 2015-04-07
  • linux基础练习

    马哥教育23期网络班+第6周课堂练习 Linux 基础练习 一、linux基础练习题 1、复制/etc/rc.d/rc.sysinit 文件至/tmp 目录,将/tmp/rc.sysinit 文件中的以至少一个空白字符开头的行的行首加#; 2、复制/boot/grub/grub.conf 至/tmp目录中 删除/tmp/grub.conf 文件中的行首的空白…

    Linux干货 2016-11-01
  • Redis基于Sentinel哨兵高可用方案

    下载最新redis版本,当前最新版本为  2.8.19  2014-12-30 安装redis 首页地址:http://redis.io/ 最新稳定版下载地址: http://download.redis.io/releases/redis-2.8.19.tar.gz # tar -xvf redis-2.8.19.tar.gz # cd…

    2015-03-03
  • 初入命令世界

    一、inode节点号         在linux中,每一个文件都有唯一的inode号,inode号也是系统识别的唯一编码,而文件名仅仅是为了使用者区分辨认, inode (index node )表中包含文件系统所有文件列表 一个节点(索引节点)是在一个表项,包含有关…

    2017-05-26
  • 建立私有CA的方法

    建立私有CA的方法 建立私有CA的工具:     OpenCA     Openssl 证书申请及签署步骤:     1,生成申请请求:     2,RA核验;    &…

    Linux干货 2016-09-19

评论列表(1条)

  • 酒粒
    酒粒 2018-03-24 17:56

    我的天,代码怎么变成这样了