十二 08

详解Linux中的日志及用日志来排查错误的方法

Linux 系统日志
许多有价值的日志文件都是由 Linux 自动地为你创建的。你可以在 /var/log 目录中找到它们。下面是在一个典型的 Ubuntu 系统中这个目录的样子:

2015914100449680
一些最为重要的 Linux 系统日志包括:

/var/log/syslog 或 /var/log/messages 存储所有的全局系统活动数据,包括开机信息。基于 Debian 的系统如 Ubuntu 在 /var/log/syslog 中存储它们,而基于 RedHat 的系统如 RHEL 或 CentOS 则在 /var/log/messages 中存储它们。
/var/log/auth.log 或 /var/log/secure 存储来自可插拔认证模块(PAM)的日志,包括成功的登录,失败的登录尝试和认证方式。Ubuntu 和 Debian 在 /var/log/auth.log 中存储认证信息,而 RedHat 和 CentOS 则在 /var/log/secure 中存储该信息。
/var/log/kern 存储内核的错误和警告数据,这对于排除与定制内核相关的故障尤为实用。
/var/log/cron 存储有关 cron 作业的信息。使用这个数据来确保你的 cron 作业正成功地运行着。
Digital Ocean 有一个关于这些文件的完整教程,介绍了 rsyslog 如何在常见的发行版本如 RedHat 和 CentOS 中创建它们。

应用程序也会在这个目录中写入日志文件。例如像 Apache,Nginx,MySQL 等常见的服务器程序可以在这个目录中写入日志文件。其中一些日志文件由应用程序自己创建,其他的则通过 syslog (具体见下文)来创建。

什么是 Syslog?
Linux 系统日志文件是如何创建的呢?答案是通过 syslog 守护程序,它在 syslog 套接字 /dev/log 上监听日志信息,然后将它们写入适当的日志文件中。

单词“syslog” 代表几个意思,并经常被用来简称如下的几个名称之一:

Syslog 守护进程 — 一个用来接收、处理和发送 syslog 信息的程序。它可以远程发送 syslog 到一个集中式的服务器或写入到一个本地文件。常见的例子包括 rsyslogd 和 syslog-ng。在这种使用方式中,人们常说“发送到 syslog”。
Syslog 协议 — 一个指定日志如何通过网络来传送的传输协议和一个针对 syslog 信息(具体见下文) 的数据格式的定义。它在 RFC-5424 中被正式定义。对于文本日志,标准的端口是 514,对于加密日志,端口是 6514。在这种使用方式中,人们常说“通过 syslog 传送”。
Syslog 信息 — syslog 格式的日志信息或事件,它包括一个带有几个标准字段的消息头。在这种使用方式中,人们常说“发送 syslog”。
Syslog 信息或事件包括一个带有几个标准字段的消息头,可以使分析和路由更方便。它们包括时间戳、应用程序的名称、在系统中信息来源的分类或位置、以及事件的优先级。

下面展示的是一个包含 syslog 消息头的日志信息,它来自于控制着到该系统的远程登录的 sshd 守护进程,这个信息描述的是一次失败的登录尝试:

Syslog 格式和字段
每条 syslog 信息包含一个带有字段的信息头,这些字段是结构化的数据,使得分析和路由事件更加容易。下面是我们使用的用来产生上面的 syslog 例子的格式,你可以将每个值匹配到一个特定的字段的名称上。

下面,你将看到一些在查找或排错时最常使用的 syslog 字段:

 

时间戳
时间戳 (上面的例子为 2003-10-11T22:14:15.003Z) 暗示了在系统中发送该信息的时间和日期。这个时间在另一系统上接收该信息时可能会有所不同。上面例子中的时间戳可以分解为:

2003-10-11 年,月,日。
T 为时间戳的必需元素,它将日期和时间分隔开。
22:14:15.003 是 24 小时制的时间,包括进入下一秒的毫秒数(003)。
Z 是一个可选元素,指的是 UTC 时间,除了 Z,这个例子还可以包括一个偏移量,例如 -08:00,这意味着时间从 UTC 偏移 8 小时,即 PST 时间。
主机名
主机名 字段(在上面的例子中对应 server1.com) 指的是主机的名称或发送信息的系统.

