查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

大灰狼与灰太郎

知识啊,越学越发现会的太少

 
 
 
 

日历

 
 
模块内容加载中...
 
 
 
 
 
 
 
博友列表加载中...
 
 
 
 
 
 
 
 
留言列表加载中...
 
 
 
 
 

天气

 
 
模块内容加载中...
 
 
 
 
 
 
 
列表加载中...
 
 
 
 
 
 
 
 

[置顶] 博客说明

2010-12-19 15:31:22 阅读395 评论0 192010/12 Dec19

博客说明 - 流云寒星 - 大灰狼与灰太郎本博客目前主要用于web开发相关知识记录,交流学习,欢迎高手留言指点。

本博客实时有人照看,如果有任何意见、建议、问题、指导,欢迎随时留言,我将在第一时间回应您。博客说明 - 流云寒星 - 大灰狼与灰太郎

作者  | 2010-12-19 15:31:22 | 阅读(395) |评论(0) | 阅读全文>>

CLFS官方说明中文翻译

2012-3-3 12:18:50 阅读1364 评论0 32012/03 Mar3

 

 版权声明

本文作者是一位自由软件和Linux系统爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布。任何人都可以自由使用、转载、复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件。您可以自由链接、下载、传播此文档,但前提是必须保证全文完整转载,包括完整的版权信息和作译者声明。

原链接http://weiweiabc109.blog.163.com/blog/static/28357220122301850484/

博客链接http://weiweiabc109.blog.163.com



What is Cross Linux From Scratch?
什么是交叉编译的LFS?

Cross Linux From Scratch (CLFS) is a project that provides you with step-
by-step instructions for building your own customized Linux system 
entirely from source.
交叉编译的LFS是一个项目,它提供给你从源码中构建一个完全定制的Linux系统的一
步一步的说明。

Why would I want a CLFS system?
为什么我想要一个CLFS系统?

Many wonder why they should go through the hassle of building a Linux 
system from scratch when they could just download an existing Linux 
distribution. However, there are several benefits of building CLFS. 
Consider the following:
很多人对为什么要自寻麻烦地去从零构建一个Linux系统而感到困惑,他们只要下载
一个现成的Linux发行版就可以。然而,仔细考虑到以下的因素,你会发现构建一个

CLFS有很多好处:
CLFS teaches people how to build a cross compiler
CLFS教会人们怎样去建立一个交叉编译器

Building CLFS teaches you how to make a cross-compiler and the necessary 
tools, to build a basic system on a different architecture. For example 
you would be able to build a Sparc toolchain on an x86 machine, and 
utilize that toolchain to build a Linux system from source code.
构建CLFS可以让你明白怎么构建一个交叉编译器和必须的工具,以及在不同的架构上
构建一个基础系统。例如,你可以建立一个Sparc(SUN公司的工作站系统
)的工具链在x86的机器上,然后利用这个工具链从源码中构建出一个Linux系统。

CLFS teaches people how to utilize a multilib system
CLFS告诉人们怎么去利用一个multilib(一个先进的典型库)系统

CLFS takes advantage of the target system's capability, by utilizing a 

multilib capable build system.
CLFS利用目标系统的能力,通过multilib构建系统

CLFS teaches people how a Linux system works internally
CLFS告诉人们一个Linux系统内部的工作原理。

Building CLFS teaches you about all that makes Linux tick, how things work 
together and depend on each other. And most importantly, how to customize 
it to your own tastes and needs.
构建CLFS可以教会你关于所有编译Linux的点滴,每个部分怎么互相配合、依赖正常
运转的。更重要的,教会你怎么样通过自己的口味和需求来定制他。

Building CLFS produces a very compact Linux system
构建CLFS可以制造出一个非常简洁的Linux系统

When you install a regular distribution, you often end up installing a lot 
of programs that you would probably never use. They're just sitting there 
taking up (precious) disk space.
当你安装一个正规的发行版,你往往安装了很多你可能从来不会用到程序。他们只是
占据你宝贵的磁盘空间。

