CentOS 6下搭建TFTP服务器

介绍:
TFTP是非常“简陋”的文件传输协议,基于UDP协议传输,日常生活中很少会用到,但做嵌入式开发及网络设备运维时经常会用到这种简易的文件传输方式。
软件安装:
服务器端:

[root@localhost ~]# yum install tftp-server

配置文件介绍

[root@localhost ~]# /etc/xinetd.d/tftp                      //TFTP服务主配置文件

服务配置:
tftp这种“简陋”的服务,配置起来也是相当的容易。
编辑主配置文件。

[root@localhost ~]# vim /etc/xinetd.d/tftp

下图红框中,“server_args”选项是配置TFTP根目录及操作权限的,“disable”选项用以配置是否启用TFTP服务。通常情况下只需要配置这两个选项即可。

这里,我指定TFTP的根目录为/tmp/tftp,且具有可写入的权限,并启用TFTP服务。

注意,上图中“server_args”选项的参数后面多了个“-c”,这个“-c”代表可写入,默认是只读。
保存配置文件后记得要创建TFTP的根目录。

[root@localhost ~]# mkdir /tmp/tftp

还要给TFTP根目录777的权限,这里不用去想权限给大了会不会不安全,没意义,TFTP这种“简陋”的协议本身就是不安全的(基于UDP,不支持加密,任何人都可以连接)。

[root@localhost ~]# chmod 777 /tmp/tftp

最后,在保证selinux及防火墙均已关闭的情况下重启TFTP服务器。

[root@localhost ~]# service xinetd restart

服务测试:
这里客户端使用CentOS 6.5系统做测试,当然你也可以使用Windows系统做测试。
先在服务器端的TFTP根目录中新建一个文件,用以测试下载。

[root@localhost ~]# touch /tmp/tftp/testget

在客户端机器安装TFTP客户端软件。

[root@localhost ~]# yum install -y tftp

创建一个文件用以测试上传。

[root@localhost ~]# touch testput

连接TFTP服务器,本例中服务器IP地址为192.168.1.20。

[root@localhost ~]# tftp 192.168.1.20

会弹出“tftp>”提示符,在其后输入TFTP命令。
主要的TFTP命令其实就三个:

get 接文件名              //将当前目录下的文件上传至TFTP服务器
put 接文件名              //从TFTP服务器下载文件到当前目录
q                        //退出TFTP客户端工具

这里,我连接上TFTP服务器后,先将客户机家目录下的testput上传到了服务器上,又将服务器上的testget下载到客户机,最后退出了TFTP客户端工具。

查看客户机家目录是否有testget文件。

查看服务器的TFTP根目录上是否有testput文件。

如都有,则配置成功,否则就需要回过头检查下是不是哪一步出了岔子。

CentOS 6下配置NIS服务

介绍:
Linux下的NIS服务器类似于Windows下的域控制器,用于Linux下的用户信息集中管理。
软件安装:
服务器端:

[root@localhost ~]# yum install -y ypserv

客户端:

[root@localhost ~]# yum install -y ypbind

配置文件介绍:
服务器端:

/etc/ypserv.conf                  //服务器端主配置文件

客户端:

/etc/yp.conf                      //客户端主配置文

务器端配置:
NIS通过域名来分辨不同的账号密码数据,因此需先指定NIS域名。
方法很简单,如下。

[root@localhost ~]# vim /etc/sysconfig/network

添加一行

NISDOMAIN=nis.ibadboy.net

最终效果如下。

这里啰嗦一下:看到网上很多文章都说要设置主机名,还要给主机名添加到/etc/hosts文件中,做主机名和IP的对应。
不过,我使用CentOS 6.5版本亲测,不另外设置主机名,不编辑/etc/hosts文件,NIS服务器也一样能正常工作。但前提是,在/etc/ypserv.conf这个文件中是以IP地址来限制客户机而不是使用主机名,如果使用主机名则必须添加DNS解析或编辑/etc/hosts文件,关于ypserv.conf文件的配置下面马上会介绍到。
另外,为了方便配置防火墙规则,我们也可以指定让NIS服务器每次都启动在固定端口,否则NIS会动态使用端口。

