迁移到fedora core 13的要点备查,和fc 13的新特性总结

来源:互联网 发布:党员干部网络行为规范 编辑:程序博客网 时间:2024/06/06 07:46

最近终于放弃我的老redhat9,全部迁移到FC13,虽然很早就接触过fc2,3,4。但好像现在FC13的变化很大,不得不花点时间看看。整理一点心得以备查阅。

 

1.selinux, 记得刚开始接触fc最讨厌的就是selinux,总是莫名奇妙禁止很多以前RH7/8/9的正常操作,所以以前一安装好就将selinux关闭。裸奔的好处是自由:0),但人要与时俱进,不能还停留在以前的时代了, 看到FC13的selinux的policy越来越完善,心里叫好,一定会省事很多。

  • 问题一:首先遇到的第一个问题是从RH9迁移过来的硬盘和分区,除了根分区之外都有点不大正常,比如,我的/home是一个分区加载上去的,通过ssh登录/home里某一用户,ssh报告chdir fail,permission denies.(大概这个意思)。并把当前目录切换到了/下。
  • 解决:以前有selinux的使用经验,首先怀疑这些分区没有selinux label或context。查阅一下selinux上下文命令是restorecon。运行:
  •            restorecon /home # 再ssh一切恢复如常。
  • 问题二:samba共享不正常了,跟本无法访问samba共享。配置还是以前的没有变化,再次怀疑selinux。在smb.conf靠近头部发现一些文字。又是selinux的policy惹的祸。现在FC13已经自带for samba共享的一些rule,不用我们自己rule了。根据提示执行:

setsebool -P samba_enable_home_dirs on  # 打开selinux的开关,允许共享用户home目录

  

刷新,又看到了我的home目录。

但另外一个普通共享仍然看不到,执行:

 

chcon -t samba_share_t /path/to/directory   # 打开为我的共享目录打上samba_share_t的标签(label),这样selinux就会允许smbd进程在这里进行读写,并允许客户端察看。

 

一切恢复正常。但和RH9不同的是,我们的samba运行在非常安全的保护之下,任何selinux policy所规定的不匹配的访问,比如spyware进程,或异常的ip,都会被selinux禁止。

 

除了samba和ssh访问/home分区,目前还没发现由selinux带来的其它异常。

 

2. samba本身发生一些变化。当然RH9的是老了点。

  • 以前的共享中的gbk目录名,变成了乱码,smb.conf -> [global] section下添加 unix charset = gbk  解决问题。
  • 编辑smbusers添加unix <-> windows 用户mapping。用smbpasswd添加<user>

添加以下的global 参数:

 

           unix password sync = yes        #允许smbpasswd同时修改unix口令,在修改smb口令之前,通过调用passwd program

           passwd program = /bin/passwd %u  # 改变unix口令的passwd 命令。%u会被替换为用户名

 

3. adsl自动拨号的设置,我首选使用rp-pppoe。简单易用。

  • 使用pppoe-setup进行拨号连接的配置
  • 使用adsl-start开始拨号。
  • 使用pppoe-status察看连接状态。
  • 使用adsl-stop停止拨号连接。
  • 在RH9的时候,为了建立连接之后自动发送动态IP到我的信箱。我采用直接修改adsl-connect(现在叫pppoe-connect)的办法。在FC13中我发现了一个好东西"/etc/ppp/ip-up",我在系统log中看到一行,[NET]: ifup-post, update resolve.conf。它会自动更新我的域名服务器地址列表。经过调查,发现/etc/sysconfig/network-scripts/ifup-post是由/etc/ppp/ip-up调用的,而ip-up则会在最后调用ip-up.local,如果有这个文件。所以自己建立了ip-up.local,并且把发邮件相关代码加到里面。测试。。。没问题,不错的设计。为什么不直接改ip-up,因为它会在升级时被覆盖。顺便说一句ip-up是由pppd进程触发的,并会传给它6个参数。