CLFS can be built from most Unix Style Operating Systems
CLFS可以从大多数Unix型的操作系统被构建。

You can build CLFS even if you don't have Linux running. Our build 
instructions have been tested to build from Solaris and the BSDs.
你甚至可以构建CLFS不需要一个正在运行的Linux。我们的系统构建指令都是在
Solaris(Sun Microsystems研制的类Unix操作系统)和BSD等系统上测试过的。

CLFS is extremely flexible
CLFS是极其灵活的

Building CLFS could be compared to a finished house. CLFS will give you 
the skeleton of a house, but it's up to you to install plumbing, 
electrical outlets, kitchen, bath, wallpaper, etc. You have the ability to 
turn it into whatever type of system you need it to be, customized 
completely for you.
构建CLFS可以比作一个完工的房子。CLFS会给你一个房子的骨架,但是它可以让你自
行安装管道、电路、厨房、浴室、壁纸等等。你有能力将它变成任何你想要的类型的
系统,完全的为你定制。

CLFS offers you added security
CLFS为你增加安全性

You will compile the entire system from source, thus allowing you to audit 
everything, if you wish to do so, and apply all the security patches you 
want or need to apply. You don't have to wait for someone else to provide 
a new binary package that (hopefully) fixes a security hole. Often, you 
never truly know whether a security hole is fixed or not unless you do it 
yourself.
你会从源码中编译全部的系统,因此,你要审核系统的所有部分,只要你想,你就可
以安装所有的安全补丁。你也不需要等待别人提供给你修补安全性漏洞的二进制包。
往往,你并不真正了解是否这个安全漏洞有没有被修补,除非你自己来修补它。

What can I do with my CLFS system?
我可以用我的CLFS系统做什么?

A by-the-book CLFS system is fairly minimal, but is designed to provide a 
strong base on which you can add any packages you want. See the CBLFS and 
BLFS projects for a selection of commonly used packages.
通过说明书制作的CLFS系统是相当简洁的,但是它被设计成提供了强大的基础,可以
在其上安装任意你想要的软件包。可以看一下CBLFS和BLFS项目一般性选择的使用的
软件包。

作者  | 2012-3-3 12:18:50 | 阅读(1364) |评论(0) | 阅读全文>>

date命令详解

2011-12-15 11:12:28 阅读316 评论0 152011/12 Dec15

Linux下date命令用法

  • date [OPTION]… [+FORMAT]
  • date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

date命令参数

  • -d, –date=STRING  显示STRING指定的时间
  • -f, –file=DATEFILE  类似–date参数显示DATEFILE文件中的每行时间
  • -ITIMESPEC, –iso-8601[=TIMESPEC]  以ISO  8601 格式显示日期/时间。TIMESPEC为”date”(只显示日期)、”hours”、”minutes”、”senconds”(显示时间精度)之一,默认为”date”。
  • -r, –reference=FILE  显示文件的最后修改时间
  • -R, –rfc-2822  以RFC-2822兼容日期格式显示时间
  • -s, –set=STRING  设置时间为STRING
  • -u, –utc, –universal  显示或设定为Coordinated Universal Time时间格式

