Linux 文件属性-下

配置Apache时执行了./configure --prefix=/application/apache2.2.17来编译Apace,在make install完成后,希望用户的访问路径更简单,需要给/application/apache2.2.17目录做一个软链/application/apache,使得内部开发或管理人员通过/application/apache就可以访问到apache的安装目录/application/apache2.2.17下的内容,请你给出实现的命令。(提示:Apache为httpd web服务)

[root@oldbouedu-39 ~]# mkdir /application/apache2.2.17 -p
[root@oldbouedu-39 ~]# ls -l /application/
total 4
drwxr-xr-x 2 root root 4096 Apr 17 10:26 apache2.2.17
[root@oldbouedu-39 ~]# ln -s /application/apache2.2.17/ /application/apache
[root@oldbouedu-39 ~]# ls -l /application/
total 4	
lrwxrwxrwx 1 root root   26 Apr 17 10:27 apache -> /application/apache2.2.17/
drwxr-xr-x 2 root root 4096 Apr 17 10:26 apache2.2.17

1.2 目录软链接相关知识讲解

1.3 Linux文件属性;文件删除原理

i_link=2 #当前文件的硬链接数量

i_count=3 #当前文件被进程调用的数量

文件被彻底删除的条件:i_link=0 并且i_count=0

文件被彻底删除的条件:

★i_link=0 硬链接数如何为0 ==èrm 命令

★i_count=0 进程调用数===è找到对应的软件重启对应的服务lsof

[root@oldbouedu-39 oldboydir]# lsof /var/log/messages
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
rsyslogd 1253 root    1w   REG    8,3     4780 261884 /var/log/messages
文件删除原理(Linux删除一个文件的条件)
1.硬链接数为0   rm命令
2.进程调用数为0	重启or关闭(使用这个文件的进程/软件)

**1.4 **企业案例:

磁盘空间不足

磁盘满故障http://oldboy.blog.51cto.com/2561410/612351