应用名
应用名 字段(在上面的例子中对应 sshd:auth) 指的是发送信息的程序的名称.

优先级
优先级字段或缩写为 pri (在上面的例子中对应 ) 告诉我们这个事件有多紧急或多严峻。它由两个数字字段组成:设备字段和紧急性字段。紧急性字段从代表 debug 类事件的数字 7 一直到代表紧急事件的数字 0 。设备字段描述了哪个进程创建了该事件。它从代表内核信息的数字 0 到代表本地应用使用的 23 。

Pri 有两种输出方式。第一种是以一个单独的数字表示,可以这样计算:先用设备字段的值乘以 8,再加上紧急性字段的值:(设备字段)(8) + (紧急性字段)。第二种是 pri 文本,将以“设备字段.紧急性字段” 的字符串格式输出。后一种格式更方便阅读和搜索,但占据更多的存储空间。

在 Linux 中使用日志来排错
登录失败原因
如果你想检查你的系统是否安全,你可以在验证日志中检查登录失败的和登录成功但可疑的用户。当有人通过不正当或无效的凭据来登录时会出现认证失败,这通常发生在使用 SSH 进行远程登录或 su 到本地其他用户来进行访问权时。这些是由插入式验证模块(PAM)来记录的。在你的日志中会看到像 Failed password 和 user unknown 这样的字符串。而成功认证记录则会包括像 Accepted password 和 session opened 这样的字符串。

失败的例子:

成功的例子:

你可以使用 grep 来查找哪些用户失败登录的次数最多。这些都是潜在的攻击者正在尝试和访问失败的账户。这是一个在 ubuntu 系统上的例子。

由于没有标准格式,所以你需要为每个应用程序的日志使用不同的命令。日志管理系统,可以自动分析日志,将它们有效的归类,帮助你提取关键字,如用户名。

日志管理系统可以使用自动解析功能从 Linux 日志中提取用户名。这使你可以看到用户的信息,并能通过点击过滤。在下面这个例子中,我们可以看到,root 用户登录了 2700 次之多,因为我们筛选的日志仅显示 root 用户的尝试登录记录。

2015914100525226
日志管理系统也可以让你以时间为做坐标轴的图表来查看,使你更容易发现异常。如果有人在几分钟内登录失败一次或两次,它可能是一个真正的用户而忘记了密码。但是,如果有几百个失败的登录并且使用的都是不同的用户名,它更可能是在试图攻击系统。在这里,你可以看到在3月12日,有人试图登录 Nagios 几百次。这显然​​不是一个合法的系统用户。
2015914100543177
重启的原因
有时候,一台服务器由于系统崩溃或重启而宕机。你怎么知道它何时发生,是谁做的?

关机命令
如果有人手动运行 shutdown 命令,你可以在验证日志文件中看到它。在这里,你可以看到,有人从 IP 50.0.134.125 上作为 ubuntu 的用户远程登录了,然后关闭了系统。

内核初始化
如果你想看看服务器重新启动的所有原因(包括崩溃),你可以从内核初始化日志中寻找。你需要搜索内核类(kernel)和 cpu 初始化(Initializing)的信息。

检测内存问题
有很多原因可能导致服务器崩溃,但一个常见的原因是内存用尽。

当你系统的内存不足时,进程会被杀死,通常会杀死使用最多资源的进程。当系统使用了所有内存,而新的或现有的进程试图使用更多的内存时就会出现错误。在你的日志文件查找像 Out of Memory 这样的字符串或类似 kill 这样的内核警告信息。这些信息表明系统故意杀死进程或应用程序,而不是允许进程崩溃。

例如:

你可以使用像 grep 这样的工具找到这些日志。这个例子是在 ubuntu 中:

请记住,grep 也要使用内存,所以只是运行 grep 也可能导致内存不足的错误。这是另一个你应该中央化存储日志的原因!

 

定时任务错误日志
cron 守护程序是一个调度器,可以在指定的日期和时间运行进程。如果进程运行失败或无法完成,那么 cron 的错误出现在你的日志文件中。具体取决于你的发行版,你可以在 /var/log/cron,/var/log/messages,和 /var/log/syslog 几个位置找到这个日志。cron 任务失败原因有很多。通常情况下,问题出在进程中而不是 cron 守护进程本身。

