centos610,centos镜像下载

其实centos610的问题并不复杂,但是又很多的朋友都不太了解centos镜像下载,因此呢,今天小编就来为大家分享centos610的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

win10怎么访问ftp服务器地址centos搭建ftp详细步骤

以CentOS 6为例:

1. vsftp简介

vsftp是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP从此名称可以看出来,编制者的初衷是代码的安全。安全性是编写VSFTP的初衷,除了这与生俱来的安全特性以外,高速与高稳定性也是VSFTP的两个重要特点。

2.安装vsftp套件

[root@zcwyou~]# yum install vsftpd-y3.配置开机自启

chkconfig是CentOS6上的程序管理工具,CentOS7请使用systemctl

[root@zcwyou~]# chkconfig vsftpd on检查验证:

[root@zcwyou~]# chkconfig vsftpd--list| grep vsftpdchkconfig检查vsftp服务

4.防火墙开放端口

如果你的防火墙默认没有开启FTP端口,请按以下方法开启,仅仅适用于CentOS6这类使用iptables防火墙的发行版,CentOS 7与Ubuntu不适用。请转到本站相关教程。

[root@zcwyou~]# iptables-A INPUT-m state--state NEW-m tcp-p tcp--dport 20-j ACCEPT[root@zcwyou~]# iptables-A INPUT-m state--state NEW-m tcp-p tcp--dport 21-j ACCEPT保存防火墙配置:

[root@zcwyou~]# service iptables save重启防火墙配置,马上生效。

[root@zcwyou~]# service iptables restart防火墙放行ftp服务

5.创建ftp用户

以用户ftpuser为例

[root@zcwyou~]# useradd ftpuser-d/home/ftpuser-s/sbin/nologin只要使用ftpuser的身份登录FTP服务,即可读取以下目录的内容:

/home/ftpuser/

6.为ftp用户设置密码

以用户ftpuser为例

[root@zcwyou~]# passwd ftpuser输入两次一样的密码

设置ftp用户密码

7.修改配置文件(可选)

不允许匿名用户登录,只能用创建的账号和密码登录。

[root@zcwyou~]# vi/etc/vsftpd/vsftpd.conf修改以下内容,默认为YES,即允许匿名用户登录,NO表示不允许:

anonymous_enable=NO

禁止匿名用户登录ftp

8.启动vsftp服务

[root@zcwyou~]# service vsftpd start9.设置SElinux标签

如果你没有使用SElinux,不需要配置这步。如果你不清楚自己是否在使用,请按执行以下指令。

查询SElinux对ftp服务器的相关状态

[root@zcwyou~]# getsebool-a| grep ftp查询SElinux对ftp服务器的相关状态

可以看到,默认情况下,SElinux限制了ftp所有的功能

配置SElinux,允许访问FTP服务:

[root@zcwyou~]# setsebool-P allow_ftpd_full_access 1再次检查:

[root@zcwyou~]# getsebool-a| grep ftp确认SElinux放行ftp服务器

10.测试

使用浏览器

使用浏览器访问ftp服务器

或者

使用FTP专用客户端:

filezilla ftp客户端

官方下载地址:

下载filezilla客户端

使用filezilla客户端登录ftp

本文已同步至博客站,尊重原创,转载时请在正文中附带以下链接:

centos 6.6怎么升级内核

1.准备工作

确认内核及版本信息

[root@hostname~]# uname-r

2.6.32-220.el6.x86_64

[root@hostname~]# cat/etc/centos-release

CentOS release 6.5(Final)

安装软件

编译安装新内核,依赖于开发环境和开发库

# yum grouplist//查看已经安装的和未安装的软件包组,来判断我们是否安装了相应的开发环境和开发库;

# yum groupinstall"Development Tools"//一般是安装这两个软件包组,这样做会确定你拥有编译时所需的一切工具

# yum install ncurses-devel//你必须这样才能让 make*config这个指令正确地执行

# yum install qt-devel//如果你没有 X环境,这一条可以不用

# yum install hmaccalc zlib-devel binutils-devel elfutils-libelf-devel//创建 CentOS-6内核时需要它们

如果当初安装系统是选择了Software workstation,上面的安装包几乎都已包含。

2.编译内核

获取并解压内核源码,配置编译项

Linux内核版本有两种:稳定版和开发版,Linux内核版本号由3个数字组成:r.x.y

r:主版本号

x:次版本号,偶数表示稳定版本;奇数表示开发中版本。

y:修订版本号,表示修改的次数

去 首页,可以看到有stable, longterm等版本,longterm是比stable更稳定的版本,会长时间更新,因此我选择 3.10.58。

