服务概述
在linux操作系统下,经常需要创建一些服务,这些服务被做成shell脚本,这些服务需要在系统启动的时候自动启动,关闭的时候自动关闭。
将需要自动启动的脚本/etc/rc.d/init.d目录下,然后用命令chkconfig --add filename将自动注册开机启动和关机关闭。实质就是在rc0.d-rc6.d目录下生成一些文件连接,这些连接连接到/etc/rc.d/init.d目录下指定文件的shell脚本。


手工创建服务
在/etc/rc.d/init.d目录下创建shell脚本,文件名auto_run。
设置脚本的运行权限chmod +x auto_run。
然后在rc0.d-rc6.d目录下分别创建文件连接。
ln -s /etc/rc.d/init.d/auto_run /etc/rc.d/rc2.d/S99auto_run
ln -s /etc/rc.d/init.d/auto_run /etc/rc.d/rc3.d/S99auto_run
ln -s /etc/rc.d/init.d/auto_run /etc/rc.d/rc5.d/S99auto_run
ln -s /etc/rc.d/init.d/auto_run /etc/rc.d/rc0.d/K01auto_run
ln -s /etc/rc.d/init.d/auto_run /etc/rc.d/rc6.d/K01auto_run

这样系统在启动的时候,就会运行auto_run 并加上start参数,等同于执行命令auto_run start。
在系统关闭的时候,就会运行auto_run,并加上stop参数,等同于运行命令auto_run stop。

创建连接的6条命令可以用命令chkconfig --add auto_run来完成,这样就简单多了,还不容易出错。
下面就介绍一下chkconfig命令。
chkconfig命令用法
语法:
chkconfig --list [name]
chkconfig --add name
chkconfig --del name
chkconfig [--level levels] name <on|off|reset>
chkconfig [--level levels] name

说明:
chkconfig提供一种简单的命令行工具来帮助管理员对/etc/rc[0-6].d目录层次下的众多的符号链接进行直接操作。
此命令使用是由chkconfig命令在IRIX操作系统提供授权。不用在/etc/rc[0-6].d目录下直接维护配置信息,而是直接在/etc/rc[0-6]下管理链接文件。在运行级别的目录下的配置信息通知在将会初始启动哪些服务。
Chkconfig有五个很明确的功能:为管理增加一个新的功能、删除一个功能、列出当前服务的启动信息、改变一个服务的启动信息和检测特殊服务的启动状态。
当chkconfig没有参数运行时,它将显示其使用方法。如果只给出了一个服务名,它将检测这个服务名是否已经被配置到了当前运行级别中。如果已经配置,返回真,否则返回假。--level选项可以被用做查询多个运行级别而不仅仅是一个。
       如果在服务名之后指定了on,、off或reset,chkconfig将改变指定服务的启动信息。On或off标记服务被打开或停止,尤其是在运行级别被改变时。Reset标记重置服务的启动信息。
       默认情况下,on或off选项仅对2、3、4、5有影响,而 reset影响所有的运行级。--level选项可以被用于指定哪个运行级别接收影响。
注意:对于每个服务,每一个运行级都有一个开始角本和一个结束角本。当开或关一个运行级时,init不会重新开始一个已经运行的服务,也不会重新停止一个未运行的服务。
选项:
       --level levels
              指定一个运行级别适合的操作。范围为0-7。
       --add name
              增加一个新的服务。
       --del name
              删除一个服务
       --list name
              显示服务的情况
RUNLEVEL FILES
每个通过chkconfig管理的服务在其init.d目录下的角本中都需要两行或多行的注释。第一行告诉chkconfig在默认情况下什么运行级别的服务可以开始,也就是所说的开始或结束的优先级别。如果服务没有默认的级别,建造将在所有运行级别中启动。a – 将用于代替运行级列表。第二个注释行包括对此服务的描述,可以通过反斜线符号扩展为多行。

示例,auto_run的前三行如下:
#!/bin/sh
#chkconfig: 2345 80 90
#description:auto_run
第一行,告诉系统使用的shell,所以的shell脚本都是这样。
第二行,chkconfig后面有三个参数2345,80和90告诉chkconfig程序,需要在rc2.d~rc5.d目录下,创建名字为S80auto_run的文件连接,连接到/etc/rc.d/init.d目录下的的auto_run脚本。第一个字符是S,系统在启动的时候,运行脚本auto_run,就会添加一个start参数,告诉脚本,现在是启动模式。同时在rc0.d和rc6.d目录下,创建名字为K90auto_run的文件连接,第一个字符为K,个系统在关闭系统的时候,会运行auto_run,添加一个stop,告诉脚本,现在是关闭模式。
注意上面的三行是中,地二,第三行是必须的,否则在运行chkconfig --add auto_run时,会报错。
常见的错误
“服务不支持 chkconfig”:
请注意检查脚本的前面,是否有完整的两行:
#chkconfig: 2345 80 90
#description:auto_run
在脚本前面这两行是不能少的,否则不能chkconfig命令会报错误。
如果运行chkconfig老是报错,如果脚本没有问题,我建议,直接在rc0.d~rc6.d下面创建到脚本的文件连接来解决,原理都是一样的。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chenxiaohua/archive/2009/04/08/4056302.aspx