默认情况下,cron 任务的输出会通过 postfix 发送电子邮件。这是一个显示了该邮件已经发送的日志。不幸的是,你不能在这里看到邮件的内容。

你可以考虑将 cron 的标准输出记录到日志中,以帮助你定位问题。这是一个你怎样使用 logger 命令重定向 cron 标准输出到 syslog的例子。用你的脚本来代替 echo 命令,helloCron 可以设置为任何你想要的应用程序的名字。

*/5 * * * * echo ‘Hello World’ 2>&1 | /usr/bin/logger -t helloCron

它创建的日志条目:

每个 cron 任务将根据任务的具体类型以及如何输出数据来记录不同的日志。

希望在日志中有问题根源的线索,也可以根据需要添加额外的日志记录。

原文出处:http://www.jb51.net/LINUXjishu/378593.html

十二 08

Linux环境下VI/VIM编辑文件时无权限保存的解决方法

在Linux环境下,如果直接使用VI/VIM命令编辑没有修改权限的文件时,保存的时候就会提示用户无法进行保存操作,一般的解决方法只能是关闭文件重新以sudo权限打开该文件编辑后再保存(前提是用户具有sudo权限)。其实,在VI/VIM模式下通过一些简单的命令,就能在不关闭当前文件的情况下达到保存文件的目的(感谢晓哲老师提供的方法):

输入命令:%! sudo tee % > /dev/null
按提示输入sudo权限密码
输入“L”(Load File)
输入:q命令退出
关于“%! sudo tee % > /dev/null”这条命令的说明如下:

%      #VI/VIM编辑的文件内容

!      #管道

sudo     #以root权限操作

tee     #将标准输入(即通过管道过来的当前编辑的文件内容)输出到标准输出,同时写入到指定的文件中(即VI/VIM当前编辑的文件)

%      #VI/VIM编辑的文件

> /dev/null  #将标准输出重定向到/dev/null(不输出显示)

十二 06

w3m安装与常用命令

w3m 安装

在终端输入“w3m”,之后按提示进行安装,基本是傻瓜式的。

或者输入 sudo apt-get install w3m

之后会提示输入当前成员密码,即可进行下载安装。

PS:如果您的终端不显示中文请。安装zhcon

输入  sudo apt-get install zhcon -y

w3m 使用总结 

w3m是个开放源代码的命令行下面的网页浏览器。一般的linux系统都会自带这个工具,可以通过它在命令行下面浏览网页。本文介绍这个工具的使用方法。

[功能]
w3m是个开放源代码的命令行下面的网页浏览器。 它支持表格、框架、SSL连线、颜色。如果是在适当的terminal上,甚至还支持“inline image”。 这个软件通常尽量呈现出网页本来的编排。

*常用交互式命令:
下面列出启动w3m之后常用的交互命令,更多命令参见帮助。
1)光标移动 
SPC,C-v 向下翻页
b,ESC v 向上翻页
l,C-f 焦点向右
h,C-b 焦点向左
j,C-n 焦点向下
k,C-p 焦点向上
J 向上滚动一行
K 向下滚动一行
^,C-a 到行首
$,C-e 到行尾
w 到下一个单词
W 到上一个单词
> 右移一屏
< 左移一屏
. 屏幕右移一列
, 屏幕左移一列
g,M-< 到首行
G,M-> 到末行
ESC g 到指定行
Z 当前行居中
z 当前列居中
TAB 转到下个超链接
C-u,ESC TAB 到上个超链接
[ 到第一个超链接
] 到最后一个超链接

2)超链接操作 
RET 打开超链接
a, ESC RET 链接另存为
u 查看链接url
i 查看图片url
I 查看图片
ESC I 图片另存为
: 标记rul字符串为锚点
ESC : 标记ID串为锚点
c 查看当前页面的URL
= 显示当前页面属性
C-g 查看当前行号
C-h 查看历史记录
F 提交表单
M 用外部浏览器打开当前页面 (use 2M and 3M to invoke second and third browser)
ESC M 用外部浏览器打开链接 (use 2ESC M and 3ESC M to invoke second and third browser)