date命令输出显示格式

  • %%    字符%
  • %a     星期的缩写(Sun..Sat)
  • %A    星期的完整名称 (Sunday..Saturday)
  • %b     月份的缩写(Jan..Dec)
  • %B     月份的完整名称(January..December)
  • %c     日期时间(Sat Nov 04 12:02:33 EST 1989)
  • %C     世纪(年份除100后去整) [00-99]
  • %d     一个月的第几天(01..31)
  • %D     日期(mm/dd/yy)
  • %e     一个月的第几天 ( 1..31)
  • %F    日期,同%Y-%m-%d
  • %g     年份(yy)
  • %G     年份(yyyy)
  • %h     同%b
  • %H    小时(00..23)
  • %I     小时(01..12)
  • %j     一年的第几天(001..366)
  • %k     小时( 0..23)
  • %l      小时( 1..12)
  • %m    月份(01..12)
  • %M    分钟(00..59)
  • %n     换行
  • %N     纳秒(000000000..999999999)
  • %p     AM or PM
  • %P     am or pm
  • %r     12小时制时间(hh:mm:ss [AP]M)
  • %R    24小时制时间(hh:mm)
  • %s     从00:00:00 1970-01-01 UTC开始的秒数
  • %S     秒(00..60)
  • %t     制表符
  • %T    24小时制时间(hh:mm:ss)
  • %u     一周的第几天(1..7);  1 表示星期一
  • %U     一年的第几周,周日为每周的第一天(00..53)
  • %V     一年的第几周,周一为每周的第一天 (01..53)
  • %w     一周的第几天 (0..6);  0 代表周日
  • %W    一年的第几周,周一为每周的第一天(00..53)
  • %x     日期(mm/dd/yy)
  • %X     时间(%H:%M:%S)
  • %y     年份(00..99)
  • %Y     年份 (1970…)
  • %z     RFC-2822 风格数字格式时区(-0500)
  • %Z     时区(e.g., EDT), 无法确定时区则为空


举例:

$ date -d "2010-11-15 23:00:01"
Mon Nov 15 23:00:01 PST 2010
$ date -d "2010/11/15 23:0:2"
Mon Nov 15 23:00:02 PST 2010
$ date -d "2010/11/15T23:0:2"
Mon Nov 15 08:00:02 PST 2010
$
$ echo "2010-11-15 23:00:01" > date.txt
$ echo "2010/11/15 23:00:02" >> date.txt
$ cat date.txt
2010-11-15 23:00:01
2010/11/15 23:00:02
$ date -f date.txt
Mon Nov 15 23:00:01 PST 2010
Mon Nov 15 23:00:02 PST 2010
$
$ ls -l
total 4
-rw-r--r-- 1 znan sybase    40 Nov 15 21:14 date.txt
$ date -r date.txt
Mon Nov 15 21:14:36 PST 2010
$
$ date -I
2010-11-15
$ date -Ihours
2010-11-15T21-0800
$ date -Iminutes
2010-11-15T21:16-0800
$ date -Iseconds
2010-11-15T21:16:24-0800
$
$ date -R
Mon, 15 Nov 2010 21:47:08 -0800
$ date -u
Tue Nov 16 05:47:13 UTC 2010
$
$ date +"Today is %A."
Today is Monday.
$ date +"Date:%b. %e, %G"
Date:Nov. 15, 2010
$ date +"Date: %b.%e, %G"
Date: Nov.15, 2010
$ date +"%x %X"
11/15/2010 09:50:21 PM
$ date +"%Y-%m-%d %H:%M:%S"
2010-11-15 21:51:32
$ date +"%Y-%m-%d %I:%M:%S %p"
2010-11-15 09:51:55 PM
$

作者  | 2011-12-15 11:12:28 | 阅读(316) |评论(0) | 阅读全文>>

selinux相关

2011-7-14 21:36:04 阅读330 评论0 142011/07 July14

大多数 SELinux的设置都是布尔值-换句话说就是,通过设定 0 或 1 来使其关闭或激活。默认这些值存储在 /selinux/booleans 目录下。举一个简单的例子,user_ping,这个布尔值通常设置为 1,以允许用户使用ping命令。想要了解 SELinux 的详细信息,请浏览http://www.nsa.gov/index.shtml

在工作中
如果你只是想进行 SELinux的实验,你可以将其配置为 Permissive 模式。这个模式会记录任何违规操作,而不会停止他们。你可以使用安全级别管理工具进行配置,也可以在 配置文件 /etc/sysconfig/selinux(链接文件) 中,通过 SELINUX=permissive 来设定。

SELinux 状态