#       $1      the interface name used by pppd (e.g. ppp3)
#       $2      the tty device name
#       $3      the tty device speed
#       $4      the local IP address for the interface         <-- 这就是我们的动态ip了。可以全球访问哦!:-)
#       $5      the remote IP address
#       $6      the parameter specified by the 'ipparam' option to pppd

 

ip-up.local也会的到这6个参数。事实上,ifup-post会在每个本地网络接口启动时被调用。让你做些连接建立后的事情。

  • FC13无法自动启动adsl连接。即使你设置了ONBOOT=yes. 这是因为FC13用了一个新玩意叫做NM=NetworkManager。我注意到RH-EL(CentOS)也用了它。它最初的设计目的是为了简化无线网络的自动发现,自动连接,自动断开的配置过程。像我们的laptop那样简单。管理一个静态的eth0有时都让你头大。何况这种动态的wifi连接。在系统启动过程中,NM会自动检查network-scripts/ifcfg-*,看那些接口有ONBOOT=yes,需要自动启动。但NM现在有一个bug,不处理TYPE=xDSL的接口,就是adsl的拨号连接类型。redhat声称现在不予解决。我也懒得搞它了。在rc.local中加一行adsl-start完事。好一点的解决办法可以在init.d中添加一个脚本,可以用颜色显示服务启动ok或fail。并可以用service命令来启动和停止。

4. 如何在启动时自动检查硬盘完整性?我们的硬盘所保存的数据有时候比机器本身还要值钱。对于长期积累的工作,每次启动的硬盘检查几乎是必需的。FC13同老的RH版本稍有不同(我还是喜欢老的,可以选择等5秒或直接yes或no,取消检查),秘密全在rc.sysinit里。FC13不给你启动时临时选择的机会,但可以配置。

 

  • 首先,系统启动时会创建一个空文件/.autofsck。在系统正常关机时,会被删掉。如果由于电源失败而关机,系统启动时就会看到这个文件,从而进行rc.sysinit会启动磁盘检查。但检查哪些磁盘呢?检查的顺序又是什么?看看/etc/fstab:

 

UUID=a8a5b313-d457-4461-af3f-35b259d948ed /                       ext3    defaults        1 1
/dev/sda2            swap                    swap    defaults        0 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                 /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                    /sys                    sysfs   defaults        0 0
proc                     /proc                   proc    defaults        0 0
/dev/vg01/lv01    /home                   ext3    defaults        0 3
/dev/sda6            /storage                ext3    defaults        0 4
/dev/vg02/lv02    /home/usera/space      ext3    defaults        0 2
/dev/vg02/lv03    /home/userb/space      ext3    defaults        0 3
/dev/sdb3            /storage/space          ext3    defaults        0 4
/dev/vg02/lv01     /repo                   ext3    defaults        0 5

 

注意最后一个字段吗? 0表示这个分区不检查,其他数字都表示检查。数字越小的越先检查,相同的数字的两个分区同时检查。所以建议不要把同一个磁盘上的分区设为相同的数字。/总是设为1,最先检查。

autofsck的检查是强迫检查(使用-f),即使分区标识为clean。

在/etc/sysconfig/autofsck里可以设置两个选项。(看注释)

# 这个文件仅仅用于电源失败时(/.autofsck存在)
# AUTOFSCK_DEF_CHECK=yes 将启用AUTOFSCK_OPT,因为autofsck用-f标志,但我不想用,所以我用/fsckoptions
AUTOFSCK_OPT=-y     #传给fsck命令的选项。
AUTOFSCK_DEF_CHECK=yes

 

  • 除了看到文件/.autofsck存在与否来决定是否检查磁盘之外,启动脚本还要看系统是否有/fsckoptions文件存在。如果存在则使用它的选项检查磁盘。我的/etc/fsckoptions目前就一行。   -y  # 使用 -y选项检查磁盘。最好,删除/etc/rc.sysinit中756行的/fsckoptions字样,否则,下次启动,选项文件会被删除。我想这是一个bug。难道我就不能一直用我选定的选项检查磁盘吗?
  • 除了/.autofsck之外,内核命令行的forcefsck命令也可以启动强迫检查。