[root@localhost ~]# vim /etc/sysconfig/network

添加一行。

YPSERV_ARGS="-p 1011"              //使NIS服务器每次启动都使用1011端口

添加后文件内容如下:

编辑NIS服务器端主配置文件。

[root@localhost ~]# vim /etc/ypserv.conf

先来简单看下配置文件的内容再来说通常情况下如何配置。
转到14行和17行可以看到如下两个被红框框起来的选项(因软件版本号差异,行号可能不一样,可在VIM中搜索关键字来查找),其中“dns”选项是定义是否使用DNS,一般情况下保持默认即可(我搞不懂为啥会有这个选项,感觉很白痴)。“files”选项是定义载入到内存中的数据库个数(我不清楚这里的数据库是指的什么,这一段摘录自《鸟哥的Linux私房菜》),如果账号多,可以调大。

转到第25行左右,这里定义是否将Master/Slave的同步更新的数据库对比放置于小于1024的端口中,通常情况下保持默认即可。

接下来到重点了:配置允许访问NIS服务器的主机及主机的权限,这也是通常情况下服务器端主配置文件中唯一需要修改的部分。
参照如下格式配置:

[主机名/IP]:[NIS域名]:[可用数据库名称]:[安全策略]          //可使用通配符
[主机名/IP] :直接填入允许访问的主机名或使用网络地址/掩码的形式,如 192.168.1.0/255.255.255.0。 
[NIS域名] :例如本案例中的“nis.ibadboy.net”。
[可用数据库名称]:就是由 NIS 制作出来的数据库名称。
[安全限制] :有三种,没有限制(none)、仅能使用小于1024的端口(port)及拒绝(deny)。

例如:

192.168.1.0/255.255.255.0     :     nis.ibadboy.net      :     *      :       none

通常情况下,NIS服务器都是应用在局域网,限制可以不用这么严格,使用如下格式也可以。当然,你也可以按照自己的需求来设置。

*      :     *     :     *     :    none

转到第38行左右,可以看到默认已经配置好了两条规则,我们可以在这个基础上稍作修改。

本例改成如下形式:

保存退出后,在保证防火墙和selinux均关闭的情况下启动ypserv(NIS主服务)及yppasswdd(用于支持客户端修改NIS服务器上的用户密码)服务。

[root@localhost ~]# service ypserv start
[root@localhost ~]# service yppasswddd start

再在服务器端添加几个用户信息,一会好在客户端测试。

[root@localhost ~]# useradd user1
[root@localhost ~]# useradd user2
[root@localhost ~]# passwd user1
[root@localhost ~]# passwd user2

最后,编译生成各种数据库文件来供客户机查询。

[root@localhost ~]# /usr/lib64/yp/ypinit -m

到这一步,按下“Ctrl + D”


这一步输入y或者直接回车。

看到打印出如下字样即是成功。

客户端配置:
设置NIS域名,这里注意,一定要和服务器端是同样的NIS域名,否则客户端将无法绑定服务器端。

[root@localhost ~]# vim /etc/sysconfig/network

本例中,添加“NISDOMAIN=nis.ibadboy.net”

编辑客户端主配置文件。

[root@localhost ~]# vim /etc/yp.conf

在其中添加服务器端信息,格式如下。
domain [NIS域名] server [NIS服务器IP地址]
例如,本例中为:

domain nis.ibadboy.net server 192.168.1.20

添加后,效果如下。

保存并重启NIS客户端。

[root@localhost ~]# service ypbind restart

如下,是成功了。

如果是这种呢,一眼就能看出是失败了,那就要仔细检查下是不是哪一步做错了。

通常情况下,错误一般都是NIS域名不一致导致的,虽然客户端和服务器端的/etc/sysconfig/network中设置的NIS域名是一致的,但要注意的是,这里的NIS域名并非实时生效,因此还需要使用“nisdomainname”命令来分别检查服务器端和客户端当前的NIS域名,若发现有不符合的则使用“nisdomainname 接新NIS域名”来实时修改。
例如:

到这里,虽然客户端绑定服务器端成功了,但我们依然不能在客户端使用NIS服务器中的用户信息,原因是还没修改系统查询用户信息服务的方式。
编辑/etc/nsswitch.conf(服务搜索顺序配置文件)
在几个主要的配置文件的搜索顺序中都加入“nis”。注意,这里把“nis”加到“files”后,是先搜索本地配置文件而后才搜索nis服务器。这就导致,如果本地和nis服务器上存在相同的用户,客户端并不会使用nis服务器上的用户数据。可以通过将“nis”写在“files”前来解决这个问题。
注意最后一行,hosts文件的搜索顺序中加入了nis,这就是为什么我们不写hosts文件,不做dns一样可以正常使用nis服务器的原因。

这样,NIS客户端就算配置完了。
执行yptest命令看是否能列出NIS服务器端的账号信息。
在“Test 9: yp_all”这个测试结果中能看到NIS服务器端的用户信息即算成功。
例如:

客户端的配置,看似貌似很完美,但其实还是有点问题的,那就是需要PAM等认证的服务依然不会查询NIS服务器上的信息,这些配置文件我们手动修改实在是太麻烦了,可以使用“setup”工具来快速设置。
当然,如果没有特殊需求,仅仅需要系统用户身份认证信息使用NIS服务器上的数据那么按照之前那样简单配置以下就可以满足需求了。
若需要vsftpd虚拟用户这种使用PAM做身份认证的服务也使用NIS服务器,则就要使用“setup”工具来设置了,系统中没有安装“setup”工具可以参考此篇文章安装。

CentOS 6安装setup工具包


按照如下步骤走一遍即可,十分简单。之后setup会帮你把所有需要修改的配置文件全部修改一遍,换而言之,如果你使用setup工具来设置客户端,那除了安装ypbind软件包之外,不需再手工编辑任何文件。
注意,这里特殊说明一下,我的setup工具是中文语言的,其中图一的“验证配置”对应的英文版是“authentication configuration”,不要选错了哦。

CentOS 6下使用BIND配置简单DNS服务器

介绍:
BIND是linux/unix下的开源免费DNS服务器,也是全世界应用最广泛的DNS服务器软件。
软件安装:

yum install -y bind

主要配置文件介绍:

/etc/named.conf                 //BIND主配置文件
/etc/named.rfc1912.zones        //DNS解析区域配置文件
/etc/named.localhost            //正向解析模板文件
/etc/named.loopback             //反向解析模板文件

BIND配置:
编辑主配置文件

vim /etc/named.conf

将如下如红色箭头所指的两处的值均改为“any”,第一处定义bind服务监听的本地网卡地址,默认仅监听回环地址,改为any后监听所有网卡。第二处定义的是允许查询DNS的主机,默认只有本地可以查询,改为any后允许所有主机进行DNS查询。

修改后如下图。

主配置文件的配置至此结束,接下来编辑DNS解析区域配置文件。

vim /etc/named.rfc1912.zones

此部分为正向解析区域配置模板,这里稍微啰嗦一下什么是正向解析什么是反向解析:正向解析就是通过域名解析出IP地址,反向解析就是通过IP地址来解析出域名。

此部分为IPv6反向解析区域配置模板。

此部分为反向解析区域配置模板

这里,我们添加一个正向解析区域和一个反向解析区域。
直接在模板基础上修改即可,如下图,第一个“it7e.com”是要解析的域名,第二个“it7e.com”是正向解析配置文件的文件名。
默认情况下,所有的解析配置文件都存放在/var/named/目录下。

再添加一个反向解析区域,其中”1.168.192″是要进行反向解析的网段”192.168.1″的倒写,而图中的“192.168.1”则是反向解析配置文件的文件名。

最后,分别编辑两个解析区域的解析配置文件向其中添加解析即可。
先根据正向解析配置文件模板”named.localhost”创建正向解析配置文件”it7e.com”。

