当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪RHCE学习笔记-RHEL5.4用户管理      本文介绍linux下用户管理的相关知识,供大家学习参考。 首先,来看如何在linux中添加一个新的用户 代码如下: #useradd  user1(username) [root@localhost ~]# [root@localhost ~]# useradd user1 [root@localhost ~]# i.........
    ▪RHCE学习笔记-RHEL5.4用户,组,权限      本文介绍linux的用户,组,权限相关知识,供大家学习参考。 Linux中的用户 在linux系统中每个用户都被分配一个独特的用户UID号码,用户名是给人来识别的,而UID号码是给计算机来识别的。用.........
    ▪RHCE学习笔记-RHEL5.4系统服务的管理      本文介绍linux 系统服务管理的相关内容,供大家学习参考。   Linux系统服务可以分为三类: 1、由init控制的服务 2、由System V启动脚本启动的服务 3、由xinetd管理的服务 下面介绍这三种系统.........

[1]RHCE学习笔记-RHEL5.4用户管理
    来源: 互联网  发布时间: 2013-12-24

本文介绍linux下用户管理的相关知识,供大家学习参考。

首先,来看如何在linux中添加一个新的用户

代码如下:
#useradd  user1(username)
[root@localhost ~]#
[root@localhost ~]# useradd user1
[root@localhost ~]# id user1
uid=500(user1) gid=500(user1) groups=500(user1)
[root@localhost ~]#

User1这个用户就创建成功了,用useradd命令会自动的在/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow。这四个文件中添加条目。创建用户的主目录。设定用户的权限和拥有者。

使用passwd命令来设置用户的密码

代码如下:
#passwd  user1(username)
[root@localhost ~]#
[root@localhost ~]# passwd user1
Changing password for user user1.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]#

密码设置成功。

接下来,我们来看如何在linux中删除一个用户

可以手动的在/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow。这个四个文件中去手动删除用户信息。
也可以使用userdel命令来删除一个用户。

代码如下:
#userdel  -r  user1(username)
-r   删除用户的home目录
[root@localhost ~]#
[root@localhost ~]# userdel -r user1
[root@localhost ~]#
[root@localhost ~]# id user1
id: user1: No such user
[root@localhost ~]#

这样,user1这个用户就被删除了。

关于用户的私有组和附加组的概念

在linux系统中,我们组分为两种,一种是私有组,一种是附加组。我们知道当利用useradd这条命令去创建一个用户的时候,系统将默认的去创建一个与之同名的组。这个组就叫做用户的私有组。

代码如下:
[root@localhost ~]#
[root@localhost ~]# su - user1
[user1@localhost ~]$
[user1@localhost ~]$ touch abc.txt
[user1@localhost ~]$ ll
total 0
-rw-rw-r-- 1 user1 user1 0 Mar  2 14:58 abc.txt
[user1@localhost ~]$

当我们使用user1的身份去创建一个文件,这个文件的拥有组就是用户的私有组。
当然,这个用户的私有组也是可以通过命令去改变的。
用户附加组是指当一个用户有附加组,那么该用户就可以共享用户的资源,额外的得到组里面的权限。
一个用户不可以属于多个私有组,但是一个用户可以属于多个附加组。

如何去修改用户的信息

我们可以直接修改/etc/passwd这个文件。
也可以在使用useradd命令创建用户的时候去指定用户信息。
还可以使用usermod命令来调整用户的信息。

1.修改用户的描述

代码如下:
#usermod  -c  “test account”  user1
[root@localhost ~]#
[root@localhost ~]# usermod -c "test account" user1
[root@localhost ~]#
[root@localhost ~]# cat /etc/passwd | grep user1
user1:x:500:500:test account:/home/user1:/bin/bash
[root@localhost ~]#

可以看到,这个用户就多了一个描述。

2.修改用户的home目录
修改用户的home目录,有两种方法。可以在创建用户的时候指定,也可以使用usermod命令来调整。
现在先来看下在创建用户的时候指定home目录。

代码如下:
#useradd –d  /home/guests/user2  user2
[root@localhost ~]#
[root@localhost ~]# cd /home/
[root@localhost home]# mkdir guests
[root@localhost home]# ls
guests  user1
[root@localhost home]# useradd -d /home/guests/user2 user2
[root@localhost home]# su - user2
[user2@localhost ~]$ pwd
/home/guests/user2
[user2@localhost ~]$