SELinux 有三种可能的状态:enforcing,permissive和 disabled。 enforcing和disabled 很好理解,就像其本身的意思一样。 permissive意味着 SELinux 会记录所有违规的操作的而不会去停止他们。

当 SELinux被激活,这里有两种工作方式: targeted或 strict。默认模式是 targeted,这也是我建议你采用的,它允许你定要保护那些目标,如何保护。

等会儿你就会看到,通过图形 SELinux管理工具,配置 SELinux是很简单的。同样,一些简单配置可以通过改变配置文件 /etc/sysconfig/selinux 来完成。在配置文件中有三种指令,描述如下:
指令 <-------->描述
SELINUX <-------->SELinux工作状态,可以设置为 enforcing,permissive或disabled。
SELINUXTYPE <-------->指定保护级别。默认是 targeted,仅作用于daemons。另一个选择是 strict 使用 SELinux进行全面保护。
SELOCALDEFS <-------->支持本地 SELinux 策略。默认设置为 0(即关闭)

如果你想改变 SELinux的基本状态,改变 SELinux指令。重启后,改动生效。

如果你已配置完 SELinux 必须重启, SELinux 策略启用事需要占有几分钟的时间。

手动配置

SELinux 相对来说还是新技术。如果你还没有充分理解它,最好使用 SELinux管理工具进行 SELinux配置。作为安全级别管理工具的一部分,SELinux 图形配置工具已经有了很大的改进。你甚至可以利用新的工具为单独的目录配置 SELinux内容。

这个配置工具比较新,因此许多人认为应该到RHEL 6再发布。在第9章,我们已经描述了如何为 Apache 的虚拟主机配置 SELinux。

在结尾,有一些基本的 SELinux命令。如果你已经启用了 SELinux,使用 ls -Z 命令你能看到类似于上面示例的 SELinux 内容。使用 getenforce 命令可以获得当前 SELinux的工作状态,它范围三种状态的一种:enforcing,permissive或 disabled。

你可以使用 setenforce 命令来改变 SELinux 工作状态,命令如下:
# setenforce enforcing
# setenforce permissive
这将改动 /selinux/enforce 的布尔值。通常来说,你也可以直接更改配置文件:
# cat "1" > /selinux/enforce

如果你想改变某个文件或目录的配置,可以使用 chcon 命令。例如,你想将一个非标准文件配置给 FTP 服务器,你需要确定该目录 SELinux内容与默认 FTP 目录相符。你可以使用以下命令查看:
# ls -Z /var/ftp/
drwxr-xr-x root root system_u:object_r:public_content_t pub
SELinux内容显示,该目录是系统用户(system_u)和系统对象(object_r),允许其他人共享的类型(public_content_t)。如果你为 FTP 服务器创建了其它目录,你需要为这个目录配置相同的SELinux内容。例如你作为 root 用户创建了 /ftp 目录,并使用 ls -Z 命令查看,你会看到以下内容:
drwxr-xr-x root root user_u:object_r:root_t ftp
使用 chcon 命令来改变SELinux内容。如果含有子目录,你需要使用递归选项 -R。这中情况下,改变目录的用户与类型以匹配 /var/ftp,运行下面命令:
# chcon -R -u user_u -t public_content_t /ftp
如果你想这个目录支持上传功能,你需要指定另一个类型:public_content_rw_t。命令如下:
# chcon -R -u user_u -t public_content_rw_t /ftp

默认的文件配置保存在 /etc/selinux/targeted/contexts/files/file_contexts 文件中。如果你进行了错误的操作,想使某个文件返回原来的 SELinux配置,可以使用 restorecon 命令根据存储在 file_contexts 的配置进行恢复。不过默认的目录,不一定和你创建的一样。例如:使用下面命令改变 /ftp 目录的 SELinux内容类型:
# restorecon -F /ftp
# ls -Z /
drwxr-xr-x root root system_u:object_r:default_t ftp

使用 SELinux管理工具进行配置