3)文件/流 操作 
U 打开URL
V 打开文件
@ 执行外部命令并导入
# 执行外部命令并浏览

4)缓存操作 
B 返回
v 查看源代码
s 选择缓存
E 编辑缓存代码
C-l 重画屏幕
R 刷新
S 页面另存为
ESC s 源码另存为
ESC e 编辑图片

缓存择模式(也就是了s以后)
k, C-p 上一缓存
j, C-n 下一缓存
D 删除当前缓存
RET 转至选择的缓存

5)书签操作 
ESC b 打开书签
ESC a 添加当前页到书签

6)搜索 
/,C-s 向前搜索
?,C-r 向后搜索
n 下一个
N 上一个
C-w 打开/关闭 循环搜索

7)标记 
C-SPC 设定/取消 标记(这个键一般被输入法占用了)
ESC p 转至上一标记
ESC n 转至下一标记
” 使用正则表达式标记

8)杂项 
! 执行外部命令
H 帮助
o 设置选项
C-k 显示接受到的cookie
C-c 停止
C-z 挂起(退出)
q 退出(需确认)
Q 退出而不确认

9)行编辑模式 
也就是输入”U”之后,开始输入url时候的状态。
C-f 光标向后
C-b 光标向前
C-h 删除前一字符
C-d 删除当前字符
C-k 删除光标后所有内容
C-u 删除光标前所有内容
C-a 光标到行首
C-e 光标到行尾
C-p 取得历史记录中的前一个词
C-n 取得历史记录中的后一个词
TAB,SPC 自动完成文件名
RETURN 确定

[举例] 
*以网址启动w3m
$w3m mrdede.com
这样打开w3m,并且以网页打开。(如果提示不能浏览框架,试试提示中的链接) ,注意,如果机器需要代理上网,那么应该设置一个变量:http_proxy ,设置的方法: “export http_proxy=http://user:password@ip.com”.这里,user就是用户名,password就是该用户的密码,ip就是代理服务器的ip地址.

*支持简体中文的启动:
$w3m http://mrdede.com -o display_charset=GB2312
这里,时候网页无法显示中文,那么可以尝试用这种方法启动。

**进入w3m之后的操作
这里简单介绍浏览网页时候常用的一些操作,如果想要知道更多的操作,请查看交互状态下,”H”命令之后显示的帮助信息。
*显示帮助信息:
输入”H”.

*返回上次页面:
输入”B”.
这里包括帮助页面,上次的网址等等。

*查看历史url:
输入”[Ctrl]h”.
这样会查看你访问过的页面,输入B可以返回。

*输入指定网址:
输入”U”.
这是在启动w3m之后进行的,输入之后,可以在底部输入你想要访问的网址。

*屏幕上一页:
输入”b”.

*屏幕下一页:
输入”[空格]“.

*添加书签:
输入”[Esc]a”.

*列出书签:
输入”[Esc]b”.

*建立新的标签:
输入”T”.
这样会新开一个标签,内容和当前的网页一样。

*在新的标签中打开链接:
输入”[Ctrl]t”.
这里,需要先停在相应的链接上面。会新开一个标签,并且在其中显示对应的网页,适合想要同时显示多个网页的情况。

*切换到上一个标签:
输入”{“.

*切换到下一个标签:
输入”}”.

*弹出标签选择菜单:
输入”[Esc]t”.
这样会弹出一个菜单,然后可以选择你想要进入的标签。

*关闭当前标签:
输入”[Ctrl]q”.
这样会关闭当前标签。

*弹出链接列表菜单:
输入”[Esc]m”.
或”[Esc]l”.
这样显示出当前页面所链接列表,可以择相应链接并且进入。

*退出弹出菜单:
输入”h”.
或”[Ctrl]h”.
或”[Left]“.

*显示当前行:
输入”[Ctrl]g”.

*去指定行:
输入”[Esc]g”.
这样,之后输入行号将会跳到指定的行号。

*连同光标向下滚动:
输入”J”.

*连同光标向上滚动:
输入”K”.

*光标向上移动:
输入”k”.
或输入”[上箭头]“.
这里,方向移动的指令和vim编辑器中的一样,如果上下超过了页面边缘,那么会自动滚动半页使光标的所在行位于屏幕中央。