[root@sean~]#wget

[root@sean~]# tar-xf linux-3.10.58.tar.xz-C/usr/src/

[root@sean~]# cd/usr/src/linux-3.10.58/

[root@sean linux-3.10.58]# cp/boot/config-2.6.32-220.el6.x86_64.config

我们在系统原有的内核配置文件的基础上建立新的编译选项,所以复制一份到当前目录下,命名为.config。接下来继续配置:

[root@sean linux-3.10.58]# sh-c'yes""| make oldconfig'

HOSTCC scripts/basic/fixdep

HOSTCC scripts/kconfig/conf.o

SHIPPED scripts/kconfig/zconf.tab.c

SHIPPED scripts/kconfig/zconf.lex.c

SHIPPED scripts/kconfig/zconf.hash.c

HOSTCC scripts/kconfig/zconf.tab.o

HOSTLD scripts/kconfig/conf

scripts/kconfig/conf--oldconfig Kconfig

.config:555:warning: symbol value'm' invalid for PCCARD_NONSTATIC

.config:2567:warning: symbol value'm' invalid for MFD_WM8400

.config:2568:warning: symbol value'm' invalid for MFD_WM831X

.config:2569:warning: symbol value'm' invalid for MFD_WM8350

.config:2582:warning: symbol value'm' invalid for MFD_WM8350_I2C

.config:2584:warning: symbol value'm' invalid for AB3100_CORE

.config:3502:warning: symbol value'm' invalid for MMC_RICOH_MMC

*

* Restart config...

*

*

* General setup

*

......

XZ decompressor tester(XZ_DEC_TEST) [N/m/y/?](NEW)

Averaging functions(AVERAGE) [Y/?](NEW) y

CORDIC algorithm(CORDIC) [N/m/y/?](NEW)

JEDEC DDR data(DDR) [N/y/?](NEW)

#

# configuration written to.config

make oldconfig会读取当前目录下的.config文件,在.config文件里没有找到的选项则提示用户填写,然后备份.config文件为.config.old,并生成新的.config文件,参考

有的文档里介绍使用make memuconfig,它便是根据需要定制模块,类似界面如下:(在此不需要)

开始编译

[root@sean linux-3.10.58]# make-j4 bzImage//生成内核文件

[root@sean linux-3.10.58]# make-j4 modules//编译模块

[root@sean linux-3.10.58]# make-j4 modules_install//编译安装模块

-j后面的数字是线程数,用于加快编译速度,一般的经验是,逻辑CPU,就填写那个数字,例如有8核,则为-j8。(modules部分耗时30多分钟)

安装

[root@sean linux-3.10.58]# make install

实际运行到这一步时,出现ERROR: modinfo: could not find module vmware_balloon,但是不影响内核安装,是由于vsphere需要的模块没有编译,要避免这个问题,需要在make之前时修改.config文件,加入

HYPERVISOR_GUEST=yCONFIG_VMWARE_BALLOON=m

(这一部分比较容易出问题,参考下文异常部分)

修改grub引导,重启

安装完成后,需要修改Grub引导顺序,让新安装的内核作为默认内核。

编辑 grub.conf文件,

vi/etc/grub.conf

#boot=/dev/sda

default=0

timeout=5

splashimage=(hd0,0)/grub/splash.xpm.gz

hiddenmenu

title CentOS(3.10.58)

root(hd0,0)

...

数一下刚刚新安装的内核在哪个位置,从0开始,然后设置default为那个数字,一般新安装的内核在第一个位置,所以设置default=0。

重启reboot:

boot-with-new-kernel

确认当内核版本

[root@sean~]# uname-r

3.10.58

升级内核成功!

3.异常

编译失败(如缺少依赖包)

可以先清除,再重新编译:

# make mrproper#完成或者安装过程出错,可以清理上次编译的现场

# make clean

在vmware虚拟机上编译,出现类似下面的错误

[root@sean linux-3.10.58]# make install

sh/usr/src/linux-3.10.58/arch/x86/boot/install.sh 3.10.58 arch/x86/boot/bzImage\

System.map"/boot"

ERROR: modinfo: could not find module vmware_balloon

可以忽略,如果你有强迫症的话,尝试以下办法:

要在vmware上需要安装VMWARE_BALLOON,可直接修改.config文件,但如果vi直接加入CONFIG_VMWARE_BALLOON=m依然是没有效果的,因为它依赖于HYPERVISOR_GUEST=y。如果你不知道这层依赖关系,通过make menuconfig后,Device Drivers-> MISC devices下是找不到VMware Balloon Driver的。(手动vi.config修改HYPERVISOR_GUEST后,便可以找到这一项),另外,无论是通过make menuconfig或直接vi.config,最后都要运行sh-c'yes""| make oldconfig'一次得到最终的编译配置选项。