cp -p /var/named/named.localhost /var/named/it7e.com

再根据反向解析配置文件模板“named.loopback”创建反向解析配置文件“192.168.1”。

cp -p /var/named/named.loopback /var/named/192.168.1

编辑正向解析配置文件“it7e.com”

vim /var/named/it7e.com

通常情况下,只需要编辑红框部分,向其中添加解析即可,其余地方不用更改。

例如:

上图中需要特殊说明的是MX记录后面的5是MX优先级。记录值中填的“@”代表本域,本实验中是“it7e.com”,注意如果这样写,那么就必须保证有“it7e.com”对应的解析记录,本实验中其对应的记录在第九行。在主机位上填的“@”代表“空”,也可以真的留空,什么都不写,就像第九行的那条解析记录一样。另外,记录值中的域名都以“.”结尾,IP则不用。
最后需要注意的是MX记录要写在其值的CNAME记录的前面,例如上图中,“@   MX 5 mail.it7e.com”记录写在了“mail CNAME it7e.com”记录的前面,否则会出现异常。
关于DNS解析记录类型的介绍参考此篇文章:

DNS解析记录类型详解

再来编辑反向解析文件。

vim /var/named/192.168.1

依然是没有特殊需求就只编辑红框内的内容即可。

例如:

上图中,“ A 127.0.0.1”这个记录不可删除,否则报错。因为NS记录值是“@”,也就是“it7e.com”,若删除了“ A 127.0.0.1”这条记录,则“it7e.com”没有对应的A记录,NS记录会抛出错误。
服务测试:
测试前需要将本机或客户机的DNS修改为DNS服务器的IP地址。
CentOS 6下DNS的修改方法参考此篇文章,Windows下不做介绍。

CentOS 6下正确配置DNS的方法

测试DNS解析使用nslookup命令,如果发现系统中没有nslookup这个命令是因为没有安装bind工具包,执行以下命令安装。

yum install -y bind-utils

启动nslookup。

nslookup

执行命令后在“>”符号后面输入要测试解析的域名即可。

例如下图,其中蓝色框内是DNS服务器信息,红框内是域名解析信息。

可以通过“set type=”来设置解析类型。
例如,测试MX解析记录: 
或者,测试TXT记录。

再来测试下反向解析。

最后,退出nslookup工具,只需要在“>”符号后面输入“exit”即可。

CentOS 6下正确配置DNS的方法

本来配置DNS是比较简单的东西,没想专门写一篇文章的。但后来我发现这里还是有一个大坑的,很有必要单独拿出来对其进行说明。
我看到网上很多教程都推荐大家通过编辑/etc/resolv.conf这个文件来修改系统的DNS。
但经过实测,用此方法修改DNS,在某些情况下会发生明明编辑了/etc/resolv.conf文件,但重启网络后文件又恢复到之前的状态的情况。
经过一翻搜索之后,发现。原来是因为CentOS 6使用NetworkManager来管理网络,当在/etc/resolv.conf中配置了DNS时,/etc/sysconfig/network-scripts/ifcfg-eth*文件中并没有DNS信息或还是之前的DNS信息,而NetworkManager会用/etc/sysconfig/network-scripts/ifcfg-eth*中的DNS信息来覆盖/etc/resolv.conf中的信息。
正确配置DNS的方法:

vim /etc/sysconfig/network-scripts/ifcfg-eth*(*是什么依据实际情况来定)

按照如下格式添加DNS。

DNS1=
DNS2=
DNS3=
……

例如下图,其中“114.114.114.114”是国内著名的DNS服务,“8.8.8.8”是谷歌的DNS服务,也可以根据自身需求更改为其他DNS地址。

最后重启网络即可。

service network restart

CentOS 6配置IPv6地址

编辑网络配置信息文件。

vim /etc/sysconfig/network

启用IPv6支持。

编辑网卡配置文件。

vim /etc/sysconfig/network-scripts/ifcfg-eth0

这里需要注意的是,IPv4与IPv6可以同时绑定同一块网卡,因而在添加IPv6地址信息时可以不删除IPv4的地址信息。
以下是IPv6地址配置选项。