*光标向下移动:
输入”j”.
或输入”[下箭头]“.
这里,方向移动的指令和vim编辑器中的一样,如果上下超过了页面边缘,那么会自动滚动半页使光标的所在行位于屏幕中央。

*光标向左移动:
输入”h”.
或输入”[左箭头]“.
这里,方向移动的指令和vim编辑器中的一样。

*光标向右移动:
输入”l”.
或输入”[右箭头]“.
这里,方向移动的指令和vim编辑器中的一样。

*退出w3m:
输入”q”.

*切换是否接受鼠标动作:
输入”m”.
这样切换w3m是否接受鼠标动作。如果不接受鼠标动作,在X系统下面可以用鼠标选择文本,否则接受鼠标的话就无法选择文本但是能够用鼠标点击链接并打开。

*搜索字符串
输入”/<你要搜索的字符串>” .
这里,和vi上面的一样。

PS:具体的命令,可以输入’H',看帮助。

十二 06

新装Linux系统如何获得ROOT权限

新装LINUX系统如何获得ROOT权限,图文教程

一、进入terminal

cc506c8b4710b912b34aed5ac2fdfc039345224f

二、然后,输入sudo passwd root 并,设置密码

提示要你输入两次密码,自己设定密码,一定要记住,然后切换到root使用

f15e24292df5e0fed28c92a55d6034a85fdf72ba

三、输入 su root

要求你输入密码,然后,输入刚才设定的密码OK,进去了

73ca5910b912c8fcbf98ed69fd039245d78821ef

如果不想切换root但是想拥有大部分root权限

可以在使用命令时候加上sudo,

sudo mount挂载

sudo命令

another

如果你想再linux上切换用户,输入,su + 用户名

就OK了,他会要求你输入密码

十一 26

PHP http_build_query函数

http_build_query  生成 URL-encode 之后的请求字符串。

string http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )

query_data

可以是数组或包含属性的对象。

一个 query_data 数组可以是简单的一维结构,也可以是由数组组成的数组(其依次可以包含其它数组)。

如果 query_data 是一个对象,只有 public 的属性会加入结果。

范例

例一 http_build_query() 使用示例

以上例程会输出:

例二 http_build_query() 使用数字下标的元素

以上例程会输出:

例三 http_build_query() 使用复杂的数组

这会输出:(为了可读性,字已经换行了)

Note:

只有基础数组中的数字下标元素“CEO”才获取了前缀,其它数字下标元素(如 pastimes 下的元素)则不需要为了合法的变量名而加上前缀。

例四 http_build_query() 使用对象

以上例程会输出:

 

十一 20

PHP Curl实例

1、cURL请求的基本步骤:
(1)初始化

(2)设置选项,包括URL

(3)执行并获取HTML文档内容

(4)释放cURL句柄

注意:第二步最重要,也就是curl_setopt()函数 我们可以加一段检查错误的语句,这里要注意用的是”===false”,这是为了区分空输出和布尔值false

curl_getinfo()函数返回cURL执行后这一请求相关的信息,这对调试和排错很有用:

返回的数据

2、使用curl抓取图片

这些信息在调试很有用,例如在cURL抓取的时候,可能由于网络等原因,时常出现抓取数据不完整的情况,这是我们可以通过所获取的数据计算filesize,然后和curl_getinfo()获取的进行比较,如果大小相等,就认定下载正确,否则进行重复尝试。

下面我们看一个抓取图片的例子:

3、在cURL中用POST方法发送数据

用此方法可以模拟留言,或者可以坐灌水机器人,思路都是一样的

4、用cURL上传文件

注意:要发送文件时,要在文件名前面加上 @ 前缀并使用完整路径

5、使用代理进行抓取

为什么要使用代理进行抓取呢?以google为例吧,如果去抓google的数据,短时间内抓的很频繁的话,你就抓取不到了。google对你的ip地址做限制这个时候,你可以换代理重新抓。

6、抓取一些有页面访问控制的页面

以前写过一篇,页面访问控制的3种方法有兴趣的可以看一下。