然后,考虑到vmware_balloon可能在这个版本里已更名为vmw_balloon,通过下面的方法保险起见:

# cd/lib/modules/3.10.58/kernel/drivers/misc/

# ln-s vmw_balloon.ko vmware_balloon.ko#建立软连接

其实,针对安装docker的内核编译环境,最明智的选择是使用sciurus帮我们配置好的.config文件。

也建议在make bzImage之前,运行脚本check-config.sh检查当前内核运行docker所缺失的模块。

当提示缺少其他module时如NF_NAT_IPV4时,也可以通过上面的方法解决,然后重新编译。

4.几个重要的Linux内核文件介绍

在网络中,不少服务器采用的是Linux系统。为了进一步提高服务器的性能,可能需要根据特定的硬件及需求重新编译Linux内核。编译Linux内核,需要根据规定的步骤进行,编译内核过程中涉及到几个重要的文件。比如对于RedHat Linux,在/boot目录下有一些与Linux内核有关的文件,进入/boot执行:ls–l。编译过RedHat Linux内核的人对其中的System.map、vmlinuz、initrd-2.4.7-10.img印象可能比较深刻,因为编译内核过程中涉及到这些文件的建立等操作。那么这几个文件是怎么产生的?又有什么作用呢?

(1)vmlinuz

vmlinuz是可引导的、压缩的内核。“vm”代表“Virtual Memory”。Linux支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz是可执行的Linux内核,它位于/boot/vmlinuz,它一般是一个软链接。

vmlinuz的建立有两种方式。

一是编译内核时通过“make zImage”创建,然后通过:“cp/usr/src/linux-2.4/arch/i386/linux/boot/zImage/boot/vmlinuz”产生。zImage适用于小内核的情况,它的存在是为了向后的兼容性。

二是内核编译时通过命令make bzImage创建,然后通过:“cp/usr/src/linux-2.4/arch/i386/linux/boot/bzImage/boot/vmlinuz”产生。

bzImage是压缩的内核映像,需要注意,bzImage不是用bzip2压缩的,bzImage中的bz容易引起误解,bz表示“big zImage”。 bzImage中的b是“big”意思。

zImage(vmlinuz)和bzImage(vmlinuz)都是用gzip压缩的。它们不仅是一个压缩文件,而且在这两个文件的开头部分内嵌有gzip解压缩代码。所以你不能用gunzip或 gzip–dc解包vmlinuz。

内核文件中包含一个微型的gzip用于解压缩内核并引导它。两者的不同之处在于,老的zImage解压缩内核到低端内存(第一个640K),bzImage解压缩内核到高端内存(1M以上)。如果内核比较小,那么可以采用zImage或bzImage之一,两种方式引导的系统运行时是相同的。大的内核采用bzImage,不能采用zImage。

vmlinux是未压缩的内核,vmlinuz是vmlinux的压缩文件。

(2) initrd-x.x.x.img

initrd是“initial ramdisk”的简写。initrd一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。比如,使用的是scsi硬盘,而内核vmlinuz中并没有这个scsi硬件的驱动,那么在装入scsi模块之前,内核不能加载根文件系统,但scsi模块存储在根文件系统的/lib/modules下。为了解决这个问题,可以引导一个能够读实际内核的initrd内核并用initrd修正scsi引导问题。initrd-2.4.7-10.img是用gzip压缩的文件,下面来看一看这个文件的内容。

initrd实现加载一些模块和安装文件系统等。

initrd映象文件是使用mkinitrd创建的。mkinitrd实用程序能够创建initrd映象文件。这个命令是RedHat专有的。其它Linux发行版或许有相应的命令。这是个很方便的实用程序。具体情况请看帮助:man mkinitrd

下面的命令创建initrd映象文件:

(3) System.map

System.map是一个特定内核的内核符号表。它是你当前运行的内核的System.map的链接。

内核符号表是怎么创建的呢? System.map是由“nm vmlinux”产生并且不相关的符号被滤出。对于本文中的例子,编译内核时,System.map创建在/usr/src/linux-2.4/System.map。像下面这样:

nm/boot/vmlinux-2.4.7-10> System.map

下面几行来自/usr/src/linux-2.4/Makefile:

nm vmlinux| grep-v'(compiled)|(.o

)|([aUw])|(..ng

)|(LASH[RL]DI)'| sort> System.map

然后复制到/boot:

cp/usr/src/linux/System.map/boot/System.map-2.4.7-10