这一节需要你将 SELinux 模式配置为 enforcing 或 permissive,见前面的描述。最简便的配置 SELinxu的方法就是使用 SELinux管理工具,你可是使用 system-config-selinux 命令启动它。如果你没有启用它,你将不会启动这个工具如下图所示,或仅收到地址为 232544错误。在开始本节前,启用 SELinxu 至少为 permissve模式,重启。如果你在 RHCE 考试中需要使用 SELinux,你最好将 SELinux 工作模式设为 enforcing。



SELinux管理工具比其他安全级别管理工具拥有更多的功能。如你所见,这里默认的当前模式是 enforcing,你可以设置为 Enabled,Permissive或 Disabled。截至所写,这一工具只支持默认策略类型。如果你不准备改变默认的策略类型,不需要在激活 Relabel On Next Reboot 选项。

在 SELinux管理工具的左侧窗格中有一定数量的类,这些类将在以下节里描述。这里的许多的类都是布尔类型,和大多数 SELinux类一样。

SELinux 布尔值设置

如你所见, SELinux 策略可以分为不同的类,一些于系统管理有关,一些关于服务。你做的任何改动都对应这 /selinux/booleans 目录下的布尔变量。除非你作出更改,不然你不会在 /selinux/booleans 目录下看到那些变量的。



随着安全级别管理工具的升级,本文所描述的信息与实际可能有所差距。你可能看到比我描述的更多的类或选项,这取决于你所安装的服务与包。

我不会介绍所有的选项。但是不要错过这些,可能 Red Hat 刚刚对 RHCE 和 RHCT 的考试增加了新的需求。

Admin
在 Admin 类下,你可以允许系统使用未分配的终端(ttys),允许对 root 目录进行写操作,从非标准位置读取文件,禁止任何进程加载内核模块,禁止任何对 SELinux策略的修改,以及提供对缓冲区溢出保护的支持。

Cronn
在这节,你可以启用额外的规则以支持 fcron 调度命令,以及禁用 SELinux对 cron服务的保护。

CVS
如果你使用 CVS 版本控制系统,你可能想使它能够访问密码的影文件。

Databases
如果你安装了 MySQL 或 PostgreSQL 数据库系统,你可以关闭 SELinux对它们的保护。

FTP
这里有6个配置项,RHEL5 的 SELinux 允许 FTP作为独立于 xinetd (第13章对 xinetd服务有描述)的服务允许。即支持 vsftpd 作为常规服务运行,而不与 inetd或 xinetd 有关联。允许目录上传,需使用 public_content_rw_t 指令,前面已有讨论。你可以同样支持使用 CIFS和 NFS进行文件传输,允许读写用户家目录,或禁用 SELinux对 FTP服务的保护。

HTTPD Service
这里有一些 SELinux指令以增强 Apache Web 服务器的安全性,如下列所示。许多是很好理解的,其中一些,我添加了注释。
*允许 Apache 使用 mod_auth_pam (Pluggable Authentication Modules)
*允许 HTTPD 支持 CGI (CGI脚本)
*允许 httpd 守护进程对有 public_content_rw_t 标签的目录与文件写入(类似 FTP)
*允许 HTTPD 脚本和模块连接到网络
*允许 HTTPD 脚本和模块通过网络连接到数据库
*允许 HTTPD 脚本对有 public_content_rw_t 标签的目录与文件写入(类似 FTP)
*允许 HTTPD 读取家目录
*允许 HTTPD 作为 FTP 服务器运行
*允许 HTTPD 运行 SSL 与 CGI 在同一域中
*允许 HTTPD 支持内置脚本
*禁止 SELinux 对 httpd守护进程的保护
*禁止 SELinux 对 httpd suexec(可允许 HTTPD 服务的可执行文件)的保护
*统一 HTTPD 处理的所有内容档案
*统一 HTTPD 连接终端;需要处理证书

Kerberos
这里有3个配置选项。一个选项允许其他进程使用 Kerberos 文件(默认启用)。其他两个选项禁止 SELinux 对 Kerberos 管理进程 (kadmind) 和 Kerberos 键盘控制进程 (krb5kdc) 的保护。