如果用上面提到的方法抓的话,会报以下错误

You are not authorized to view this page
You do not have permission to view this directory or page using the credentials that you supplied because your Web browser is sending a WWW-Authenticate header field that the Web server is not configured to accept.

这个时候,我们就要用CURLOPT_USERPWD来进行验证了。

7、模拟登录到sina

我们要抓取数据,可能是登录以后的内容,这个时候我们就要用到curl的模拟登录功能了。

打开/tmp下面的cookie文件看一下

8、cURL设置项

其实,cURL有许多配置选项,这些选项才是cURL的灵魂,通过setopt()设置,下面总结几个比较常见且重要的配置项,希望在对读者在以后用到cURL时有一定的帮助:

CURLOPT_AUTOREFERER:当根据location:重定向时,自动设置header中的Referer:信息

CURLOPT_COOKIESESSION:启用时cURL会紧紧传递一个sessioncookie,忽略其他cookie

CURLOPT_HEADER:将头文件的信息作为数据流输出

CURLOPT_INFILESIZE:设置上传文件的大小,单位为字节

CURLOPT_MAXCONNECTS:允许最大连接数量

CURLOPT_MAXREDIRS:指定HTTP重定向的最多数量

CURLOPT_COOKIE:设置HTTP请求中“cookie:”部分的内容,多个cookie用分号跟个,分号后带一个空格

CURLOPT_POSTFIELDS:全部数据用HTTP协议中的“POST”操作发送要发送文件,在文件名前面加上@前缀并使用完整路径

十一 19

PHP汉字字符串替换、转换(str_replace、strtr)

str_replace

替换字符串、替换汉字,字母区分大小写

在上一例中, $a,$b,$c都可以是数组或字符串,或三个变量中又有字符串又有数组

$i是可选的,返回替换次数。


 str_replace小结:

$a,$b,$c全部为字符串时好理解,就不说了。$a,$b,$c全部或分别为数组的时候,在某些条件下是很有用处的。

1、当$a,$b都为数组时,即是使用$b[0]替换所有$a[0]的字符,使用$b[1]替换所有$a[1]的字符……也就是说是使用$b数组的对应键的值替换$a数组中的对应键的值;如果$b成员个数小于$a的成员个数时,用空代替。

2、$a可以为数组可以为字符串,但是当$a为字符串时,$b必须为字符串

3、每次替换都是替换新最新的对象($c),看“例九”,先用“a1”在$c中进行查找替换,再用“先生”在$c中进行查找替换,此时$c=’s c1s 织梦sa’,现在使用$a中最后一个成员“织梦s”对$c字符串进查找替换。

strtr

字符转换

 strtr小结:

1、例十三说明,每次转换都是对原始字符串进行转换的,并不是对新字符串转换。

2、在$b和$c全为字符串时,是使用$c的第1位替换$b的第1位字符,使用$c的第2位替换$b的第2位字符……对应位没有字符,则不做转换处理。

总结:

函数str_replace与函数strtr各有个的使用场景,多做一些实例的测试感觉挺有意思的,也使我们能更深入的了解并理解它的更多功能,把这些积累的经验运用到开发过程中,解决一些实际问题,达到节省开发时间或脚本运行的更优化。

如果发现我的问题或者有疑问,请指出或者一起探讨学习。织梦先生QQ1234567

 

十一 07

织梦获取文章链接的函数GetOneArchive

在某自自定义的会员页面中调用指定栏目(typeid=’36′)最新文章,前提是这个页面允许直接使用PHP代码,循环中使用GetOneArchive函数,带入文章ID,返回的是数组,$url['arcurl']即为此文章链接。

 

十一 07

Linux命令chmod:修改文件或文件夹权限

在Linux中要修改一个文件夹或文件的权限我们需要用到linux chmod命令来做,下面我写了几个简单的实例大家可参考一下。

语法如下:

chmod [who] [+ | - | =] [mode] 文件名

命令中各选项的含义为

u 表示“用户(user)”,即文件或目录的所有者。
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
o 表示“其他(others)用户”。
a 表示“所有(all)用户”。它是系统默认值。

操作符号可以是:

+ 添加某个权限。
– 取消某个权限。
= 赋予给定权限并取消其他所有权限(如果有的话)。