在进行程序设计时,会命名一些变量名或函数名之类的符号。Linux内核是一个很复杂的代码块,有许许多多的全局符号。

Linux内核不使用符号名,而是通过变量或函数的地址来识别变量或函数名。比如不是使用size_t BytesRead这样的符号,而是像c0343f20这样引用这个变量。

对于使用计算机的人来说,更喜欢使用那些像size_t BytesRead这样的名字,而不喜欢像c0343f20这样的名字。内核主要是用c写的,所以编译器/连接器允许我们编码时使用符号名,当内核运行时使用地址。

然而,在有的情况下,我们需要知道符号的地址,或者需要知道地址对应的符号。这由符号表来完成,符号表是所有符号连同它们的地址的列表。Linux符号表使用到2个文件:/proc/ksyms和System.map。

/proc/ksyms是一个“proc file”,在内核引导时创建。实际上,它并不真正的是一个文件,它只不过是内核数据的表示,却给人们是一个磁盘文件的假象,这从它的文件大小是0可以看出来。然而,System.map是存在于你的文件系统上的实际文件。当你编译一个新内核时,各个符号名的地址要发生变化,你的老的System.map具有的是错误的符号信息。每次内核编译时产生一个新的System.map,你应当用新的System.map来取代老的System.map。

虽然内核本身并不真正使用System.map,但其它程序比如klogd, lsof和ps等软件需要一个正确的System.map。如果你使用错误的或没有System.map,klogd的输出将是不可靠的,这对于排除程序故障会带来困难。没有System.map,你可能会面临一些令人烦恼的提示信息。

另外少数驱动需要System.map来解析符号,没有为你当前运行的特定内核创建的System.map它们就不能正常工作。

Linux的内核日志守护进程klogd为了执行名称-地址解析,klogd需要使用System.map。System.map应当放在使用它的软件能够找到它的地方。执行:man klogd可知,如果没有将System.map作为一个变量的位置给klogd,那么它将按照下面的顺序,在三个地方查找System.map:

/boot/System.map

/System.map

/usr/src/linux/System.map

System.map也有版本信息,klogd能够智能地查找正确的映象(map)文件。

CentOS系统管理_用户和用户组的详解

一:新建用户和用户组:useradd和groupadd

1,useradd的参数:

-u:指定UID标记号

-d:指定宿主目录,缺省为/home/用户名

-e:指定账号失效时间(下面usermod也有此选项)

-g:指定所属的基本组(组名或GID)

-G:指定所属的附加组(组名或GID)

-M:不为用户建立并初始化宿主目录、

-s:指定用户的登录shell(默认为/bin/bash,一般不用改,在建立非登录用户的时候可以指定

为/sbin/nologin)

注:这些参数都能分开用,不冲突的可以在建立用户的时候连着用。

示例1:添加用户stu01,指定UID为520,宿主目录为/public/stu01,指定基本组为users(注:系统中本身就

存在users这个组GID为100),附加组为tech:

[root@localhost~]#useradd-u520-d/public/stu04-gusers-Gtechstu01

[root@localhost~]#idstu01

uid=520(stu01)gid=100(users)groups=100(users),200(tech)

示例2:添加用户stu02,不为用户建立宿主目录:

[root@localhost~]#useradd-M-s/sbin/nologinstu02//创建一个非登录用户stu02

[root@localhost~]#cat/etc/passwd|grepstu02

stu02:x:1001:1001::/home/stu02:/sbin/nologin//-s参数指定bashshell

2,groupadd的参数:

gourpadd[-gGID]组名

-g参数指定了新建用户组的GID

[root@localhost~]#groupadd-g600stu//添加一个组stu,指定其GID为600

[root@localhost~]#cat/etc/group|grepstu//查看stu组的信息

stu:x:600:

二:删除用户和用户组

1,userdel

-格式:userdel[-r]用户名

添加-r选项,宿主目录/用户邮件也一并删除

示例:

[root@localhost~]#useradduser1;useradduser2//添加用户user1和user2

[root@localhost~]#ll-d/home/user1//var/mail/user1/home/user2//var/mail/user2//查看user1、user2的宿主目录和邮件文件是否存在

drwx------3user1user1409602-1809:53/home/user1/

drwx------3user2user2409602-1809:53/home/user2/

-rw-rw----1user1mail002-1809:53/var/mail/user1

-rw-rw----1user2mail002-1809:53/var/mail/user2

[root@localhost~]#userdeluser1;userdel-ruser2//加不加-r的区别

[root@localhost~]#ll-d/home/user1//var/mail/user1/home/user2//var/mail/user2

ls:/home/user2/:没有那个文件或目录//加-r之后删除宿主目录

