跳到内容

文章类别:服务器

解析su,su -,sudo的区别

肯定有人不知道下面两个命令的区别,

[warmcolor@PC ~]$ su
[warmcolor@PC ~]$ su - ##(有个减号)

那下面两个命令的区别呢?

[warmcolor@PC ~]$ su
[warmcolor@PC ~]$ sudo su

 

首先,su,su -这两个命令都能获得root权限,

但root的密码是不能随便交给别人的,这时就需要sudo命令了,

使用用户自己的密码,临时赋予一般用户root权限,

sudo的运行过程是这样的:

  1. 检查用户是否在/etc/sudoers的列表中,
  2. 如果在,以root权限执行命令,
  3. 取消用户的root

 

接着说说这三个命令的区别:

下面是su的过程:

[warmcolor@PC ~]$ su

密码:

[root@PC warmcolor]# pwd

/home/warmcolor

[root@PC ~]# echo $PATH

/usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/warmcolor/bin

下面是su -的过程:

[warmcolor@PC ~]$ su -

密码:

[root@PC ~]# pwd

/root

[root@PC ~]# echo $PATH

/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

下面是sudo的过程:

[warmcolor@PC ~]$ sudo pwd

[sudo] password for warmcolor:

/home/warmcolor

[warmcolor@PC ~]$ sudo echo $PATH

/usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/warmcolor/bin

可以看出su和sudo没有切换工作目录和环境变量,只是赋予用户权限,

而su -是真正切换到root登录,工作目录切换到/root,环境变量也同时改变.

而网上还有一个说法,sudo 默认将原有的环境变量 reset,只保留一些对安全没有影响设定.

 

至于上面第二个问题,答案其实很简单,

同样切换到root登录,

su使用root的密码,而sudo su使用用户密码.

 

上述命令更为具体的描述请参见man手册.

深度解析Linux目录与文件的权限关系

以下情况适用与访问用户属于’others’,

 

首先给出文件权限:

r (read)(4):可读取此文件的实际内容,如读取文本文件的文字内容等,

w (write)(2):可以编辑,新增或者是修改该文件的内容(但不含删除该文件),

x (eXecute)(1):该文件具有可以被系统执行的权限.

即文件的权限是对文件的内容而言的,

例如:编辑修改文件内容,

而对文件存在本身的操作,则属于包含该文件的目录的权限范畴,

例如:删除,移动,重命名该文件.

 

一个目录只有r权限,

在X界面下,可以进入该目录目,看到录下文件名,即’只能列出文件’,

但能否获得文件名对应文件的详细信息,由文件权限定义.

在终端下,可以ls该目录以获取目录下文件名,但不能cd进入该目录,

但能否获得文件名对应文件的详细信息,由文件权限定义.

例如:有目录test,将test权限设为444,

在test下有文件test_file,test_file的权限为000,

虽然我们不能cd进入test_file(没有x权限),但我们执行

ls -al ./test

能看到test_file文件,但其他信息均为问号显示,

因为那些信息是文件权限的范畴.

 

一个目录只有x权限,

在X界面下,只可以进入该目录,但’无法显示文件夹内容'(没有r权限).

即显示一个空目录.

在终端下,可以cd进入该目录,但是不能ls该目录(没有r权限),

注意,如果知道目录下可能有的文件名,则可以推测出文件是否存在,

例如:有目录test,将test权限设为111,

在test下有文件test_file,test_file的权限为000,

虽然我们不能ls显示test_file(没有r权限),也就是看不到,但我们cd进入test执行

rm ./test_file

却提示是否删除,但因没有w权限又删不掉,

如果test_file文件真的不存在,则会提示文件不存在.

另外,能不能进入某一个目录,只与该目录的x权限有关.

 

一个目录只有w权限,

只有写权限并不能进行实质行的操作,

因为要进行目录内文件的操作首先需要进入该目录(x权限).

 

难点总结:

1.读取目录内文件的内容,目录只需要有x权限,文件只需要有r权限,

(文件名不能tab补全,因为目录没有r权限)

2.将内容写入文件,目录只需要有x权限,文件需要有r和w权限,