本日志由 永远的风 于 2010-03-06 22:10:27 发表到 Linux 中,目前已经被浏览 1240 次,评论 0 次;

1.安装vsftp
 使用rpm -q vsftpd查询,如果显示vsftpd-1.1.3-8表明已经安装服务器软件
没有安装使用rpm -ivh vsftp-1.1.3-8.i386.rpm该文件在red hat linux第三张盘的RedHat/RPMS目录下,安装完成后
2.启动FTP服务
启动vsftpd服务service vsftpd start
注:如果需要停止服务使用service vsftpd stop命令;
    如果需要vsftpd服务器重新加载配置文件,则使用如下命令:/sbin/service vsftpd reload
    让vsftpd服务开机后自动启动,命令如下:chkconfig --level 345 vsftpd on
vsftpd服务器配置文件为/etc/vsftpd/vsftpd.conf,关于ftp的配置都是修改该文件(在每一次配置完之后,如果让改配置生效,需要在shell中执行/sbin/service vsftpd reload)
3.FTP服务器配置
配置项如下:
(1)listen_port。更改ftp服务器的控制连接端口号,如改为8888。在该文件末尾加上添加一行:listen_port=8888
(2)chroot_list_enable。是指定用户(非匿名用户)不能切换到主目录以外的目录,用户的默认目录为其主目录,将一下3行
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
改为
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list
/etc/vsftpd/ftpusers中的用户无法将无法登陆服务器。
 
  
 
以下为常用的配置项:
vsftp的含义就是Very Security Ftp,下面就简要的说一下它的配置和使用方法,通过本文的介绍也希望您能了解在Linux下配置一个网络服务的基本过程
1.相关配置文件
  /etc目录下的vsftpd.conf,vsftpd.ftpuser,vsftpd.user_list,/etc/xinetd.d/vsftpd
2.配置vsftp
  主要是修改/etc/vsftpd.conf就可以了,相关参数如下:
  anonymous_enable=YES 是否允许匿名ftp,如否则选择NO
  local_enable=YES 是否允许本地用户登录
  local_umask=022 默认的umask码
  anon_upload_enable=YES 是否允许匿名ftp用户访问
  anon_upload_enable=YES 是否允许匿名上传文件
  anon_mkdir_write_enable=YES 是否允许匿名用户有创建目录的权利
  dirmessage_enable=YES 是否显示目录说明文件,默认是YES但需要收工创建.message文件
  xferlog_enable=YES 是否记录ftp传输过程
  connect_from_port_20=YES 是否确信端口传输来自20(ftp-data)
  chown_upload=YES
  chown_username=username 是否改变上传文件的属主,如果是需要输入一个系统用户名,你可以把上传的文件都改成root属主
  xferlog_file=/var/log/vsftpd.log ftp传输日志的路径和名字默认是/var/log/vsftpd.log
  xferlog_std_format=YES 是否使用标准的ftp xferlog模式
  idle_session_timeout=600 设置默认的断开不活跃session的时间
  data_connection_timeout=120 设置数据传输超时时间
  nopriv_user=ftpsecure 运行vsftpd需要的非特权系统用户默认是nobody
  async_abor_enable=YES 是否允许运行特殊的ftp命令async ABOR.这里我翻译的不爽,原文如下:
  When enabled, a special FTP command known as "async ABOR" will be enabled. Only ill advised FTP clients will use this feature.Addtionally, this feature is awkward to handle, so it is dis-abled by default. Unfortunately, some FTP clients will hang when cancelling a transfer unless this feature is available, so you may wish to enable it.
  ascii_upload_enable=YES
  ascii_download_enable=YES 是否使用ascii码方式上传和下载文件
  ftpd_banner=Welcome to chenlf FTP service. 定制欢迎信息
  deny_email_enable=YES
  banned_email_file=/etc/vsftpd.banned_emails 是否允许禁止匿名用户使用某些邮件地址,如果是输入禁止的邮件地址的路径和文件名
  chroot_list_enable=YES
  chroot_list_file=/etc/vsftpd.chroot_list 是否将系统用户限止在自己的home目录下,如果选择了yes那么chroot_list_file=/etc/vsftpd.chroot_list中列出的是不chroot的用户的列表
  max_clients=Number 如果以standalone模式起动,那么只有$Number个用户可以连接,其他的用户将得到错误信息,默认是0不限止
  message_file 设置访问一个目录时获得的目录信息文件的文件名,默认是.message