ls:/var/mail/user2:没有那个文件或目录//加-r之后删除邮件文件

drwx------310021002409602-1809:53/home/user1/

-rw-rw----11002mail002-1809:53/var/mail/user1

[root@localhost~]#

2,groupdel:删除用户组

-格式:groupdel组名

-删除的目标组不能是用户的基本组。

-在删除用户组的时候,如果该组为某个成员的私有组,则无法删除,必须先删除组里面的成员,才能成功删除该组。

[root@localhost~]#iduser1//查看user1的基本组和附加组

uid=1002(user1)gid=1002(user1)groups=1002(user1),600(stu)

[root@localhost~]#grepstu/etc/group

stu:x:600:user1,user2

上面的操作可以看到,user1的基本组为user1,附加组为stu,那么现在只能删除stu,而不能直接删除组user1,因为user1组是一个基本组,要想删除user1,必须先删除user1用户,再删除user1组,而stu组不是一个基本组,只是user1和user2的附加组,所以可以直接删除。

[root@localhost~]#groupdeluser1//尝试删除user1用户组,因为user1组为user1的基本组,所以需要先删除user1用户,才能删除user1组。

groupdel:不能删除用户的主组。

[root@localhost~]#groupdelstu

[root@localhost~]#grepstu/etc/group//删除stu组之后,不能看到/etc/group文件里面的stu组的信息了。

三:为用户和用户组添加密码

1,为用户添加密码:

Passwd命令:

选项有:

-d:清空用户的密码,使之无需密码即可登录

-l:锁定用户账号

-S:查看用户账号的状态(是否被锁定)

-u:解锁用户账号

--stdin:标准输入(比如管道)取密码

注:删除密码用passwdd而不能用echo|passwd--stdin用户名

示例:

[root@localhosthome]#cat/etc/shadow|grepuser3//查看user3是否有密码

user3:$1$4vGPvNrT$xrFPE9XQhl.w1jchu10wo/:16119:0:99999:7:::

[root@localhosthome]#passwd-duser3//使用-d选项删除密码

Removingpasswordforuseruser3.

passwd:Success

[root@localhosthome]#cat/etc/shadow|grepuser3//再次查看,密码取消

user3::16119:0:99999:7:::

[root@localhosthome]#

示例:

如果修改一个用户的密码,可以直接输入passwd用户名,然后进入交互式的密码输入去人,使用--stdin使用非交互式设置密码,直接将密码导入。

[root@localhost/]#echo123|passwd--stdinuser3//设置user3的密码为123,使用--stdin为面交互式导入密码

Changingpasswordforuseruser3.

passwd:allauthenticationtokensupdatedsuccessfully.

[root@localhost/]#passwd-luser3//锁定user3账户

Lockingpasswordforuseruser3.

passwd:Success

[root@localhost/]#grepuser3/etc/shadow//查看锁定账户密码信息,有两个!

user3:!!$1$4vGPvNrT$xrFPE9XQhl.w1jchu10wo/:16119:0:99999:7:::

[root@localhost/]#passwd-Suser3//用-S查看是否被锁定

user3LK2014-02-180999997-1(Passwordlocked.)

[root@localhost/]#passwd-uuser3//-u参数为解锁

Unlockingpasswordforuseruser3.

passwd:Success.

[root@localhost/]#grepuser3/etc/shadow//解锁之后,该账户密码段没有!

user3:$1$4vGPvNrT$xrFPE9XQhl.w1jchu10wo/:16119:0:99999:7:::

[root@localhost/]#

2,用户组的密码gpasswd

gpasswd组名:进入交互式的密码输入确认。

gpasswdr组名:-r选项为移除密码,gpasswdr组名为清空该组密码

组密码的用途:主要是一些用户想要加入组,那么需要用到的这个组账户的密码,而这个用户加入的时候也是临时加入的,用exit即可退出该组。

四:用户组成员的添加和删除

1,gpasswd在用户组中的应用

-A:定义组管理员列表(可以在/etc/gshadow文件里查看组管理员和组成员)

-a:添加组成员,每次只能加一个

-d:删除组成员,每次只能删一个

-M:定义组成员列表,可设置多个(为覆盖操作,在定义之后,之前组内用户将被删除;注意在写多个成员列表的时候,用逗号隔开)

示例:

[root@localhost~]#grepuser/etc/gshadow

user:!::

[root@localhost~]#gpasswd-auser1user//将账户user1加入到user组中

正在将用户user1加入到user组中

[root@localhost~]#gpasswd-auser2user//将user2加入到user组中

正在将用户user2加入到user组中