(文件名不能tab补全,因为目录没有r权限,文件r是w的前提)

3.删除目录内的文件,只需要目录有x和w权限,与文件权限无关.

即,可以有一个文件,某用户对该文件,不可读,不可写,也不能执行,却能将其删除,

乍一看很是奇妙,但知道了其中的原理,便恍然大悟.

拿去逗逗不懂的人.

只要分清文件与目录权限的区别与范畴,

使用r(read),w(wirte),x(execute),加上u(user),g(group),o(others),

Linux得以实现极复杂却又简单明了的权限控制.

卸载,弹出,安全移除驱动器 的区别

其实有一些Linux基础的从英文就能很清楚的知道是什么意思了,

卸载(umount)

只是解除挂载,可以直接重新挂载,
简单来说,在软件上把访问设备中存储介质的链接去掉了,

一般来说,此时拔掉设备对其中的数据是安全的,
因为数据读写在卸载的时候已经终止,缓冲内容会写入介质.

用于稍后还会继续使用该介质,重新挂载即可(mount).

弹出(eject)

“移除”驱动器中的存储介质,与驱动器中的介质断开联系,
因为其中的存储介质没有了,故不能重新挂载.
相对于光驱来说,就是把盘片拿出来,但是光驱设备还是看得到的,

弹出时会执行卸载再断开联系,故数据是安全的.

用于稍后会更换其他介质,需重新插入介质.
对于优盘类介质内置的设备,需拔出重新接入.

安全移除驱动器(Safely Remove Drive)

断掉设备电源,移除设备需要重新插入设备,
对光驱来说,就是连光驱电源都断掉了.

安全移除驱动器时会执行卸载再切断驱动器电源,故数据是安全的.

用于不再使用该介质及驱动器,再次使用需重新接入驱动器.

增加回复邮件提醒功能

刚下火车第一天就通宵了,主要解决了以下几个问题:

1.

增加了回复邮件提醒功能,

使用的是willin的代码,结合willin的ajax回复,

代码需要的同志自行搜索,

需要提醒的是,willin的wordpress因某种原因已不在运行,

只能从其他网友的博客来获得代码了.

2.

在增加这个功能的时候发现sendmail默认是没有安装的,自行安装了,

发现主机开了mail函数却发不了邮件同志们可以看一下,

主机是不是没有安装sendmail,

3.

测试该功能的时候发现QQ邮箱提示用户名@主机名的代发提示,

这会泄露主机信息,

网上查了一下,稀里糊涂搞了一通,貌似好了.

 

暂时就这些吧,老妈喊吃早饭了

 

PS:在回复勾选了邮件提醒的回复时,会特别慢,以后再修复.

.htaccess防盗链与图片延迟加载兼容性待解决

.htaccess文件(或者”分布式配置文件”)提供了针对目录改变配置的方法,即,在一个特定的文档目录中放置一个包含一个或多个指令的文件,以作用于此目录及其所有子目录.作为用户,所能使用的命令受到限制.

管理员可以通过Apache的AllowOverride指令来设置.

先贴上.htaccess的内容

RewriteEngine On
RewriteCond %{HTTP_HOST} !^blog.warmcolor.net$ [NC]
RewriteRule ^(.*)$ http://blog.warmcolor.net/$1 [L,R=301]

RewriteCond %{HTTP_REFERER} !^http://(.+.)?warmcolor.net/*$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*.(jpe?g|gif|bmp|png)$ http://blog.warmcolor.net/wp-content/themes/traction/images/qrcode.png [L]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

前一段是从域名 warmcolor.net 和 www.warmcolor.net 到 blog.warmcolor.net 的301跳转

后面一段是wordpress的rewrite规则,

实际使用中发现,图片防盗链貌似有点问题,

有时候第一次盗链,图片会正常显示,而不是显示提醒盗链的图片,

而且跟图片延迟加载的插件不兼容,

延迟加载的图片都无法显示,

有时间再看看是什么问题,

正则表达式不会是硬伤.

PS:由于显示问题,防盗链相关代码已经移除