IPV6INIT                        //网卡初始化IPv6协议栈
IPV6ADDR                        //配置IPv6地址
IPV6_DEFAULTGW                  //配置IPv6网关

下图是一个IPv6地址配置的例子。

如果是在虚拟机下配置的IPv6需要测试配置是否成功,可以为两台计算机同时配置IPv6地址,互相ping。
下面提供4个同网段的IPv6地址来供大家测试用。

2400:A480:000F:0080:00C3:0000:0000:0074
2400:A480:000F:0080:00C3:0000:0000:0174
2400:A480:000F:0080:00C3:0000:0000:0274
2400:A480:000F:0080:00C3:0000:0000:0374
网关:
2400:A480:000F:0080:0000:0000:0000:0001
子网掩码长度:
64

配置完后,使用ping6命令进行测试,例如:

ping6 2400:A480:000F:0080:00C3:0000:0000:0074

CentOS 6破解grub引导菜单的密码

破解grub引导密码需要用到linux live cd,随便什么发行版都可以。当然,如果你没有专门的linux live
cd,用CentOS的安装光盘来破解也是可以的。
此篇文章我来介绍下如何使用CentOS 6的安装光盘来破解grub密码。
先修改系统BIOS引导来启动光盘/U盘上的系统,这里因为各个品牌的电脑修改BIOS引导顺序的方法不同,所以不做介绍,请自行百度适合自己的方法。
成功引导安装光盘后选择如下图红色箭头指向的“Rescue installed system(救援安装系统)”。

这里依次要求你选择系统语言、键盘布局,以及是否配置网络等等,下面我附上截图并一一进行说明。
下图,选择系统语言,保持默认(英语)。

下图,选择键盘布局,保持默认(美式键盘)。

弹出如下图这个提示是告诉你,系统与当前硬件不兼容,可以不予理会。直接“OK”,即可。

下图,询问是否配置网络,无特殊需求都选“No”。

下图,系统在尝试查找当前硬盘上的linux分区,并尝试将其挂载到/mnt/sysimage目录下。选择“continue”。

下图,告诉我们即将要把找到的linux分区挂载到/mnt/sysimage目录下,并进入到shell中,选“OK”。

下图,提示我们,已经将找到的linux分区挂载到了/mnt/sysimage目录下,选“OK”。我觉得有点磨叽了。。。

下图,选第一个“shell      Start shell(启动shell)”。

下图,久违的shell出来了。

切换到硬盘中的linux分区的挂载目录

cd /mnt/sysimage

使用VI文本编辑器编辑grub引导配置文件

vi etc/grub.conf

删除密码一行,即完成破解工作。

最后,重启即可。

reboot

CentOS 6安装setup工具包

CentOS 6最小化安装的情况下是没有setup工具的。
安装setup:

[root@localhost /]# yum install -y setuptool

启动setup:

[root@localhost /]# setup


发现只有一个“验证配置”,而我们熟悉的“网络配置”、“系统工具”等等的选项全都没了,这是怎么回事?其实这里是需要分别安装这几个工具组件的:

[root@localhost /]# yum install -y ntsysv                              //安装“系统服务”工具组件
[root@localhost /]# yum install -y system-config-network-tui           //安装“网络服务”工具组件
[root@localhost /]# yum install -y system-config-securitylevel-tui     //安装“防火墙配置”工具组件

当然,如果只是需要某一个工具组件也可以只安装那一个。上方列出的只是常用的工具组件,如果还需要其他的可以自行百度。
安装后再执行setup命令,会发现常用的工具都显示出来了。

[root@localhost /]# setup

CentOS 6给grub引导设置密码

默认情况下,在grub引导界面按任意键即可进入引导编辑界面,任何人都可以轻易地进入到单用户模式下,并破解掉root的密码。
root密码破解参考此篇文章:

文章归档


显然,这样十分不安全。那如何防止呢?给引导菜单加个密码呗,不输对密码就休想进到引导编辑模式。
grub引导菜单加密码的方法:
先生成密码字符串