[root@localhost~]#grepuser/etc/gshadow|tail-1//查看user用户组的成员

user:!::user1,user2

[root@localhost~]#gpasswd-Mstu01,stu02user//-M参数覆盖添加多个用户

[root@localhost~]#cat/etc/gshadow|tail-1//再次查看,user1和user2被覆盖

user:!::stu01,stu02

[root@localhost~]#gpasswd-dstu01user//将stu01从user组中删除

正在将用户stu01从user组中删除

[root@localhost~]#cat/etc/gshadow|tail-1

user:!::stu02//删除后只剩下stu02用户

[root@localhost~]#gpasswd-Astu02user//将stu02设置为管理员

[root@localhost~]#grepuser/etc/gshadow|tail-1

user:!:stu02:stu02//gshadow文件中,第三个字段为该组的管理员账户,为stu02

[root@localhost~]#

2,usermod主要是对用户的属性进行更改,可以增加用户成员的所属附加组

只是用usermod的-a-G选项(-a表示添加,-G指定组,-a-G为新加一个附加组)

命令:usermod-a-G用户组用户名

[root@localhost~]#usermod-a-Gtechstu02//为stu02增加一个附加组tech

[root@localhost~]#idstu02

uid=501(stu02)gid=1201(nsd)groups=1201(nsd),200(tech),1204(user)

五:用户和组属性的查看和修改

1,usermod:主要针对用户与组之间属性的更改

格式:usermod[选项](选项可以有多个)用户名

-l:更改用户账号的登录名称

-L:锁定用户账户(注:用usermodL锁定一个账户的时候可以用passwdu直接解锁,但是用passwdl锁定的账户,用usermodU解锁的时间,需要解锁两次,因为,passwdl锁定的账户密码前面有两个!,而usermodL锁定的账号密码前面有一个!,可以通过查看/etc/gshadow文件里面的密码段来验证。)

-U:解锁用户账户

-u、-d、-e、-g、-G、-s:与useradd相同

-a:和-G搭配使用为添加该用户的附加组(只是用-G的时候,为修改附加组)

示例:

usermod-e20140630(或2014-06-30)user1:为修改user1账户失效时间为20140630

但是在用chage-E2014-06-30user1的时候,不能用20140630

[root@localhost~]#cat/etc/shadow|grepuser1

user1:!!:16119:0:99999:7:::

[root@localhost~]#usermod-e20140630user1//修改user1的账户失效时间

[root@localhost~]#cat/etc/shadow|grepuser1

user1:!!:16119:0:99999:7::16251:

[root@localhost~]#usermod-luser01user1//修改user1的登录名为user01

usermod:警告:/var/spool/mail/user1不属于user1

[root@localhost~]#

2,chage:主要针对用户的密码进行设定

-l:列出密码有效信息

-E:指定账户过期时间,YYYY-MM-DD

-I:指定当密码失效后多少天锁定账号

-m:指定密码的最小天数

-M:指定密码的最大天数

示例:

[root@localhost~]#chage-luser01//查看user01的密码信息

最近一次密码修改时间:2月18,2014

密码过期时间:从不

密码失效时间:从不

帐户过期时间:从不

两次改变密码之间相距的最小天数:0

两次改变密码之间相距的最大天数:99999

在密码过期之前警告的天数:7

[root@localhost~]#cat/etc/shadow|grepuser01

user01:$1$609lnAxS$qk/Yzf4qd727R9Q2dieQ1.:16119:0:99999:7:::

[root@localhost~]#chage-E2014-07-10user01//修改user01的账户过期时间

[root@localhost~]#chage-I3user01//修改user01用户的密码失效3天后锁定

[root@localhost~]#chage-m10user01//密码修改之后10天内不准修改

[root@localhost~]#chage-M40user01//密码修改后40天之后必须再次修改密码

[root@localhost~]#cat/etc/shadow|grepuser01

user01:$1$609lnAxS$qk/Yzf4qd727R9Q2dieQ1.:16119:10:40:7:3:16261:

[root@localhost~]#chage-luser01

最近一次密码修改时间:2月18,2014

密码过期时间:3月30,2014

密码失效时间:4月02,2014

帐户过期时间:7月10,2014

两次改变密码之间相距的最小天数:10

两次改变密码之间相距的最大天数:40

在密码过期之前警告的天数:7

[root@localhost~]#

3,id

-在命令行输入id,为查看该账户的用户名及用户所属组等信息;

[root@localhost~]#su-frank

[frank@localhost~]$id//id命令直接查看当前用户的ID和所属组

uid=507(frank)gid=507(frank)groups=507(frank)

-id用户名:表示查看该用户的相关信息