du -sh /usr/* |grep G

查看文件被那个文件占用lsof |grep messages

(1)安装httpd web服务
  yum install httpd -y
  /etc/init.d/httpd start
  lsof -i :80
  /etc/init.d/iptables stop
  cd/etc/httpd/conf 编辑配置文件,让日志记录到/app/logs下面。
sed -i's@#CustomLog logs/access_log common@CustomLog /app/logs/access_logcommon@g' httpd.conf 
(2)创建一个小的文件系统,用于存放上述access_log日志。
  dd if=/dev/zero of=/dev/sdc bs=8K  count=10
  ls -l /dev/sdc
  mkfs -t ext4 /dev/sdc
  tune2fs -c -1 /dev/sdc
  mount -o loop /dev/sdc /app/logs
  echo oldboy >/var/www/html/index.html
(3)重启httpd服务,确保日志记录到了上述文件系统挂载的/app/log下面
  /etc/init.d/httpd restart
(4)写个循环脚本访问httpd,使得httpd日志充满/app/logs整个空间。
for n in `seq 100000`;do curl -s 127.0.0.1>/dev/null;done
[root@C64log]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             7.2G  2.0G 4.9G  30% /
tmpfs                 244M     0 244M   0% /dev/shm
/dev/sda1             194M   54M 131M  30% /boot
/dev/sdc               73K   73K    0 100% /app/log
(5)错误的删除方案
[root@oldboylogs]# rm -f /app/logs/access_log
[root@oldboylogs]# df -h
Filesystem      Size Used Avail Use% Mounted on
/dev/sda3       8.8G 1.6G  6.9G  19% /
tmpfs           491M     0 491M   0% /dev/shm
/dev/sda1       190M  36M  145M  20% /boot
/dev/sdc         73K  68K  1.0K  99% /app/logs
提示:此时空间并未被释放,你可知道原因?
   查看被删除的但仍由进程占用的文件名。
[root@oldboylogs]# lsof|grep del
httpd      6148     root    7w      REG   7,0    55260         12 /app/logs/access_log (deleted)
httpd     38178   apache    7w      REG   7,0    55260         12 /app/logs/access_log (deleted)
httpd     38483   apache    7w      REG   7,0    55260         12 /app/logs/access_log (deleted)
httpd     38484   apache    7w      REG   7,0    55260         12 /app/logs/access_log (deleted)
httpd     38752   apache    7w      REG   7,0    55260         12 /app/logs/access_log (deleted)
(5)解决问题
1、请先停掉模拟访问测试脚本
forn in `seq 100000`;do curl -s 127.0.0.1 >/dev/null;done
2、重启Http服务
[root@C64log]# /etc/init.d/httpd restart
Stoppinghttpd:                                           [  OK  ]
Startinghttpd:                                          	[ OK  ]
(6)查看处理结果
[root@C64log]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             7.2G  2.0G 4.9G  30% /
tmpfs                 244M     0 244M   0% /dev/shm
/dev/sda1             194M   54M 131M  30% /boot
/dev/sdc               73K   14K  55K  21%/app/logs
(7)较好的处理方案
清空日志而不删除日志。
>/app/logs/access_log

########一个文件被 彻底删除条件(文件删除原理)################

#1.硬链接数为零 rm

#2.进程调用数为零 lsof文件 or lsof|grep 文件

案例-硬链接数为零,但是进程调用数不为零

lsof |grep delete

[root@oldbouedu-39 ~]# lsof |grep delete
[root@oldbouedu-39 ~]# rm /var/log/messages -f
[root@oldbouedu-39 ~]# lsof |grep delete
rsyslogd  4756      root    1w      REG                8,3     5569     261884 /var/log/messages (deleted)
[root@oldbouedu-39 ~]# /etc/init.d/rsyslog restart
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]

1.5 Linux系统用户分类讲解

文件删除原理:一个文件被彻底删除:1.硬链接数为0;2.进程调用数为0

磁盘空间满了(no space left on device): ①inode满了-定时任务②block正常满了③block硬链接数为0,进程调用数不为零lsof|grep delete。

超级用户:root

​ 默认是root用户,其UID和GID均为0。root用户在每台unix/Linux操作系统中都是唯一真实存在的,通过它可以登录系统,可以操作系统中任何文件和命令,拥有最高的管理权限。

​ 在生成环境中,一般会禁止root账户通过SSH远程连接服务器,当然,也会更改默认的SSH端口,以加强系统安全。

最小化安全:

  1. 安装系统(最小化安装+必要的包组)
  2. 开启的服务最小化

普通用户:

​ 这类用户一般是由具备系统管理员root的权限的运维或系统管理人员添加的。例如:oldboy这类的用户可以登录系统,但不仅具备操作自己家目录中的文件及目录的权限,除此之外,还可以进入或者浏览相关目录(/etc/ ,/var/log),但是无法创建、修改和删除;

虚拟用户(傀儡):

​ 安装系统后默认就会存在,且默认情况大多数不能登录系统。但是,他们是系统正常运行不可缺少的,他们的存在主要是方便系统管理,满足相应的系统进程对文件属性的要求。

Linux 安全优化:

  1. 安装系统后可以删除用不到的虚拟用户,但最好不删而是注释掉,万一出问题可以恢复回来。
  2. 部署服务的时候,也会创建虚拟用户,满足服务的需求!

系统中不同用户角色对应的UID说明:

UID整数范围 具备改UID用户特性
0 超级用户(皇帝) 当用户的UID为0时,表示这个账户为超级管理员账户,如果需要增加一个系统管理员账号,只需要将该账号的UID改成0即可。
1-499 虚拟用户 这个范围是保留给系统使用的UID,之所以这样划分,是为了防止人为建立账户的UID和系统UID之间冲突。并没有其它特殊的含义。
500-65535 普通用户 普通用户UID当使用useradd oldboy建立账户时默认情况下UID就是从500开始的。

1.6 在passwd文件中,第一行内容就是超级用户root行,我们可以看到它的uid和gid都为0,

[root@oldbouedu-39 local]# grep nobody /etc/passwd
nobody:x:99:99:Nobody:/:/sbin/nologin
[root@oldbouedu-39 local]# egrep "nobody|oldboy" /etc/passwd
nobody:x:99:99:Nobody:/:/sbin/nologin
oldboy:x:500:500::/home/oldboy:/bin/bash

1.7 Linux中三种时间+课程

文件被修改或被访问的时间

Mtime modify time 【修改时间】 文件/目录的修改时间。文件内容修改。

Ctime change time 【属性改变时间】文件/目录的属性的修改时间,大小,硬链接数,权限,所有者。所属于的组,类型。

Atime access time 【访问时间】文件/目录的访问时间,cat 查看。

Mtime:

[root@oldbouedu-39 ~]# stat oldboy.txt 
  File: `oldboy.txt'
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d	Inode: 136466      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-04-18 08:06:18.523551208 +0800
Modify: 2018-04-18 08:06:18.523551208 +0800
Change: 2018-04-18 08:06:18.523551208 +0800
[root@oldbouedu-39 ~]# echo oldboyedu.com >oldboy.txt 
[root@oldbouedu-39 ~]# stat oldboy.txt 
  File: `oldboy.txt'
  Size: 14        	Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d	Inode: 136466      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-04-18 08:06:18.523551208 +0800
Modify: 2018-04-18 08:08:19.363550364 +0800
Change: 2018-04-18 08:08:19.363550364 +0800

[root@oldbouedu-39 ~]# ifconfig eth0 |sed -nr '2s#^.*dr:(.*) Bc.*$#\1#gp'
10.0.0.200
posted @ 2019-09-23 13:50  Kalimdor  阅读(95)  评论(0)    收藏  举报