grub-md5-crypt >> /etc/grub.conf

执行命令后,因为输出被重定向到了/etc/grub.conf文件(grub引导配置文件)中,所以屏幕上不会产生任何输出。但没关系,我们只要像配置linux系统用户密码一样,输入一次密码,回车,再重复输入一次密码再回车即可。
此时使用vim打开/etc/grub.conf文件,即可看到如下图红色箭头所指的加密字符串,我们在vim下剪切这个字符串,并删除蓝框框住的内容。

vim /etc/grub.conf

 

之后将加密字符串粘贴在hiddenmenu和title这两行之间,如下图。

最后再在加密字符串前,加上password –md5关键字并保存退出即可。

重启系统,尝试进入grub引导编辑界面就会发现,grub要求输入密码啦(必须先按p键键入密码,才可以按e键编辑引导)。

CentOS 6下超实用的samba配置教程

介绍:
samba是在linux/unix上实现SMB协议的免费软件,通俗来说就是让linux/unix支持与windows间互相共享文件。
安装软件包:

yum install -y samba

samba配置文件介绍
samba配置文件的存放路径为

/etc/samba/

该目录下有以下三个文件:

lmhosts文件中记录着局域网中NetBIOS与IP地址的对应关系
smb.conf是samba的主配置文件,其内容由全局配置部分和共享配置部分组成。
smbusers文件记录着windowns中用户与linux中用户的对应关系,例如windows中的administrator管理员账户对应linux下的root用户。
samba的配置:
在开始配置前,首先明确下需求:
1、user11和user12用户可以通过samba共享来访问自己的家目录,且此共享仅本人可见。
2、创建三个共享,分别为share1、share2、share3,其共享的本地文件夹分别为/tmp/a1、/tmp/a2、/tmp/a3。
3、group1组的用户user1对share1共享有全部权限,group2组的用户user2对share2有全部权限,group3组的用户user3对share1和share2共享都有全部权限;对于share1和share2共享其他人有只读权限;share3为公共存储,所有人都有存取权。
4、所用用户新建的文件都是本人拥有全部权限,其他人只有只读权限。
知道了需求,那么现在就来根据需求来做具体配置吧:

vim /etc/samba/smb.conf                //使用vim文本编辑器打开配置文件

转到第248行,可以看到如下内容,看开头一行,[homes],home是家的意思,加s呢,变成复数了,可以理解成所有用户的家,哈哈,感觉我像是在讲英语。总之,通过配置此部分就可以满足需求1了。

comment选项是用来添加一个文本描述的。
browseable选项定义他人是否可以看到此共享,yes为可以,no为不可以(仅自己可见)。
writable选项用来定义共享是否可写。
valid users选项定义该共享规则对哪些用户启用。

看显而易见,我们只要设置valid users选项,让此共享配置仅对user11和user12用户生效即可满足需求1。

再来看需求2,新建三个共享,这个怎么破?其实很简单啦,配置文件里已经写好了现成的,我们只需要复制成三份就好。
转到配置文件的末尾,可以看到以[public]关键字开头的配置部分,这就是配置共享的模板。

复制前需要注意,这部分配置文件默认被注释掉了,如果你不想在复制完去一点点的删除三份注释符号的话那最好在复制之前把这一份注释符号删掉,如下图:

三个共享有了,但他们的配置文件是一摸一样的,那共享名和共享的文件夹一定也是一样的,要如何为每一个共享做定制呢?
先看这部分配置文件的简单介绍:

开头的[public]是共享名,可任意起,与实际的共享文件夹可以不同名。
comment是没用的文本介绍。
path是指定要共享的本地文件夹的路径。
public是用来指定是否共享的,有yes和no两个选项,至于这两个选项分别是啥意思我就不啰嗦了。
writable用于配置此共享是否支持写入。
printable指定是否支持打印,没有特殊需求的话这里都保持注释状态。
write list此选项用于决定哪些用户或组对此共享拥有写入权限,此处一般保持注释就好,因为linux的权限管理可比samba的好用多了。