[root@localhost~]#idfrank//查看frank用户的用户ID和所属组

uid=507(frank)gid=507(frank)groups=507(frank)

[root@localhost~]#iduser01//查看user01的用户ID和所属组

uid=1005(user01)gid=1005(user1)groups=1005(user1)

[root@localhost~]#

-idgn:查看当前用户的所属组

[root@localhost~]#su-frank

[frank@localhost~]$id-gn//查看当前所属组,为frank组,下面修改一下

frank

[frank@localhost~]$exit

logout

[root@localhost~]#usermod-gtechfrank//将frank的基本组修改为tech

[root@localhost~]#su-frank

[frank@localhost~]$id-gn//用id-gn查看当前组

tech

[frank@localhost~]$

4,newgrp

newgrp用户组:为当前用户临时增加一个用户的附加组(可以用exit退出该附加组)

示例:

[root@localhost~]#su-frank

[frank@localhost~]$id

uid=507(frank)gid=200(tech)groups=200(tech)

[frank@localhost~]$newgrpuser

密码://这个密码为用gpasswd来设置的用户组密码,当有新用户加入是,需要输入,如果没有密码,直接确定即可加入

[frank@localhost~]$id-gn

user//用户组为user,未修改之前为tech

[frank@localhost~]$id

uid=507(frank)gid=1204(user)groups=200(tech),1204(user)

[frank@localhost~]$exit//只是临时增加的附加组,可以用exit退出该组

exit

[frank@localhost~]$id

uid=507(frank)gid=200(tech)groups=200(tech)

[frank@localhost~]$id-gn

tech//退出后的用户组还未之前的tech

[frank@localhost~]$

5,groups:查看用户所属组

groups:查看当前用户的所属组(包括基本组和附加组)

groups用户名:查看该用户所属组(包括基本组和附加组,前面的为基本组)

注:也可以查看/etc/group和/etc/gshadow文件的第四段。

[root@localhost~]#groups//查看当前用户的所属组

rootbindaemonsysadmdiskwheel

[root@localhost~]#groupsuser2//查看user2用户的所属组

user2:user2tech//那么user2用户的基本组为user2,有一个附加组,为tech

[root@localhost~]#

六,附:用户和用户组的密码及新建用户宿主目录里面的隐藏文件

1,用户的密码:/etc/passwd和/etc/shadow

/etc/passwd文件:保存了用户账号的基本信息

[root@localhost~]#head-1/etc/passwd

root:x:0:0:root:/root:/bin/bash

1234567

可以看到passwd里面的内容分为7个字段,分别用:隔开,每个字段的含义:

第一段:用户账号的名称

注:可使用user-luser1user01修改

第二段:密码字符或占位符

注:加密后的密码保存在/etc/shadow文件中

第三段:用户账号的UID号

注:在建立的时候用useradd-u来指定UID号

第四段:所属基本组的GID号

注:在新建用户的时候,如果不指定基本组,会默认新建一个和用户同名的组,可以使用useradd-gusers/100来指定新建用户组的GID

第五段:用户全名

第六段:宿主目录

注:在新建用户的时间,用useradd-d来指定

第七段:登录shell程序的路径

注:在新建用户时候使用useradd-s来指定,也可以在后来使用usermod-s来指定

/etc/shadow文件:保存了密码字串,有效期等信息

[root@localhost/]#head-1/etc/shadow

root:$1$SmlKPNho$qNqybQOGBSnK6iWmviI6b1:15908:0:99999:7:::

123456789

第一段:用户账号的名称

第二段:加密后的密码字符串

注:在使用passwd-l锁定之后加两个!,用usermod-L锁定之后该字符串前面加一个!

第三段:上次修改密码的时间

第四段:密码的最短有效天数,默认为0

注:也就是在上次修改密码后多少天之内不准修改密码,可以使用chage-m来修改

第五段:密码的最长有效天数

注:也就是说,密码在到达有效天数之后,必须进行修改,可以使用chage-M修改

第六段:密码过期后的警告天数,默认为7

注:在密码最长有效天数的前7天进行提醒

第七段:密码过期后多少天禁用此账户,默认值为空

注:如果密码过期之后,也就是密码最长有效时间到了之后,用户还可以继续使用该账号,如果还不修改密码,那么,这个时间将起作用,该用户将被禁用。可以使用chage-I来修改

第八段:账号失效时间,默认值为空

可以使用chage-E或者usermod-e来修改账号的失效时间

例如:

[root@localhosthome]#chage-luser01

最近一次密码修改时间:2月18,2014

密码过期时间:3月30,2014

密码失效时间:4月02,2014