设置mode所表示的权限可用下述字母的任意组合:

r 可读。
w 可写。
x 可执行。

X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。

s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
t 保存程序的文本到交换设备上。
u 与文件属主拥有一样的权限。
g 与和文件属主同组的用户拥有一样的权限。
o 与其他用户拥有一样的权限。

实例

修改文件可读写属性的方法

例如:把index.html 文件修改为可写可读可执行:

chmod 777 index.html

要修改目录下所有文件属性可写可读可执行:

chmod 777 *.*

把文件夹名称与后缀名用*来代替就可以了。
比如:修改所有htm文件的属性:

chmod 777 *.htm

修改文件夹属性的方法
把目录 /images/xiao 修改为可写可读可执行

chmod 777 /images/xiao

修改目录下所有的文件夹属性

chmod 777 *

把文件夹名称用*来代替就可以了

要修改文件夹内所有的文件和文件夹及子文件夹属性为可写可读可执行

chmod -R 777 /upload

总结linux下目录和文件的权限区别

文件:读文件内容(r)、写数据到文件(w)、作为命令执行文件(x)。

目录:读包含在目录中的文件名称(r)、写信息到目录中去(增加和删除索引点的连结)、搜索目录(能用该目录名称作为路径名去访问它所包含的文件和子目录)

具体说就是:

(1)有只读权限的用户不能用cd进入该目录:还必须有执行权限才能进入。
(2)有执行权限的用户只有在知道文件名,并拥有读权利的情况下才可以访问目录下的文件。
(3)必须有读和执行权限才可以ls列出目录清单,或使用cd命令进入目录。
(4)有目录的写权限,可以创建、删除或修改目录下的任何文件或子目录,即使使该文件或子目录属于其他用户也是如此。

查看目录权限

查看文件权限的语句:

在终端输入:

ls -l xxx.xxx (xxx.xxx是文件名)

那么就会出现相类似的信息,主要都是这些:

-rw-rw-r–

一共有10位数

其中: 最前面那个 – 代表的是类型
中间那三个 rw- 代表的是所有者(user)
然后那三个 rw- 代表的是组群(group)
最后那三个 r– 代表的是其他人(other)

然后我再解释一下后面那9位字符:

r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)
- 表示相应的权限还没有被授予

现在该说说修改文件权限了

在终端输入:

chmod o w xxx.xxx

表示给其他人授予写xxx.xxx这个文件的权限

chmod go-rw xxx.xxx

表示删除xxx.xxx中组群和其他人的读和写的权限

其中:

u 代表所有者(user)
g 代表所有者所在的组群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o
r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)

其中:rwx也可以用数字来代替
r ————4
w ———–2
x ————1
- ————0
行动:

表示添加权限
- 表示删除权限
= 表示使之成为唯一的权限

当大家都明白了上面的东西之后,那么我们常见的以下的一些权限就很容易都明白了:

-rw——- (600) 只有所有者才有读和写的权限
-rw-r–r– (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
-rwx—— (700) 只有所有者才有读,写,执行的权限
-rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
-rwx–x–x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
-rw-rw-rw- (666) 每个人都有读写的权限
-rwxrwxrwx (777) 每个人都有读写和执行的权限

十一 07

linux命令wget:wget使用方法

Wget是一个十分常用命令行下载工 具,Wget使用格式如下:
#wget [选项] [下载地址]
Wget常用参数
-b:后台下载,Wget默认的是把文件下载到当前目录。
-O:将文件下载到指定的目录中。
-P:指定保存文件的目录。
-N:don’t re-retrieve files unless newer than
-t:尝试连接次数,当Wget无法与服务器建立连接时,尝试连接多少次。
-c:断点续传,如果下载中断,那么连接恢复时会从上次断点开始下载。
此外,Wget还可下载整个 网站,如下载http://man.chinaunix.net整个Man手册中心。
只需输入如下命令即可: #wget -r -p -np -k http://man.chinaunix.net 其中-r参数是指使用递归下载,
-p是指下载所有显示完整网页所以需要的文件,如图片等,-np是指不搜索上层目录,-k则 是指将绝对链接转换为相对链接。
Continue reading