以下是按照需求2修改过的配置文件,修改部分已经用红笔标出来了,对照上方配置选项的解释就可以轻松理解下图的配置内容了。

权限配置部分:
下面来看需求3,很明显这里是需要做权限控制了。但我不得不唠叨一下,samba自带的权限管理配置起来那是相当的蛋疼,而且功能弱爆了。所以这里我们使用linux系统权限管理加ACL来做权限控制。
关于ACL的介绍可以参考:

linux下acl权限详解


在配置权限前,我们先把所需要的用户与组都创建完,并把他们加入到samba用户数据库中,再把要共享的文件夹都创建出来。
新建用户:

useradd user11
useradd user12
useradd user1
useradd user2
useradd user3

新建组:

groupadd group1
groupadd group2
groupadd group3

将用户加入组:

usermod -G group1 user1
usermod -G group2 user2
usermod -G group3 user3

将系统用户加入到samba用户数据库中。

pdbedit -a user11
pdbedit -a user11
pdbedit -a user1
pdbedit -a user2
pdbedit -a user3

使用pebedit命令将系统用户加入samba用户数据库中时会提示输入两次密码,此密码可以与linux系统用户密码不相同,加入成功后会出现类似如下提示:

创建共享的文件夹:

mkdir /tmp/a1
mkdir /tmp/a2
mkdir /tmp/a3

接下来就进入到了最重要的文件夹权限配置阶段了。
先来看/tmp/a1目录的权限配置。
将目录所属组改为group1

chown :group1 /tmp/a1

此时目录/tmp/a1的权限为:

此时group1组的成员对目录是没有写权限的,下面就赋予其读写执行的权限:

chmod 775 /tmp/a1


此时group1组已经拥有了应有的权限,但需求3里面要求grou3组对该共享目录也拥有全部权限,这个就需要ACL来完成了。
执行如下命令:

setfacl -m g:group3:rwx /tmp/a1       //配置ACL权限使group3组的成员对/tmp/a1目录拥有全部权限

此时查看权限:

注意权限的最后多了一个+号,这证明ACL权限已经生效了,再执行。

getfacl /tmp/a1         //查看目录的ACL权限


只要有如上图画红线的部分即是配置成功。
至此/tmp/a1这个目录的全部权限已经配置完成,而/tmp/a2目录的权限与/tmp/a1的权限的配置方法雷同,这里不再赘述。
再来看下/tmp/a3目录的权限,很简单,给他777的权限即可。

chmod 777 /tmp/a3

最后的最后,来看看需求4吧,就差这一个了。
这里依然使用ACL权限来完成需求,而不通过修改samba的配置文件。
那要如何配置ACL呢?没错,只需要配置两条默认ACL权限即可。

setfacl -m d:u::rwx /tmp/a?    //这里使用通配符为所有以a开头而第二个字符为任意字符的文件夹配置权限
setfacl -m d:g::rx /tmp/a?

以/tmp/a1文件夹的acl权限为例:

getfacl /tmp/a1


可以看到如上图中红色标注的部分即为配置成功。
 
好啦,4个需求已经全部满足了,尽情测试吧。

CentOS 6下网卡配置文件的写法

网卡配置文件的路径。

/etc/sysconfig/network-scripts/ifcfg-eth*     //注意结尾处是一个通配符,CentOS 6下第一块网卡名为eth0,第二块为eth1,以此类推。

配置文件中除以下配置需要修改或添加之外其余配置请保持默认。

ONBOOT=yes                       \\设置网卡在系统启动时自动激活
BOOTPROTO=static                 \\使用静态ip,若需要动态获取ip可以把static修改为dhcp,如使用dhcp方式获取IP则此选项下方的选项可以忽略不写。
IPADDR=192.168.162.246           \\配置IP地址
NETMASK=255.255.255.0            \\指定子网掩码
GATEWAY=192.168.162.254          \\指定网关
DNS1=114.114.114.114             \\指定第一个DNS
DNS2=8.8.8.8                     \\指定第二个DNS