3 配置实例
  以下是我的配置文件.不允许匿名FTP,不允许上传,chroot用户目录,上传文件属主改为nobaody
  anonymous_enable=NO
  local_enable=YES
  write_enable=YES
  local_umask=022
  #anon_upload_enable=YES
  #anon_mkdir_write_enable=YES
  dirmessage_enable=YES
  xferlog_enable=YES
  connect_from_port_20=YES
  chown_uploads=YES
  chown_username=nobody
  xferlog_file=/var/log/vsftpd.log
  xferlog_std_format=YES
  pam_service_name=vsftpd
  chroot_local_user=YES
4 启动服务
  执行/etc/initd.d/xinetd restart
  就可以了.好了,现在我们就建了一个所谓的非常安全的ftp服务器了,大家试试吧

5.针对不同的使用者限制不同的速度。假设用户ylg所能使用的最高速度为500Kb/s,用
户user1所能使用的最高速度为250Kb/s,可以通过以下方法设置。在
/etc/vsftpd/vsftpd.conf文件尾部新增以下一行:
user_config_dir=/etc/vsftpd/userconf
增加一个名为/etc/vsftpd/userconf的目录:
#mkdir /etc/vsftpd/userconf

在/etc/vsftpd/userconf下新增一个名为"FTP用户名"的文件,其内容如下所示:
local_max_rate=500000

在/etc/vsftpd/userconf目录下新增一个名为user1的文件,其内容如下所示:
local_max_rate=250000

VSFTP对于速度的限制范围大概在80%到120%之间,也就是限制最高速度为100Kb/s,但
实际的速度可能在80Kb/s到120Kb/s之间。如果频宽不足,数值会低于此限制。

5.增加用户:
(1) 增加组 groupadd  ftpgroup
(2) 修改/etc/vsftpd/vsftpd.conf
    将底下三行 
    #chroot_list_enable=YES
    # (default follows)
    #chroot_list_file=/etc/vsftpd.chroot_list
    改为
    chroot_list_enable=YES
    # (default follows)
    chroot_list_file=/etc/vsftpd/chroot_list
(3) 增加用户 useradd -g ftpgroup -d /dir/to -M ftpuser
(4) 设置用户口令 passwd ftpuser
(5) 编辑文件: /etc/vsftpd/chroot_list
   内容为ftp用户名,每个用户占一行,如:
peter
john
(6) 重新启动vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart

第一次设置2~5,以后每增加一个用户,只需执行3~5即可.

本日志由 永远的风 于 2010-03-06 19:33:03 发表到 Linux 中,目前已经被浏览 770 次,评论 0 次;

作者添加了以下标签: linuxvsftpdvsftpftp

1)管理用户(user)的工具或命令;

useradd    注:添加用户
adduser    注:添加用户
passwd     注:为用户设置密码
usermod  注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;
pwcov       注:同步用户从/etc/passwd 到/etc/shadow
pwck         注:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整;
pwunconv  注:是pwcov 的立逆向操作,是从/etc/shadow和 /etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件;
finger        注:查看用户信息工具
id              注:查看用户的UID、GID及所归属的用户组
chfn          注:更改用户信息工具
su             注:用户切换工具
sudo         注:sudo 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo 能后面直接执行命令,比如sudo 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;但得通过visudo 来编辑/etc/sudoers来实现;
visudo      注:visodo 是编辑 /etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑 /etc/sudoers 的效果是一样的;
sudoedit  注:和sudo 功能差不多;



2)管理用户组(group)的工具或命令;

groupadd  注:添加用户组;
groupdel         注:删除用户组;
groupmod        注:修改用户组信息
groups     注:显示用户所属的用户组
grpck
grpconv   注:通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建;
grpunconv   注:通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件;

通过useradd 添加用户时的规则文件;

# useradd defaults file
GROUP=100
HOME=/home  注:把用户的家目录建在/home中;
INACTIVE=-1  注:是否启用帐号过期停权,-1表示不启用;
EXPIRE=   注:帐号终止日期,不设置表示不启用;
SHELL=/bin/bash  注:所用SHELL的类型;
SKEL=/etc/skel   注: 默认添加用户的目录默认文件存放位置;也就是说,当我们用adduser添加用户时,用户家目录下的文件,都是从这个目录中复制过去的;

本日志由 永远的风 于 2010-03-06 18:49:06 发表到 Linux 中,目前已经被浏览 728 次,评论 0 次;

作者添加了以下标签: Linux管理用户用户组

51/2