5. FC13 alternatives系统?!我们经常会为系统有两套MTA(邮件系统)的切换而发愁,比如sendmail或postfix或qmail。因为大多数发送邮件的程序一般都会调用sendmail。直接安装一个新的MTA系统并不能使他们工作正常。有人说建个符号链接不就完事,事情没有那么简单,man的时候无法得到正确的帮助手册,邮件队列程序名字不一样,邮箱别名数据库不一样,密码验证程序布一样等等。除了mail系统,我们有sun java和open java的切换,我们有emacs和xemacs之间的切换。过去在它们之间切换会是非常痛苦的事情。alternatives为此而诞生,据说它最早是使用在debian上面的,后来被RH移植了过来。

 

简单讲它的工作原理就是通过建立相同名字的很多符号链接,它帮你建立,所以就会简单许多。看一下:

#ls -l /usr/sbin/sendmail

lrwxrwxrwx. 1 root root 21 11月  7 19:09 /usr/sbin/sendmail -> /etc/alternatives/mta

#ls -l /etc/alternatives/mta

lrwxrwxrwx. 1 root root 27 11月  7 19:09 /etc/alternatives/mta -> /usr/sbin/sendmail.sendmail

#ls -l /usr/sbin/sendmail.sendmail

-rwxr-sr-x. 1 root smmsp 856280  3月 29 2010 /usr/sbin/sendmail.sendmail          # 嗯,这个才是二进制

在我的系统,有

#alternatives --display mta

读取 /var/lib/alternatives/mta
mta - 状态是自动
 链接目前指向 /usr/sbin/sendmail.sendmail
/usr/sbin/sendmail.sendmail - 优先度 90
 从 mta-pam:/etc/pam.d/smtp.sendmail
 从 mta-mailq:/usr/bin/mailq.sendmail
 从 mta-newaliases:/usr/bin/newaliases.sendmail
 从 mta-rmail:/usr/bin/rmail.sendmail
 从 mta-rsmtp:(null)
 从 mta-runq:(null)
 从 mta-sendmail:/usr/lib/sendmail.sendmail
 从 mta-mailqman:/usr/share/man/man1/mailq.sendmail.1.gz
 从 mta-newaliasesman:/usr/share/man/man1/newaliases.sendmail.1.gz
 从 mta-aliasesman:/usr/share/man/man5/aliases.sendmail.5.gz
 从 mta-sendmailman:/usr/share/man/man8/sendmail.sendmail.8.gz
/usr/sbin/sendmail.exim - 优先度 10
 从 mta-pam:/etc/pam.d/exim
 从 mta-mailq:/usr/bin/mailq.exim
 从 mta-newaliases:/usr/bin/newaliases.exim
 从 mta-rmail:/usr/bin/rmail.exim
 从 mta-rsmtp:/usr/bin/rsmtp.exim
 从 mta-runq:/usr/bin/runq.exim
 从 mta-sendmail:/usr/lib/sendmail.exim
 从 mta-mailqman:/usr/share/man/man8/exim.8.gz
 从 mta-newaliasesman:(null)
 从 mta-aliasesman:(null)
 从 mta-sendmailman:(null)
当前“最佳”版本是 /usr/sbin/sendmail.sendmail。

 

#alternatives --set mta /usr/sbin/sendmail.exim

 

则将当前的MTA换成exim。并置为手动模式,不信你ls -l试试,是不是太简单了!!也是很不错的设计。手动模式就是完全遵照你的选择。自动模式就会自动设置优先度最高的选择。

如:

# alternatives --verbose --auto mta

读取 /var/lib/alternatives/mta
运行 /sbin/chkconfig --add sendmail
运行 /sbin/chkconfig --del exim

 

又换回了sendmail.

#alternatives --config mta

会给你一个菜单供你选择。变成手动模式。

 

用#alternatives --install  link  name  path  priority  [--slave  slink   sname   spath]

可以安装一套新的选择。或者,如果当前没有这个组,就会添加一个新组,并使用自动模式选择当前添加的程序作为选择。

 

现记这么多吧。

原创粉丝点击