OK,在创建用户时候指定用户的home目录是没有问题的。

现在在来看看使用usermod命令来调整用户的信息。

代码如下:
#usermod  -d  /home/guests/user1  user1
[root@localhost home]#
[root@localhost home]# ls
guests  user1
[root@localhost home]# usermod -d /home/guests/user1/ user1
[root@localhost home]#
[root@localhost home]# su - user1
su: warning: cannot change directory to /home/guests/user1/: No such file or directory
-bash-3.2$ pwd
/home
-bash-3.2$

使用user1登录的时候,用户的/home目录和环境变量都不正确。

我们知道,在guests这目录下面其实是没有user1 user2这两个目录的。但是在创建用户的时候指定home目录,系统是可以自动生成这个用户的/home目录的。但是用户usermod命令是不会自动生成的,我们必须在/home目录下面创建一个user2的目录。然后改变权限,在去复制环境变量过来。这样user2登录的时候才会正常登录。

代码如下:
[root@localhost ~]# cd /home/guests/
[root@localhost guests]# ll
total 4
drwx------ 3 user2 user2 4096 Mar  2 15:25 user2
[root@localhost guests]# mkdir user1
[root@localhost guests]# ll
total 8
drwxr-xr-x 2 root  root  4096 Mar  2 15:28 user1
drwx------ 3 user2 user2 4096 Mar  2 15:25 user2
[root@localhost guests]# chown user1:user1 user1
[root@localhost guests]# chmod 700 user1/
[root@localhost guests]# ll
total 8
drwx------ 2 user1 user1 4096 Mar  2 15:28 user1
drwx------ 3 user2 user2 4096 Mar  2 15:25 user2
[root@localhost guests]# su - user1
-bash-3.2$ cp /etc/skel/.* .
cp: omitting directory `/etc/skel/.'
cp: omitting directory `/etc/skel/..'
cp: omitting directory `/etc/skel/.mozilla'
-bash-3.2$ exit
[root@localhost guests]# su - user1
[user1@localhost ~]$

现在user1的home目录和环境变量就正常了。
建议在创建用户的时候就指定/home目录,否则以后去改变用户的home目录会比较麻烦。

3.修改用户的私有组

代码如下:
#chmod  -g  user1   user2
[root@localhost ~]# usermod -g user1 user2
[root@localhost ~]#
[root@localhost ~]# id user2
uid=501(user2) gid=500(user1) groups=500(user1)
[root@localhost ~]#

将user2的私有组变成user1。

4.修改用户的附加组

代码如下:
#chmod  -G  user2  user3
[root@localhost ~]#
[root@localhost ~]# usermod -G user2 user3
[root@localhost ~]#
[root@localhost ~]# id user3
uid=502(user3) gid=502(user3) groups=502(user3),501(user2)
[root@localhost ~]#

可以看到,user3的附加组就变成了user2。
注意usermod –G 是修改用户的附加组,而不是添加用户的附加组。添加修改可以使用下面这条命令。

代码如下:
# usermod  -a  -G  user4  user3
[root@localhost ~]#
[root@localhost ~]# usermod -a -G user4 user3
[root@localhost ~]#
[root@localhost ~]# id user3
uid=502(user3) gid=502(user3) groups=502(user3),501(user2),503(user4)
[root@localhost ~]#

可以看到,user3现在就有两个附加组了。

5.修改用户的登录名

代码如下:
#usermod  -l  students  user1
[root@localhost ~]#
[root@localhost ~]# usermod -l students user1
[root@localhost ~]#
[root@localhost ~]# su - students
[students@localhost ~]$

可以看到,user1的登录名就变成了students。

6.修改用户的shell

代码如下:
#usermod  -s  /sbin/nologin  user1
[root@localhost ~]#
[root@localhost ~]# usermod -s /sbin/nologin user2
[root@localhost ~]# su - user2
This account is currently not available.
[root@localhost ~]#

User2的登录shell变成/sbin/nologin以后,用户就不可以登陆计算机,只可以登陆服务了。

7.锁定用户

代码如下:
#usermod  -L  user3
[root@localhost ~]#
[root@localhost ~]# usermod -L user3
[root@localhost ~]# cat /etc/shadow | grep user3
user3:!$1$coBU9WM5$r0Qmp12kA15KLD5Dte9De0:14670:0:99999:7:::
[root@localhost ~]# su - user4
[user4@localhost ~]$ su - user3
Password:
su: incorrect password
[user4@localhost ~]$

可以看到,当我们锁定用户的时候,系统会自动的在/etc/shadow文件里面的密码位前面添加一个感叹号,就代表这个用户被锁定了。当然我们也可以手动添加。我们的user3的确是不能登录的。

8.解锁用户

代码如下:
#usermod  -U  user3
[root@localhost ~]#
[root@localhost ~]# usermod -U user3
[root@localhost ~]#
[root@localhost ~]# cat /etc/shadow | grep user3
user3:$1$coBU9WM5$r0Qmp12kA15KLD5Dte9De0:14670:0:99999:7:::
[root@localhost ~]# su - user4
[user4@localhost ~]$ su - user3
Password:
[user3@localhost ~]$

解锁后,user3登录成功了。

关于用户密码的时效策略

默认情况下,用户的密码永不过期。
密码的默认设置在/etc/login.defs这个文件中都有定义。也可以修改这个文件。
这个文件是全局的配置文件,对每个用户都生效。
如何修改密码的时效策略
可以在/etc/shadow里面去修改用户密码的策略。
也可以使用chage 命令来修改用户的密码策略。

查看用户密码的时效策略

代码如下:
#chage  -l   user1(username)
[root@localhost ~]#
[root@localhost ~]# chage -l user1
Last password change   : Mar 02, 2010
Password expires       : never
Password inactive      : never
Account expires        : never
Minimum number of days between password change         :0
Maximum number of days between password change        : 99999
Number of days of warning before password expires         :7
[root@localhost ~]#

这条命令可以查看用户密码的策略。

如何修改用户密码的策略,
 

代码如下:
#chage  user1
[root@localhost ~]#
[root@localhost ~]# chage user1
Changing the aging information for user1
Enter the new value, or press ENTER for the default
        Minimum Password Age [0]:
        Maximum Password Age [99999]:
        Last Password Change (YYYY-MM-DD) [2010-03-02]:
        Password Expiration Warning [7]:
        Password Inactive [-1]:
        Account Expiration Date (YYYY-MM-DD) [1969-12-31]:
[root@localhost ~]#

它会以交互式的方式来修改用户的密码时效。

从上到下,依次解释:
密码的最小存活期,多长时间以后可以修改密码。(0为随时可以修改密码)
密码的最大存活期,密码在多长时间后过期。(99999是代表用户密码永不过期)
密码的最后一次修改时间,所有的策略以这个时间为标准
密码的警告时间,多长时间警告用户密码快过期了(默认是七天)
密码的宽限期,密码过期以后,账号多久过期。(默认是-1,密码过期了,账号就过期了。)
最后一个是账号的过期时间。
账号过期,就代表用户不可以登录了。
密码过期,只需要修改密码,用户就可以立即登录了。

关于组的管理

在组里面添加用户,
我们可以直接在/etc/group这个文件里面在组的后面去添加用户。
添加一个组
#groupadd

修改一个组
#groupmod

删除一个组
#groupdel

至此,关于linux下用户管理的相关内容就介绍完了,希望对大家有所帮助。


    
[2]RHCE学习笔记-RHEL5.4用户,组,权限
    来源: 互联网  发布时间: 2013-12-24

本文介绍linux的用户,组,权限相关知识,供大家学习参考。

Linux中的用户
在linux系统中每个用户都被分配一个独特的用户UID号码,用户名是给人来识别的,而UID号码是给计算机来识别的。用户名和UID都被保存在/etc/passwd这个文件当中。默认情况下面,前500个UID被系统占有,root的UID为0,1-499为系统用户。也就是说系统中第一个普通用户的UID应该为500。

可以使用id命令来查看用户的信息
#id  root (用户名)
[root@localhost ~]#
[root@localhost ~]# id root
Uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
[root@localhost ~]#

Linux中的用户组
在创建每个用户的时候,系统会自动的创建与之同名的组,每个组都被分配一个独特的组ID号码(gid)。组和gid都被保存在/etc/group这个文件当中。每个用户都有它们自己的私有组。组中的所有用户可以共享属于组群的文件。

同样通过id命令来查询组。

Linux中权限的介绍
每个文件都属于一个UID和一个GID
在linux下面我们将访问文件的用户分为三类
1.文件拥有人   (user)
2.文件拥有组   (group)
3.其他人           (other)

关于权限的优先顺序
如果UID匹配,就应用用户(user)权限。
否则。如果GID匹配,就应用组群(group)权限。
如果都不匹配,就应用(other)权限。
User----group----other

关于权限的类型
r:读
w:写
x:执行
-:无权限

关于权限类型对文件和目录的意义
r   文件  读
    目录  列举,不可以进入
w   文件  写
    目录  创建,删除
x   文件  执行程序
    目录  可以进入,不可以列举
-   文件  无权限
    目录  无权限

如何查看文件的权限呢?
#ls  -l   file
[root@localhost ~]#
[root@localhost ~]# ls -l file
-rw-r--r-- 1 root root 0 Feb 28 12:26 file
[root@localhost ~]#
这个文件的权限位上面有十个栏位。
第一个- 代表这是一个文件,如果是d,代表是一个目录。
后面的九位,每隔三位为一段。
rw-   可读可写
r- -  只读
r- -  只读
第一个root代表文件的拥有人是root
第二个root代表文件的拥有组是root
在权限位上面的前三位代表的是user的权限,中间三位代表的是group的权限,后面三位代表的是other的权限。(第一位除外)
在这里例子中就是用户root对这个文件是可读可写的,root组里面的成员对这个文件是只读的,除了用户root和root组里面的成员的其他用户对这个文件的权限也是只读的。

改变文件所有者
改变文件的所属用户
#chown   user1(用户名)    file(文件或者是目录)
Chown   =   change  owner
[root@localhost ~]#
[root@localhost ~]# ls -l file
-rw-r--r-- 1 root root 0 Feb 28 12:26 file
[root@localhost ~]#
[root@localhost ~]# chown user1 file
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# ls -l file
-rw-r--r-- 1 user1 root 0 Feb 28 12:26 file
[root@localhost ~]#
可以看到,原来file这个文件的所有者是root,现在就变成了user1。

改变文件的所属组群
# Chgrp   user1(组名)    file(文件或者是目录)
Chgrp    =  change  group
[root@localhost ~]#
[root@localhost ~]# ls -l file
-rw-r--r-- 1 user1 root 0 Feb 28 12:26 file
[root@localhost ~]#
[root@localhost ~]# chgrp user1 file
[root@localhost ~]#
[root@localhost ~]# ls -l file
-rw-r--r-- 1 user1 user1 0 Feb 28 12:26 file
[root@localhost ~]#

可以看到,文件的所属组也变成了user1。
只有root用户才能够改变文件的所有者。
只有root用户和文件的所有者才能改变文件的组群。
我们可以在改变的时候加上- R的参数,表示递归。这个也只读目录生效。
 
改变文件的权限
符号式方法
# chmod   u-x,g+x,o=rwx file    (文件名)
+   添加某个权限
-   删除每个权限
=  分配权限
[root@localhost ~]#
[root@localhost ~]# ls -l file
-rwxr--r-- 1 user1 user1 0 Feb 28 12:26 file
[root@localhost ~]#
[root@localhost ~]# chmod u-x,g+x,o=rwx file
[root@localhost ~]#
[root@localhost ~]# ls -l file
-rw-r-xrwx 1 user1 user1 0 Feb 28 12:26 file
[root@localhost ~]#
[root@localhost ~]#
可以看到,我们文件的权限就被改正过来了。这个非常灵活。多试试。

数字式方法
#chmod  755  file(文件名)
使用三个数字来代表权限
第一个数字代表所属用户的权限
第二个数字代表所属组的权限
第三个数字代表其他用户的权限
通常吧以下的数值加起来来代表权限
4 代表读取
2 代表写入
1 代表执行
[root@localhost ~]#
[root@localhost ~]# ls -l file
-rw-r-xrwx 1 user1 user1 0 Feb 28 12:26 file
[root@localhost ~]#
[root@localhost ~]# chmod 755 file
[root@localhost ~]#
[root@localhost ~]# ls -l file
-rwxr-xr-x 1 user1 user1 0 Feb 28 12:26 file
[root@localhost ~]#
我们这个文件的权限就变成了755。
同样我们可以在改变的时候加上- R的参数,表示递归。这个也只读目录生效。
 
至此,linux中的用户,组,权限的基本内容就介绍完了,希望对大家有所帮助。


    
[3]RHCE学习笔记-RHEL5.4系统服务的管理
    来源: 互联网  发布时间: 2013-12-24

本文介绍linux 系统服务管理的相关内容,供大家学习参考。
 
Linux系统服务可以分为三类:
1、由init控制的服务
2、由System V启动脚本启动的服务
3、由xinetd管理的服务

下面介绍这三种系统服务:

一.Init控制的服务
Init的配置文件在/etc/inittab这个文件中。

二.System V服务
经常使用几个配置文件,大多数服务启动一个或多个进程。都是独立启动服务。
在/etc/init.d/下面的脚本都是system V服务。
[root@localhost ~]# cd /etc/init.d/
[root@localhost init.d]# ls
acpid          functions        kudzu        nscd     setroubleshoot
anacron        gpm         libvirtd        ntpd       single
apmd           haldaemon     lvm2-monitor     pand      smartd
atd            halt         mcstrans            pcscd   sshd
auditd         hidd        mdmonitor         portmap    syslog
autofs         hplip         mdmpd             psacct    vmware-tools
avahi-daemon   ip6tables     messagebus       rawdevices  vncserver
avahi-dnsconfd  ipmi       microcode_ctl   rdisc        vsftpd
bluetooth       ipmievd      multipathd         readahead_early  wdaemon
conman       iptables         named               readahead_later   winbind
cpuspeed      irda            netconsole         restorecond         wpa_supplicant
crond         irqbalance      netfs        rhnsd         xend
cups           iscsi        netplugd             rpcgssd       xendomains
cups-config-daemon  iscsid   network             rpcidmapd       xfs
dnsmasq         kdump      NetworkManager   rpcsvcgssd           xinetd
dund               killall              nfs     saslauthd               ypbind
firstboot          krb524          nfslock        sendmail     yum-updatesd
[root@localhost init.d]#

在这个里面的所有脚本都是system V的服务。

如果想运行这些服务,可以使用两种方式,
#/etc/init.d/vsftpd  restart
[root@localhost ~]#
[root@localhost ~]# /etc/init.d/vsftpd restart
Shutting down vsftpd:         [  OK  ]
Starting vsftpd for vsftpd:    [  OK  ]
[root@localhost ~]#

直接使用脚本的方式来运行,还有一种方式,
#service  vsftpd  restart
[root@localhost ~]#
[root@localhost ~]# service vsftpd restart
Shutting down vsftpd:        [  OK  ]
Starting vsftpd for vsftpd:  [  OK  ]
[root@localhost ~]#
使用service命令来调用脚本。

如何控制系统服务呢?

我们一般使用chkconfig工具来管理,
我们可以使用chkconfig工具来定义那个服务运行在那个级别上面。
#chkconfig  --list

这条命令会显示系统中所有的系统服务,输出很多。后面可以跟查询的服务。
# Chkconfig  --list  vsftpd
[root@localhost ~]#
[root@localhost ~]# chkconfig --list vsftpd
vsftpd          0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@localhost ~]#

通过chkconfig工具可以查询到vsftpd这个服务在下次启动的时候在2,3,4,5这四个级别上面是启动的。
如何定义系统服务在下次启动的时候在那个级别启动呢?
现在我们定义vsftpd服务在下次启动的时候在3,5级别启动。

代码如下:
# chkconfig --level 35 vsftpd on
[root@localhost ~]#
[root@localhost ~]# chkconfig --level 35 vsftpd on
[root@localhost ~]#
[root@localhost ~]# chkconfig --list vsftpd
vsftpd          0:off   1:off   2:off   3:on    4:off   5:on    6:off
[root@localhost ~]#

现在我们的vsftpd服务在下次启动的时候就会在3和5的级别启动。

如果我们不加任何级别,直接将vsftpd服务给off。

代码如下:
#chkconfig vsftpd off
[root@localhost ~]#
[root@localhost ~]# chkconfig vsftpd off
[root@localhost ~]#
[root@localhost ~]# chkconfig --list vsftpd
vsftpd          0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@localhost ~]#

现在在所有的级别上面,vsftpd服务就off了。

将vsftpd服务直接给on

代码如下:
#chkconfig  vsftpd  on
[root@localhost ~]#
[root@localhost ~]# chkconfig vsftpd on
[root@localhost ~]#
[root@localhost ~]# chkconfig --list vsftpd
vsftpd          0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@localhost ~]#

那么就会在2,3,4,5级别上面启动。因为在0,1,6级别启动没有意义。
这条命令也是我们最长用到的。
我们可以添加服务或者删除服务在chkconfig的管理程序里面。

删除一个服务在chkconfig的管理程序里面,

代码如下:
#chkconig  --del  vsftpd
[root@localhost ~]#
[root@localhost ~]# chkconfig --del vsftpd
[root@localhost ~]#
[root@localhost ~]# chkconfig --list vsftpd
service vsftpd supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add vsftpd')
[root@localhost ~]#

Vsftpd这个服务就从chkconfig的管理程序里面删除了,通过chkconfig  --list命令也查询不到了。

添加一个服务到chkconfig的管理程序里面

代码如下:
#chkconfig  --add  vsftpd
[root@localhost ~]#
[root@localhost ~]# chkconfig --add vsftpd
[root@localhost ~]#
[root@localhost ~]# chkconfig --list vsftpd
vsftpd          0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@localhost ~]#

OK,vsftpd服务就被成功的添加到了chkconfig的管理程序里面。
注意:service vsftpd restart这条命令是使vsftpd服务在当前生效,下次启动不生效。而chkconfig工具开启的服务是在下次生效。

Chkconfig  vsftpd  on这条命令一定要敲。

关于/etc/sysconfig下面的文件,
/etc/sysconfig这个目录我们并不陌生了,这个目录下面的所有文件都是全局配置文件。我们很多的服务都在/etc/sysconfig下面有全局的配置文件。

三.Xinetd管理的服务

我们由xinetd管理的服务都在/etc/xinetd/下面。

代码如下:
[root@localhost ~]#
[root@localhost ~]# cd /etc/xinetd.d/
[root@localhost xinetd.d]# ls
chargen-dgram   discard-stream  gssftp       rsync     time-stream
chargen-stream  echo-dgram      klogin       tcpmux-server
daytime-dgram   echo-stream     krb5-telnet  telnet
daytime-stream  eklogin         kshell       tftp
discard-dgram   ekrb5-telnet    rmcp         time-dgram
[root@localhost xinetd.d]#

这个目录下面的服务都是由Xinetd来管理的。
可以看到,在这个目录下面有个telnet。也就是说telnet是由xinetd来管理的。
现在我们打开这个文件来看看。

代码如下:
# default: on
# description: The telnet server serves telnet sessions; it uses \
#       unencrypted username/password pairs for authentication.
service telnet
{
        flags                  = REUSE
        socket_type      = stream
        wait                  = no
        user                  = root
        server               = /usr/sbin/in.telnetd
        log_on_failure  += USERID
        disable              = yes
}

在telnet的配置文件里面有个disable = yes,是不是关闭这个服务呢,yes。
现在我们将它改成no,不关闭。
那么我们如何重新启动这个服务呢。
使用service  telnetd  restart来试试,

代码如下:
[root@localhost ~]#
[root@localhost ~]# service telnetd restart
telnetd: unrecognized service
[root@localhost ~]#

好像不行,因为telnet不是system V的服务,不可能会调用/etc/init.d下面的脚本。

telnet服务是属于xinetd服务的,我们重启下xinetd服务,试试。

代码如下:
[root@localhost ~]#
[root@localhost ~]# service xinetd restart
Stopping xinetd:     [  OK  ]
Starting xinetd:     [  OK  ]
[root@localhost ~]#

OK,xinetd服务启动成功。

因为xinetd服务也是属于system V服务,所以可以用service来启动。
我们知道telnet的端口号是23,我们来查询这个端口有没有监听。

代码如下:
[root@localhost ~]#
[root@localhost ~]# netstat -tulnp | grep 23
tcp        0      0 0.0.0.0:23      0.0.0.0:*   LISTEN   14854/xinetd      
[root@localhost ~]#

可以看到,telnet服务的确是监听在23号端口的。并且是由xinetd来管理的。

现在我们来测试一下

代码如下:
[root@localhost ~]#
[root@localhost ~]# telnet 192.168.0.254
Trying 192.168.0.254...
Connected to 192.168.0.254 (192.168.0.254).
Escape character is '^]'.
Red Hat Enterprise Linux Server release 5.4 (Tikanga)
Kernel 2.6.18-164.el5xen on an i686
login: user1
Password:
Last login: Mon Mar  8 14:22:29 from 192.168.0.2
[user1@localhost ~]$ ls
[user1@localhost ~]$

同样的,我们也可以使用chkconfig来管理telnet。

代码如下:
[root@localhost ~]#
[root@localhost ~]# chkconfig telnet on
[root@localhost ~]# chkconfig --list telnet
telnet          on
[root@localhost ~]# chkconfig telnet off
[root@localhost ~]# chkconfig --list telnet
telnet          off
[root@localhost ~]#

关于system V服务和xinetd管理的服务,
System V   占用资源,反应速度快。
Xinted     占用资源少,反应速度慢。

Xinetd的全局配置文件在/etc/xinetd.conf文件,
/etc/xinetd.d/service这个是xinetd服务的配置文件。
以xinetd服务自己定义的为准,如果xinetd服务没有定义的条目,就会继承全局配置文件中定义的条目。

首先来看看全局配置文件,

代码如下:

Enabled    =   yes  or  no  
开启或者关闭,

Instances   =   50           
最多可以管理50个请求,

Per_source  =   10          
每个单一的IP仅可以访问10次,

V6only                      
是否启用ipv6,

log_on_failure    =  HOST   
当访问我失败,记录主机名。

Log_on_success  =   PID HOST DURATION EXIT
当访问我成功了,就记录这些信息。

Cps  =50 10  
当连接到我的计算机上面的用户超过50,就暂停10S。

在来看看xinetd服务的配置文件,
Service   telnet 
服务的名字

Disable  =  yes  or   no
是否开启telnet

Socket_type   =  stream
类型是TCP

Wait    =  no
是否等待

User    =  root
服务的管理者是root

Log_on_failure  +=  USERID
登录失败,记录用户的uid。

下面就是关于xinetd服务的访问控制,
语法:
使用only_from 来定义允许访问,
使用no_access来定义禁止访问。
Only_from代表仅允许那些人来访问,
No_access代表不允许那些人访问。

关于xinetd服务访问控制的主机模式
192.168.0.10             主机
192.168.0.0/24          网段
Station10.example.com.   主机名
.example.com           域名

现在我们来做试验,

代码如下:
[root@localhost ~]#
[root@localhost ~]# ssh 192.168.0.10
root@192.168.0.10's password:
Permission denied, please try again.
root@192.168.0.10's password:
Last login: Mon Mar  8 15:32:07 2010 from 192.168.0.254
[root@localhost ~]#
[root@localhost ~]# telnet 192.168.0.254
Trying 192.168.0.254...
Connected to 192.168.0.254 (192.168.0.254).
Escape character is '^]'.
Red Hat Enterprise Linux Server release 5.4 (Tikanga)
Kernel 2.6.18-164.el5xen on an i686
login: user1
Password:
Last login: Mon Mar  8 15:21:50 from 192.168.0.10
[user1@localhost ~]$

现在我们是可以telnet到192.168.0.254上面的。

现在我们对telnet来做访问控制,

代码如下:
[root@localhost ~]#
[root@localhost ~]# cat /etc/xinetd.d/telnet
# default: on
# description: The telnet server serves telnet sessions; it uses \
#       unencrypted username/password pairs for authentication.
service telnet
{
        disable               = no
        flags                  = REUSE
        socket_type      = stream      
        wait                  = no
        user                  = root
        server               = /usr/sbin/in.telnetd
        log_on_failure  += USERID
        no_access         =  192.168.0.10
}
[root@localhost ~]#

我们拒绝192.168.0.10进行telnet到192.168.0.254。

然后重启下xinetd服务,

代码如下:
[root@localhost ~]#
[root@localhost ~]# service xinetd restart
Stopping xinetd:         [  OK  ]
Starting xinetd:         [  OK  ]

服务启动成功,测试下,

代码如下:
[root@localhost ~]#
[root@localhost ~]# ssh 192.168.0.10
root@192.168.0.10's password:
Last login: Mon Mar  8 15:49:20 2010 from 192.168.0.254
[root@localhost ~]#
[root@localhost ~]# telnet 192.168.0.254
Trying 192.168.0.254...
Connected to 192.168.0.254 (192.168.0.254).
Escape character is '^]'.
Connection closed by foreign host.
[root@localhost ~]#

OK,可以看到,连接就被拒绝了。

那192.168.0.20可以telnet到192.168.0.254上面吗。试试

代码如下:
[root@localhost ~]#
[root@localhost ~]# ssh 192.168.0.20
root@192.168.0.20's password:
Last login: Mon Mar  8 15:58:27 2010 from 192.168.0.254
[root@localhost ~]#
[root@localhost ~]# telnet 192.168.0.254
Trying 192.168.0.254...
Connected to 192.168.0.254 (192.168.0.254).
Escape character is '^]'.
Red Hat Enterprise Linux Server release 5.4 (Tikanga)
Kernel 2.6.18-164.el5xen on an i686
login: user1
Password:
Last login: Mon Mar  8 15:32:35 from 192.168.0.10
[user1@localhost ~]$

是可以的,我们只是拒绝了192.168.0.10进行telnet到192.168.0.254。
所以192.168.0.20是可以的。

如果有这样的情况呢?
Only_from     192.168.0.0/24
No_access     192.168.0.20
那么192.168.0.20最终可以访问吗?
我们来尝试一下。

代码如下:
[root@localhost ~]#
[root@localhost ~]# cat /etc/xinetd.d/telnet
# default: on
# description: The telnet server serves telnet sessions; it uses \
#       unencrypted username/password pairs for authentication.
service telnet
{
        disable               = no
        flags                   = REUSE
        socket_type       = stream      
        wait                   = no
        user                   = root
        server                = /usr/sbin/in.telnetd
        log_on_failure   += USERID
        only_from         = 192.168.0.0/24
        no_access         =  192.168.0.20
}
[root@localhost ~]#

配置OK,重启下服务,
[root@localhost ~]#
[root@localhost ~]# service xinetd restart
Stopping xinetd:                                          [  OK  ]
Starting xinetd:                                            [  OK  ]

服务启动成功,测试下,

代码如下:
[root@localhost ~]#
[root@localhost ~]# ssh 192.168.0.20
root@192.168.0.20's password:
Last login: Mon Mar  8 16:03:23 2010 from 192.168.0.254
[root@localhost ~]# telnet 192.168.0.254
Trying 192.168.0.254...
Connected to 192.168.0.254 (192.168.0.254).
Escape character is '^]'.
Connection closed by foreign host.
[root@localhost ~]#

可以看到,192.168.0.20最终还是不可以telnet到192.168.0.254上面去的。

那么192.168.0.10可以telnet吗?

代码如下:
[root@localhost ~]#
[root@localhost ~]# ssh 192.168.0.10
root@192.168.0.10's password:
Last login: Mon Mar  8 16:05:00 2010 from 192.168.0.254
[root@localhost ~]#
[root@localhost ~]# telnet 192.168.0.254
Trying 192.168.0.254...
Connected to 192.168.0.254 (192.168.0.254).
Escape character is '^]'.
Red Hat Enterprise Linux Server release 5.4 (Tikanga)
Kernel 2.6.18-164.el5xen on an i686
login: user1
Password:
Last login: Mon Mar  8 16:00:42 from 192.168.0.20
[user1@localhost ~]$

OK,192.168.0.10是没有问题的,可以telnet到192.168.0.254上面去。

我们允许192.168.0.0/24这个网段里面所有的主机,但是拒绝192.168.0.10这台主机。
这个访问控制还可以支持访问时间的控制。

代码如下:

Access_times  = 8:00-12:00
[root@localhost ~]#
[root@localhost ~]# cat /etc/xinetd.d/telnet
# default: on
# description: The telnet server serves telnet sessions; it uses \
#       unencrypted username/password pairs for authentication.
service telnet
{
        disable               = no
        flags                   = REUSE
        socket_type       = stream      
        wait                   = no
        user                   = root
        server                = /usr/sbin/in.telnetd
        log_on_failure   += USERID
        access_times     = 8:00-12:00
}

[root@localhost ~]#

配置就OK,重启下服务,
[root@localhost ~]#
[root@localhost ~]# service xinetd restart
Stopping xinetd:              [  OK  ]
Starting xinetd:              [  OK  ]

服务启动成功,测试下,

代码如下:
[root@localhost ~]#
[root@localhost ~]# ssh 192.168.0.10
root@192.168.0.10's password:
Last login: Mon Mar  8 16:12:00 2010 from 192.168.0.254
[root@localhost ~]# date
Mon Mar  8 16:12:20 CST 2010
[root@localhost ~]#
[root@localhost ~]# telnet 192.168.0.254
Trying 192.168.0.254...
Connected to 192.168.0.254 (192.168.0.254).
Escape character is '^]'.
Connection closed by foreign host.
[root@localhost ~]#

192.168.0.10是不可以telnet到192.168.0.254上面去的,因为访问时间限制了。

至此,RHEL5.4系统服务管理的相关知识就介绍完了,希望对大家有所帮助。


    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3