Memory Protection
在目前版本的 Red Hat 考试指南,内存保护选项不与任何服务或系统关联。

Mount
这一类与 automount 服务有关;你可以通过配置它以允许挂载者挂载任何目录或文件,同样也可以禁用 SELinux的保护。

Name Service
名称服务器进程(named)指的是 RHEL DNS 服务。如果你维护一个区域,你会希望允许 named 进程可以覆盖主域文件。你也可以禁用 SELinux 的保护。名称服务器的缓存进程(ncsd)也是如此。

NFS
在NFS启用 SELinux之前,你至少需要启用 NFS 文件系统的读权限。如果你使用 NFS 共享系统,你可能想在 NFS 文件系统上启用读/写/创建功能。如果你配置某个服务器上的家目录作为 NFS 共享,你可能想让 NFS 支持家目录。这些都有通常安全管理服务进程(gssd)提供支持。

NIS
如果你想在 SELinux 系统上运行 NIS,你可能想允许 NIS 运行进程。你可以取消 SELinux对 NIS 密码和 NIS 传输进程的保护。如果还有问题,你可以取消 SELinux对相关进程(ypbind)的保护。

Other
这些选项可以允许完整文件的访问,通过 FTP 和未标签的包。它们同样可以禁止 SELinux 对PC读卡器和特殊时区数据的保护。

Polyinstatiation
Polyinstatiation 是很重要的,这意味着不同的用户在相同的目录下可能会看到不同的东西,如/ tmp。你可以使用 SELinux工具启用这一支持。

pppd
这一进程使用电话调制解调器进行通讯。你可以允许 pppd 在内核中插入支持通信的模块,或禁用 SELinux保护。

Printing
这部分允许你禁用 SELinux 对于不同 CUPS 进程的保护,包括 CUPS 后台服务, cupsd进程,cupsd-lpd服务和 HP 打印机进程(hplip)。你甚至可以用 LPD代替 CUPS。

rsync
这部分允许你为标签为 public_content_rw_t 目录配置写权限,和禁止 SELinux保护。

Samba
这里有一些方法,你可以使用SELinux 保护 Samba。选项如下:
*允许 Samba 共享 nfs目录
*允许 Samba 共享用户家目录
*允许 Samba 对标签为 public_content_rw_t 的目录文件进行写操作
*允许 用户登录到 CIFS家目录
*禁止 SELinux对 nmbd进程(NetBIOS 进程)的保护
*禁止 SELinux对 smbd进程(Samba 进程)的保护
*禁止 SELinux对 winbind进程(WINS 服务进程)的保护

SASL Authentication Server
简单的身份验证和安全层(SASL)服务器是另一个验证方法;通过安全级别配置工具,可以允许它进入您的 /etc/shadow 验证数据库,以及停用SELinux的保护。
在工作中
如上所述,这里有"sasl authentication server" 和 "sasl authentications server"。相关错误见 231868错误文件 https://bugzilla.redhat.com

SELinux Service Protection
这一类允许为大范围的进程禁用 SELinux保护,如从 amanda 到 zebra。这些服务不包含在其他类中。

Spam Protection
这一类作用于 SpamAssassin 服务。对于常规用户需要进入家目录。当然,你依然可以禁用它。

SQUID
如果你想设置 Squid Web代理的缓存(第9章有描述),你将需要允许它访问网络。你也可以禁止 SELinux。

Universal SSL Tunnel
如果你要为网络配置一个安全通道,你可以用 SELinux添加保护。你可以使用此工具允许 stunnel 作为单独的服务运行,也可以禁用SELinux的保护。

Zebra
你可以利用这一工具是 Zebra 路由服务对路由表进行写入。

文件标签
你可以更改文件的默认标签,有些我们这章前面已经提到了(有些是在早些的章节)。一些选项如下:



用户映射
用户映射允许你在默认设置外进行常规和管理用户的操作。

SELinux 用户
SELinux 用户允许你为标准用户分配角色,如:常规用户(user_u),系统用户(system_u)和管理 root 帐号.

Translation
这节允许你定义敏感级别

网络端口
这部分为服务分配端口。

策略模块
指定应用于模块的 SELinux的版本号

SEtroubleshoot(SELinux 排错浏览器)
如果因为 SELinux而出现问题是很难察觉的。例如,如果你的 Samba出现问题,你可能找不到任何错误信息;它可能不清楚你是否为 Samba 认证数据库添加了密码或者是 SELinux禁止了访问。你可能去分析日志文件,但关于 SELinux的问题是很难查找的。

Red Hat 提供了 SELinux排错工具,如下图。它使用 Linux管理员完全理解的语言,为你可能遇到的问题提供提示和建议,包括能够解决问题的命令等。



在 GNOME 桌面启动 SELinux排错浏览器,点击 System | Administration | SELinux Troubleshooter;或者使用 sealert -b 在图形界面的命令行启动它。 sealert 有许多参数,你可以使用 sealert -h 查看帮助。

作者  | 2011-7-14 21:36:04 | 阅读(330) |评论(0) | 阅读全文>>

SElinux中重要的布尔值

2011-7-14 21:31:05 阅读650 评论1 142011/07 July14

  SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux&reg; 上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到。

        SELinux 是 2.6 版本的 Linux 内核中提供的强制访问控制 (MAC)系统。对于目前可用的 Linux 安全模块来说,SELinux 是功能最全面,而且测试最充分的,它是在 20 年的 MAC 研究基础上建立的。SELinux 在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的访问控制概念。

        不过SELinux有时候带来的问题就是Permission denied 。最省事的办法就是关掉它。

[root@localhost ~]# vi /etc/selinux/config
[root@localhost ~]# vi /etc/sysconfig/selinux
找到SELINUX=enforcing,修改为SELINUX=disabled。

        另一种方式就是修改SElinux中重要的布尔值。为了设置方便,SELinux中内建了许多布尔值参数,我们可以通过setsebool修改这些参数而直接更改一些SElinux的设置,下面列出了常用的服务器boolean设置参数:

DHCPD
关闭SElinux对dhcpd服务器的保护。
setsebool dhcpd_disable_trans 1
关闭SElinux对dhcpc服务器的保护。
setsebool dhcpc_disable_trans 1

BIND
允许主要domain name的设置被更改。
setsebool named_write_master_zones 1
关闭SELinux 对 DNS的保护。
setsebool named_disable_tran 1

Apache(httpd)
允许httpd执行cgi scripts。
setsebool httpd_enable_cgi 1
允许使用户存取自己的根目录。
setsebool httpd_enable_homedirs 1
最后要记得修改用户根目录的角色。
chcon -R -t httpd_sys_content_t ~user/public_html
关闭SElinux对httpd的保护。
setsebool httpd_disable_trans 1

VSFTPD
允许用户ftp到自己的根目录。
setsebool ftp_home_dir 1
若要vsftpd独立运行,而不挂在XINETD之下,这项数值必须设为1.
setsebool ftpd_is_daemon 1
关闭SELinux对ftpd的保护。
setsebool ftpd_disable_trans 1

SAMBAN
允许samba分享用户的根目录。
setsebool samba_enable_home_dirs 1
允许挂接远程的samba服务器用户的根目录。
setsebool use_samba_home_dirs 1
关闭selinux对samba的保护
setsebool smbd_disable_trans 1

NFS
允许NFS分享只读文件。
setsebool nfs_export_all_ro 1
允许NFS分享可擦写文件。
setsebool nfs_export_all_rw 1
允许NFS分享用户的根目录。
setsebool usr_nfs_home_dirs 1

作者  | 2011-7-14 21:31:05 | 阅读(650) |评论(1) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018

登录  
 加关注