下面是修改好后的配置文件的完整内容,仅供参考。

DEVICE=eth0
HWADDR=08:00:27:4D:6C:E6
TYPE=Ethernet
UUID=48cabfe6-cbb6-465c-95e8-fe37997fd9d6
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.162.246
NETMASK=255.255.255.0
GATEWAY=192.168.162.254
DNS1=114.114.114.114
DNS2=8.8.8.8

最后,重启网络即可。

service network restart

解决yum update意外中断后无法继续更新的问题

问题表现:
在执行yum update更新系统时因卡住、SSH意外断开等原因导致更新被打断后,再次执行更新会抛出错误:

There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
The program yum-complete-transaction is found in the yum-utils package.

解决方法:
安装安装yum-complete-transaction

yum install -y yum-utils

运行运行yum-complete-transaction

yum-complete-transaction

再次执行更新即可

yum update

CentOS 6下selinux配置文件写错导致进不去系统的解决方法

问题表现:
修改完selinux的配置文件重启后无法进入系统,并抛出以下错误(其他错误也适用本篇文章介绍的解决方法):

解决方法:
重启系统
进入如下界面时按任意键(不要问我任意键是哪个。。。)

按“e”键。

这里选择第二项,按“e”编辑它。

这里按空格接selinux=0(如图),之后按“esc”返回上个界面,按“b”键重新引导即可进入系统。

进入系统后记得将你的配置文件中写错的部分修改过来。

CentOS虚拟机克隆后无法启动网卡的解决方法

问题表现:
装有CentOS系统的虚拟机克隆并启动后使用ifconfig命令查看不到网卡,使用service network restart命令重启网络抛出错误:bringing up interface eth0
解决办法:
1. 修改 /etc/udev/rules.d/70-persistent-net.rules文件,将文件中原来的eth0的网卡的信息删除,并将eth1修改为eth0。
2. 修改 /etc/sysconfig/network-scripts/ifcfg-eth0,删除其中的MAC地址信息和UUID的信息。
修改完成之后,重启虚拟机即可。

CentOS 6中dhcp服务器安装与配置

安装dhcp服务

yum install -y dhcp

用vim文本编辑器打开dhcp服务的主配置文件。

vim /etc/dhcp/dhcpd.conf

可以看到如下内容:

意思就是告诉你想获取dhcp的配置方法可以参见/usr/share/doc/dhcp*/dhcpd.conf.sample文件或是使用man 5 dhcpd.conf命令
为方便,一般都是直接删除当前dhcpd.conf文件,并将/usr/share/doc/dhcp*/dhcpd.conf.sample复制到/etc/dhcp/目录下,重命名为dhcpd.conf。

cp /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf

在第四十七行左右可以看到如下内容,它们是在配置动态地址分配时可能会用到的选项,可根据实际情况进行配置与取舍。其中以“option”开头的为可选参数,否则为必填:

subnet 10.5.5.0 netmask 255.255.255.224 {             #配置要分配的网段及子网掩码
range 10.5.5.26 10.5.5.30;                     #设置要分配的地址范围
option domain-name-servers ns1.internal.example.org;        #设置默认分配的dns服务器
option domain-name "internal.example.org";             #设置域名(这地方我表示无法理解)
option routers 10.5.5.1;                      #设置默认分配的网关地址
option broadcast-address 10.5.5.31;                #设置广播地址(这个地方也是无法理解)
default-lease-time 600;                      #设置租期(单位是秒)
max-lease-time 7200;                        #设置最大租期(单位是秒)
}

以上是动态分配ip地址的配置内容,假如想给一台设备分配固定IP要怎么办呢?
翻到第75行左右,可以看见如下内容:

host fantasia {
hardware ethernet 08:00:07:26:c0:a5;                #客户端MAC地址,服务器通过MAC地址来确定是否需要给客户端分配固定IP地址。
fixed-address fantasia.fugue.com;                  #要分配的固定IP地址
}

最后,根据自己的需求做修改并重启dhcpd服务即可。

service dhcpd restart