帐户过期时间:7月10,2014

两次改变密码之间相距的最小天数:10

两次改变密码之间相距的最大天数:40

在密码过期之前警告的天数:7

[root@localhost~]#cat/etc/shadow|grepuser01

user01:$1$609lnAxS$qk/Yzf4qd727R9Q2dieQ1.:16119:10:40:7:3:16261:

[root@localhost~]#usermod-e20140810user01//或chage-E20140810user01

[root@localhost~]#cat/etc/shadow|grepuser01

user01:$1$609lnAxS$qk/Yzf4qd727R9Q2dieQ1.:16119:10:40:7:3:16292:

[root@localhost~]#chage-luser01

最近一次密码修改时间:2月18,2014

密码过期时间:3月30,2014

密码失效时间:4月02,2014

帐户过期时间:8月10,2014

两次改变密码之间相距的最小天数:10

两次改变密码之间相距的最大天数:40

在密码过期之前警告的天数:7

第九段:该字段保留

2,新建一个用户时候的默认配置/etc/login.defs、/etc/useradd和/etc/skel

[root@localhost~]#grep-vE^#|^$/etc/login.defs

MAIL_DIR/var/spool/mail//定义邮件文件路径

PASS_MAX_DAYS99999//定义密码最长有效天数,/etc/shadow第五段

PASS_MIN_DAYS0//密码最短有效天数为0,/etc/shadow的第四段

PASS_MIN_LEN5//密码最小长度为5,这里不起作用,有其他文件来规定

PASS_WARN_AGE7//密码过期后的警告天数

UID_MIN500//UID的起始值,/etc/passwd中的第三段

UID_MAX60000//UID的最大值,/etc/passwd中的第三段

GID_MIN500//GID的起始值,/etc/passwd中的第四段

GID_MAX60000//GID的最大值,/etc/passwd中的第四段

CREATE_HOMEyes//是否创建宿主目录

UMASK077//umask值为077

USERGROUPS_ENAByes//

MD5_CRYPT_ENAByes//密码使用MD5加密

ENCRYPT_METHODMD5//

[root@localhost~]#cat/etc/default/useradd

#useradddefaultsfile

GROUP=100//

HOME=/home//定义创建用户的宿主目录在/home下

INACTIVE=-1//是否启用该账户,-1代表是

EXPIRE=//

SHELL=/bin/bash//指定新建用户的shell为/bin/bash

SKEL=/etc/skel//新建用户的宿主目录模板为/etc/skel

CREATE_MAIL_SPOOL=yes//是否创建用户的邮件文件

[root@localhost~]#ll-a/etc/skel///在新建一个用户的时候,宿主目录里面的内容就是将skel拷贝过去,然后放到/home目录下并改名为新建的用户名

总计64

drwxr-xr-x3rootroot40962013-07-10.

drwxr-xr-x97rootroot1228802-1816:24..

-rw-r--r--1rootroot332011-05-13.bash_logout

-rw-r--r--1rootroot1762011-05-13.bash_profile

-rw-r--r--1rootroot1242011-05-13.bashrc

-rw-r--r--1rootroot5152011-04-07.emacs

drwxr-xr-x4rootroot40962012-11-16.mozilla

3,全局配置文件~/.bash_profile、~/.bashrc和~/.bash_logout

注:可以在用户的宿主目录下使用ls-a查看。

~/.bash_profile:每次登录时执行

~/.bashrc:每次进入新的Bash环境时执行

~/.bash_logout:每次推出登录时执行

4,查看用户组信息:/etc/group和/etc/gpasswd

/etc/group查看用户组的信息

[root@localhost~]#cat/etc/group|tail-1

user:x:1204:user01,user2

第一段:组名

第二段:密码占位符

第三段:GID

第四段:组内成员(使用gpasswd-a添加,gpasswd-d删除,gpasswd-M覆盖添加多个)

[root@localhost~]#cat/etc/gshadow|tail-1

user:$1$u/W2qj.L$W8GJY5HxyLzphdtgLKpxW0:stu02:user01,user2

第一段:组名

第二段:密码(使用gpasswd来设置)

第三段:组管理员(使用gpasswd-A指定)

第四段:组内成员

总结:

学的时间也不短了,总是想找个时间将用户组这一章好好的做下笔记,这下好了,终于弄完了,哈哈

用户和用户组的管理这一章很绕口,理解也还算容易,命令不多,但是选项很多,一个题可能有好几种做法,比如说usermod-a-gtechuser01和gpasswd-auser01tech,虽然都是讲user01用户加入到tech组中,但是还有那么的不同,唉,慢慢搞吧!

阅读剩余
THE END