搜档网
当前位置:搜档网 › Linux用户密码策略要求

Linux用户密码策略要求

Linux用户密码策略要求
Linux用户密码策略要求

系统版本:

Red Hat Enterprise Linux AS release 4

Linux用户密码策略

Linux用户密码的有效期,是否可以修改密码可以通过login.defs文件控制.对l ogin.defs文件修只影响后续建立的用户,如果要改变以前建立的用户的有效期等可以使用chage命令.

Linux用户密码的复杂度可以通过pam pam_cracklib module或pam_pass wdqc module控制,两者不能同时使用. 个人感觉pam_passwdqc更好用.

/etc/login.defs密码策略

PASS_MAX_DAYS 99999 #密码的最大有效期, 99999:永久有期

PASS_MIN_DAYS 0 #是否可修改密码,0可修改,非0多少天后可修改PASS_MIN_LEN 5 #密码最小长度,使用pam_cracklib module,该参数不再有效

PASS_WARN_AGE 7 #密码失效前多少天在用户登录时通知用户修改密码

pam_cracklib主要参数说明:

tretry=N:重试多少次后返回密码修改错误

difok=N:新密码必需与旧密码不同的位数

dcredit=N: N >= 0:密码中最多有多少个数字;N < 0密码中最少有多少个数字.

lcredit=N:小宝字母的个数

ucredit=N大宝字母的个数

ocredit=N:特殊字母的个数

minclass=N:密码组成(大/小字母,数字,特殊字符)

pam_passwdqc主要参数说明:

mix:设置口令字最小长度,默认值是mix=disabled。

max:设置口令字的最大长度,默认值是max=40。

passphrase:设置口令短语中单词的最少个数,默认值是passphrase=3,如果为0则禁用口令短语。

atch:设置密码串的常见程序,默认值是match=4。

similar:设置当我们重设口令时,重新设置的新口令能否与旧口令相似,它可以是similar=permit允许相似或similar=deny不允许相似。

random:设置随机生成口令字的默认长度。默认值是random=42。设为0则禁止该功能。

enforce:设置约束范围,enforce=none表示只警告弱口令字,但不禁止它们使用;enforce=users将对系统上的全体非根用户实行这一限制;enforce=everyone将对包括根用户在内的全体用户实行这一限制。

non-unix:它告诉这个模块不要使用传统的getpwnam函数调用获得用户信息,retry:设置用户输入口令字时允许重试的次数,默认值是retry=3

密码复杂度通过/etc/pam.d/system-auth实施

如:

要使用pam_cracklib将注释去掉,把pam_passwdqc.so注释掉即可.

#password requisite /lib/security/$ISA/pam_cracklib.so retry=3 difok=1 password requisite /lib/security/$ISA/pam_passwdqc.so min=disabled,2 4,12,8,7 passphrase=3

password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow

#password requisite /lib/security/$ISA/pam_cracklib.so retry=3 difok=1

新密码至少有一位与原来的不同.

#########################################

服务器的系统安全确实是一件让大多数用户头痛的事情:如何确保系统中使用应用程序或服务的用户确是用户本人?如何给这些用户指定限制访问服务的时间段?以及如何限制各种应用程序或服务对系统资源的使用率等等?所有的这些问题,常规的安全措施并不能妥善地解决。在使用Linux内核的RedHat企业Linux3中,已经集成了一种叫做可插入式认证模块(Pluggable Authentication Modules)的安全验证方式,能够用它来完成上面所示的任务。

可插入认证模块(简称PAM)是基于模块化设计、具有可插入功能的一种独立于应用程序之外的验证方式。使用PAM后,应用程序可以不需要集成验证功能,而由PAM来完成。例如,在Linux系统中,Login

服务为用户提供系统登录服务,它提示用户输入相应的用户名和密码来验证用户的有效性,当使用PAM后,这个验证过程可以由PAM来代替。PAM具有很大的灵活性,系统管理员可以通过它为应用程序自由选择需要使用的验证方式。鉴于PAM有这么多优点,在本文中,将以RedHat企业Linux3为应用平台,来讨论如何使用PAM来增强Linux服务器的安全性能。

一、PAM入门必读

当LINUX服务器中的某个应用程序或服务需要使用PAM来进行验证时,只要此应用程序或服务支持PAM 验证功能,就可以通过修改其相应的PAM配置文件,加放相应的验证方式,当重新启用些服务或应用程序时,PAM模块就会通过其专用API来读取它的配置文件,根据配置文件中的内容来提供相应的验证功能。所有验证功能都是通过一些库文件来提供的。

因此,在使用PAM之前,先掌握PAM配置文件的设置方法,了解一些常用的验证模块就显得非常必要。当某个支持PAM验证的应用程序启动时,就会通过PAM的API读取它的PAM配置文件,然后根据配置文件中验证项指定的内容,再由API调用所需的验证模块来完成配置文件中指定的验证任务。从这里可以看出,要掌握PAM的使用,就必需了解配置文件的配置规则,以及各种验证模块的意义和作用。

在这里还要注意的是,一个Linux系统下的应用程序能够使用PAM功能,最关键的是它已经将支持PAM 功能的代码集成到了原代码当中。如果你能够得到一个应用程序的原代码,你也可以自行将支持PAM的功能代码加入其中。但是,如果你得到的二进制文件不具有这些PAM功能代码,那么,此应用程序就不支持PAM验证功能。查看应用程序是否具有PAM验证功能,可以使用ldd命令查看其动态连接库中有没有libpam和libpam_misc,有就支持。

1、设置PAM的配置文件

在RedHat企业Linux3系统中,每个支持PAM验证的应用程序或服务,都有一个相应的PAM配置文件,存放在/etc/pam.d/目录。要想这些配置文件有效,就必需将这些配置文件名字编写进程序源代码中。通常,这些配置文件的名字与其对应的应用程序的名字是一样的。

要想设置这些配置文件,只需要通过VI或VIM来打开它们,然后添加或删除其中的验证项就可以。

打开/etc/pam.d/目录下的任何一个配置文件,其中每行的验证规则都使用如下所示的语法格式:Type Control-flag Module-path Module-arguments

其中每行代表一个独立的验证方式,每个配置文件可以由多种验证规则相互叠加而成。验证时PAM-API 会按照从上往下的方式一一读取这些验证规则,并根据其中的控制标志做出相应的动作。

在编辑配置文件时一定要小心谨慎,由于规则的验证是有上下顺序之分的,因此你要小心确定某些危险的验证规则处于配置文件中的正确位置。因为一旦出错,可能会导致系统的部分功能或整个系统不能访问,这样你就不得不重新恢复它们的备份。

要正常配置PAM配置文件,就应当了解配置文件方法格式中每列的所包括的内容,下面是这些列的简短说明:

(1)、Type列,主要用来指定需要验证的类型。一共有以下四种验证类型:

1、 auth 验证使用者身份,提示输入帐号和密码;

2、 account 提供对帐户的进一步验证,例如验证帐户的此操作是否已经过期,权限多大,拥有此权限的时间期限是否已经过期等等;

3、 password 提供对密码的细致控制,例如控制密码的使用期限,重复输入的次数,密码锁定后的解禁时限等等。

4、 session 对每个会话进行跟踪和记录,记录的内容包括登录的用户名及登录的时间和次数等等。

(2)、Control-flag列,主要用来控制在验证过程中动作和返回结果的方式。它有两种类型的表达方式:简单的就是使用一个简单的关键字,复杂的可以使用方括号来嵌套控制标志,并可在方括号中使用value=action的方式表达。

简单的关键字有四个:

1、 required

当使用此控制标志时,当验证失败时仍然会继续进行其下的验证过程,它会返回一个错误信息,但是,由于它不会由于验证失败而停止继续验证过程,因此用户不会知道是哪个规则项验证失败。

2、 requisite

此控制标志与required的验证方式大体相似,但是,只要某个规则项验证失败则立即结束整个验证过程,并返回一个错误信息。使用此关键字可以防止一些通过暴力猜解密码的攻击,但是,由于它会返回信息给用户,因此,它也有可能将系统的用户结构信息透露给攻击者。

3、 sufficient

只要有此控制标志的一个规则项验证成功,那么PAM构架将会立即终止其后所有的验证,并且不论其前面的required标志的项没有成功验证,它依然将被忽略,然后验证通过。

4、 optional

表明对验证的成功或失败都是可有可无的,所有的都会被忽略。(通常用于session类型)

复杂的控制标志能够让管理员可以指定在验证过程中发生某种事件时可以执行的动作。这些控制标志用方括号包括起来,并由一系列的value=action 所构成,每个值之间用空格分开。

在新版PAM中,可供你选择的value列表存在于/usr/include/security/_pam_types.h文件中。其中的内容包括:success,open_err,symbol_err,ervice_err,system_err,buf_err,perm_denied,auth_err,cred_insufficient,authinfo_unavail,user_unknown,maxtries,new_authtok_reqd,acct_expired,session_err,cred_unavail,cred_expired,cred_err,no_module_data,conv_err,authtok_err,authtok_recover_err,authtok_lock_busy,authtok_disable_aging,try_again,ignore,abort,authtok_expired,module_unknown,bad_item,conv_again,incomplete,和default。

action 可以是一个无符号的整数,当在某行验证规则的控制标志的value指定期一个无符号的整数时n,就表明由此行往下的n行验证模块将被直接跳过。

Action还可以是下列所示的值:

ignore:设定此值后,指定的事件将会被忽略。

bad :设定此值后,当发生指定的事时的返回值将被认为是验证模块失败。如果此验证模块是整个验证堆叠中的第一个失败的模块, 它的状态值将作为整个堆叠的状态。

die:它的作用与bad 相同,但是,当设定此值的此类事件发生时,会终止整个验证模块的后续验证工作,立即返回到应用程序。

ok :设定此值可以用来覆盖此行验证规则前面已经返回了PAM_SUCCESS的所有值,但是如果前面有验证规则返回了一个错误的值,那么就不会被它覆盖。

done:它的作用与ok 相同,但是,当设定此值的此类事件发生时,会终止整个验证模块的后续验证工作,立即返回到应用程序。

reset :设定此值的作用是用来清除内存中原先的验证模块状态,并重新开始下一组的验证。

第三列是Module-path,用来为要验证的服务提供需要使用的验证模块。在Fedora Core 6系统中,当要引用的模块处于/lib/security/或/lib64/security/目录时,可以只输入模块的完整名称;如果要引用的模块不存在这两个默认的保存目录,就必需在模块的完整名称前加上完整的模块路径名。例如

/usr/lib/security/。

第四列是Module-arguments,用来为引用的模块指定特殊的选项,多个选项之间可以通过空格隔开,还可在选项中使用“[]”来输入嵌套的命令或字串,当选项超过一行时用“\”符号连接下一行。

3、PAM中常用的验证模块说明

要掌握PAM的使用,我们还应当去了解一些常用的PAM验证模块的作用,毕竟PAM的具体验证功能都是由这些可插入的验证模块来完成的。在RedHat企业Linux3系统中,默认的PAM验证文件存在于

/lib/security/或/lib64/security/目录,它们都是以“.so”为后缀的文件。

每个PAM验证模块的使用对象,总是与PAM的验证类型相对应的。有些验证模块只针对某一种验证方法,例如pam_access.so验证模块只与account验证类型配套使用,而有些验证模块却可以与所有的验证类型一起使用,例如pam_unix.so验证模块。你在了解这些验证模块时,应当同时了解它们的所属于验证类别。

下面是一些常用的验证模块的简要说明:

(1)、pam_access验证模块

pam_access验证模块一般与account验证类型一同使用。它主要用于对访问进入管理,提供基于登录名、主机名或域名、公网IP地址或网络号,以及非网络登录时的tty名称的访问控制。pam_access验证模块主要是根据/etc/security/access.conf配置文件中的内容,来进行相应的验证工作的。如果access.conf文件不在缺省的/etc/security/目录,你可以在其后使用accessfile参数指定自定义配置文件的绝对路径。

/etc/security/access.conf配置文件中的每一行都由如下三个字段构成,中间用冒号隔开:

permission:users/groups:origins

permission(权限)字段可以用“+”,即允许访问,“-”禁止访问来表示相应的权限。

users/groups(用户或组)字段可以是一个或几个登录名、组名及ALL(表示任何人)的一个清单。要区分哪个是用户名,哪个是组名,可以将组名加入到一个括号中,例如(groups)。

origins(来源)字段可以是非网络登录时的tty名称、主机名、域名(以“.”开始)、主机地址、网络号(以“.”结束)、带有子网掩码的公网IP地址,以及ALL(表示任何主机)和LOCAL只要不包含“.”的所有字符)。还可以使用EXCEPT操作符来表示除…之外。

(2)、pam_cracklib验证模块

pam_cracklib验证模块通常只与password验证类型一起使用。这个验证模块可以通过插入password堆栈,为特殊的应用提供可插入式密码强度性检测。它的工作方式就是先提示用户输入密码,然后使用一个系统字典和一套规则来检测输入的密码是否不能满足强壮性要求。密码的强度检测分二次进行,第一次只是检测密码是否是提供的对比字典中的一部分,如果检测结果是否定的,那么就会提供一些附加的检测来进一步检测其强度,例如检测新密码中的字符占旧密码字符的比例,密码的长度,所用字符大小写状况,以及是否使用了特殊字符等等。

由于pam_cracklib验证模块提供了细致的密码强度检测,因此,当我们在使用时,必需为它指定相应的额外检测选项。这些选项包括:

debug:此选项表示将模块信息写入系统日志

type=xxx:此选项用来修改缺省的密码提示文本,例如,如果缺省提示输入密码的文本为“New Passwork:”,那么你就可以通过设置type=my password:来改变提示文本。

retry=N:此选项定义用户在重试输入多少次密码后,返回一个错误信息,然后不准继续输入。缺省是1次。

difok=N:此选项用来定义新密码中必须有几个字符要与旧密码不同,如果新密码中有1/2以上的字符与旧密码不同时,该新密码就会被接受。

difignore=N:此选项用来设定在difok之前收到多少个字符时,difok设置会被忽略,缺省为23。

minlen=N:此选项用来设置新密码的最小长度。

dcredit=N:此选项用来设定新密码中可以包含数字的最大数目。

ucredit=N:此选项用来设定新密码中可以包含的大写字母的最大数目。

lcredit=N:此选项用来设定新密码中可以包含的小写字母的最大数目。

ocredit=N:此选项用来设定新密码中可以包含的特殊字符的最大数目。

minclass=N:此选项用来规定新密码中的字符类别的最小数目,字符一般有四种类别:数字、大写字

母、小写字母,以及特殊字符。

use_authtok:在某个与密码相关的验证模块后使用此选项,例如pam_unix.so验证模块,可以强迫此模块不提示输入密码,而使用上面设置的另一种方式,例如pam_cracklib.so。

dictpath=/path/to/dict:指定cracklib目录路径。

(3)、pam_limit验证模块

pam_limits验证模块通常与session验证类别一同使用。它主要用来限制用户在会话过程中对系统资源的使用,即使UID=0的用户也受它的限制。此模块使用一个独立的配置文件来设置对系统资源的限制情况,默认的配置文件是/etc/security/limits.conf,在使用中可以用conf选项来指定配置文件所在的位置。当你使用pam_limits验证模块时,先对此配置文件进行相应的设置总是一个不错的选择。

/etc/security/limits.conf配置文件的设置语法如下:

配置文件语法格式中的“domain”列可以是用户名、采用@group语法的组名,还可以用通配符“*”来表示任何用户,以及使用“%”通配符来只限制maxlogins,并可以采用%group的语法格式。

配置文件语法格式中的“type”列有两个值:

soft:用来设置对系统资源的软限制,它允许用户所使用的系统资源可以在设定的硬限制值的规定范围来上下浮动。

hard:用来设置对系统资源的硬限制,这些硬限制由超级用户设置,并由系统内核来执行。普通用户对系统资源的使用率不能超过设置的硬限制设定值。

配置文件语法格式中的“item”和“value”是成对使用的,“item”表示某类具体的系

统资源,而“value”就是“item”的值。在limits.conf配置文件中可以设置的系统资源有:core:核心文件的大小(KB)

data:最大的数据包大小(KB)

fsize:最大的文件大小(KB)

memlock:最大可用的内存空间(KB)

nofile:最大可以打开的文件数量

rss:最大的可驻留空间(KB)

stack:最大的堆栈空间(KB)

cpu:最大的CPU占用时间(minutes)

nproc:最大允许运行的进程数量

as:地址空间限制(KB)

maxlogins:用户可以登录到系统的最多次数,UID=0的用户除外

priority:优先运行的用户进程(负值越高的进程优先)

sigpending:最大数量的等待信号(Linux2.6及以上内核)

msqqueue:POSIX信息队列的最大可使用的内存(bytes)(Linux2.6及以上内核)

locks:最大可锁定文件的数目(Linux2.4及以上内核的系统)

上面这些“item”项目是一些对系统资源使用情况非常有用的,新版本的PAM中还新加入了其它一些项目,你可以通过它的帮助文档得到它们的说明。需要注意的是,用户的限制优先级要高于组的限制,如果你为一个组设置了某种系统资源限制,但是其中的某个用户设置了另一级别的系统资源限制,那么,系统将会优先按用户级别的限制处理。另外,如果无限制可以使用“-”号表示。

优先级高。

(4)、pam_time验证模块

pam_time验证模块通常与account验证类型一起使用。它并不对用户提供验证服务,而是用来限制用户在指定的日期、时间及终端线路上对系统或特定应用程序进行访问。

要正确使用Pam_time验证模块,必需有一个正确的/etc/security/time.conf相配套。此配置文件中每一行的语法格式为:

services;ttys;users;times

services字段:表示应用PAM功能的服务名称。

ttys字段:应用此规则的终端名,可以“*”号表示任何终端,“!”表示非。

users字段:应用此规则的用户名单或网络组名,可以“*”号表示任何用户,“!”表示非。

times字段:指定时间,通常使用日期/时间范围的格式来表示。可以用星期几英文单词前两个字母来表示具体的日期,例如MoTuSa就是指星期一星期二和星期六。注意:重复的日期将会被取消,比如MoMo 表示任何一天都没有。两个字母的组合有:Mo、Tu、We、Th、Fr、Sa、Su、Wk、Wd、Al,Mo到Su分别指从星期一到星期天,Wk指每一天,Wd指周末,Al也指每一天,例如AlFr指除星期五外的每一天。时间采用24小时制,即HHMM(时分)的形式。日期/时间范围前可有“!”表表除此以外的所有日期/时间,用“-”连接指定的时间范围,如果结束时间小于开始时间,就表明时间持续到第二天的结束时间,例如Al1800-0800就是指每天下午6点整到第二天的早晨8点整。

(5)、pam_listfile验证模块

pam_listfile验证模块通常与auth验证类型一起使用。此模块提供根据某个指定的文件来允许或禁止用户访问某个应用程序或服务的功能,这些被指定的文件必需事先存在,然后通过file参数来指定该文件。pam_listfile验证模块可以根据用户名、tty、rhost、ruser、用户组、使用的shell来对用户进行访问控制。

Pam_listfile验证模块可以使用的选项有:

item=[tty|user|rhost|ruser|group|shell]:设置访问控制的对象类型。

sense=allow|deny:用来指定当在保存“item”对象的文件中找不到item指定的对象时的动作方式,如果在文件中找不到相应的对象,则执行相反的动作。

onerr=succeed|fail:用来指定当某类事件(如无法打开配置文件)发生时的返回值。

file=filename:指定保存有“item”对象的文件位置。

apply=[user|@group]:用指定使用非用户和组类别时,这些规则所适用的对象。当

item=[user|ruser|group]时,这个选项没有任何意义,只有当item=[tty|rhost|shell]时才有意思。(6)、pam_unix验证模块

pam_unix提供基于/etc/passwd 和/etc/shadow文件的类UNIX风格的认证。它适用所有的验证类型,包括:auth、account、password、session。

当pam_unix验证模块与auth验证类型一起使用时,此模块可以使用的选项有debug、audit、

use_first_pass、try_first_pass、nullok和nodelay,主要功能是验证用户密码的有效性,在缺省情况下(即不带任何参数时),该模块的主要功能是禁止密码为空的用户提供服务;

在作为account类型使用时,此时该模块可识别的参数有debug、audit,该模块主要执行建立用户帐号和密码状态的任务,然后执行提示用户修改密码,用户采用新密码后才提供服务之类的任务;

在作为password类型使用时,此时该模块可识别的参数有debug、audit、nullok;、not_set_pass、use_authtok、try_first_pass、use_first_pass、md5、bigcrypt、shadow、nis、

remember,该模块完成让用户更改密码的任务;

在作为session类型使用时,此时该模块没有可识别的参数,该模块仅仅完成记录用户名和服务名到日志文件的工作。

Pam_unix验证模块可以使用的选项有:

debug:将调试信息写入系统日志,当pam_unix验证模块与所有验证类别使用时都有效。

audit:提供比debug更多诊断调试,它只有当pam_unix验证模块与auth、account及password 验证类型使用时有效。

nullok:默认情况下,如果密码为空,那么就不允许用户访某项服务,而使用此项后将则覆盖这个默认动作。它只有当pam_unix验证模块与auth、和password验证类型使用时有效。

nodelay:当用户验证失败后,系统在给出错误信息时会有一个延迟,默认为2秒钟。当使用此选项后,将取消这个延迟。它只有当pam_unix验证模块与auth验证类型使用时有效。

try_first_pass:当pam_unix验证模块与auth验证类型一起使用时,使用该选项将在提示用户输入密码前,尝试使用以往的密码验证方式来对用户进行验证。而当pam_unix验证模块与password验证类型一起使用时,该选项主要用来防止用户新设定的密码与以前的旧密码相同。

use_first_pass:当pam_unix验证模块与auth验证类型一起使用时,使用该选项将在提示用户输入密码前,直接使用以往的密码验证方式来对用户进行验证。而当pam_unix验证模块与password验证类型一起使用时,该选项主要用来防止用户新设定的密码与前面password提供的密码相同。

use_authok:当用户修改时,使用此选项强制用户使用前面堆叠验证模块提供的密码,例如由

pam_cracklib验证模块提供的新密码。当pam_unix验证模块与password验证类型一起使用时有效。md5:采用md5对用户密码进行加密,当pam_unix验证模块与password验证类型一起使用时有效。shadow:使用用shadow密码,当pam_unix验证模块与password验证类型一起使用时有效。

sha256:使用此选项,当下次修改密码时将用SHA256算法加密,如果SHA256的libcrypt不存在,就会重新使用MD5加密密码。Sha512与此选项相同,只是加密强大不同而已。当pam_unix验证模块与password验证类型一起使用时有效。

rounds=n:用来指定使用SHA256和SHA512算法加密密码时重复哈希算法的次数。当pam_unix验证模块与password验证类型一起使用时有效。

remember=n:使用此选项将会将n个使用过的旧密码,以MD5的方式加密后保存到

/etc/security/opasswd文件中。当pam_unix验证模块与password验证类型一起使用时有效。(7)、pam_deny验证模块可以用来禁止所有的访问,当你设置PAM配置文件时,为了安全,在开始的行可以使用它来禁止所有的访问,以减少错误配置引起的安全风险。而pam_permit验证模块却总是允许所有的访问,你要谨慎的使用此验证模块。它们都适用于所有的验证类型。

(8)、pam_rootok验证模块允许/etc/pam.d/su中的用户不需要任何验证就可以登录系统。因此,你应当小心设置/etc/pam.d/su文件,并且在使用时要与pam_wheel验证模块一同使用,以保证root权限只允许在pam_wheel的限制中进行。它只适用于auth验证类型。

(9)、pam_security验证模块只对root用户有影响。当root用户登录时,pam_security验证模块会参考/etc/securetty目录中的控制终端列表,来保证root用户不会从不安全的终端登录。它一般与auth 验证类型一现使用。

(10)、pam_nologin验证模块,如果/etc/nologin文件存在,此模块将禁止所有的登录。它一般与auth和account验证类型一同使用。

(11)、pam_echo验证模块用来给用户显示通过file选项指定的文件中的内容,它适用于所有的验证类型。pam_motd验证模块允许将/etc/motd文件中的内容显示给用户,它只适用于session验证类型。(12)、pam_lastlog显示用户上次登录的日期和时间,它主要通过读取/var/log/lastlog文件来显示。它只适用与session验证类型。

(13)、pam_warn将刚登录的信息记录到系统日志当中,它一般与auth和password验证类型一同使用。

(15)、pam_wheel验证模块,当使用此验证模块后,只有加入到了一个wheel group中的的根用户,并且提交的密码有效,才能访问指定的服务或系统。将它与pam_rootok一同使用能增加对根用户的限制。它只适用于auth和account验证类型。

在/lib/security/或/lib64/security/目录中还有许多没有在上面列出的验证模块,由于它们的使用频

率不高,加上文章篇幅的限制,就不再在此对它们做相应的说明,大家可以参考PAM管理员指南来得到它们的详细说明。

sag-pam_cracklib.html

如何在Linux系统中限制密码长度的同时对密码的复杂程度也进行管理,最近发现有人的密码符合长度规则,但是却很简单很容易被猜出来,查了相关资料后发现了PAM中的pam_cracklib模块就是用来做密码复杂度检测的。

先简单的介绍一下PAM,PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制。它通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系统中添加新的认证手段。PAM模块是一种嵌入式模块,修改后即时生效。

pam的重要文件如下:

/usr/lib/libpam.so.* ## PAM核心库

/etc/pam.conf ## PAM配置文件

/etc/pam.d/* ## PAM各个模块的配置文件

/lib/security/pam_*.so ## 可动态加载的PAM模块

PAM配置文件的每一行的格式:Module-type Control-flag Module-path Arguments

模块类型控制字符模块路

径模块参数

Module-type:

auth:确定有关用户认证的两方面。第一,他确认用户就是他们自己,这通过应用程序提示用户输入密码或者其他正式身份的办法。第二,这类模块会赋予成员资格。

account:处理非认证级的账号管理。典型的用法是基于一天的不同时间来限制、允许访问某服务。限制当前可用的系统资源(最大用户数)或者限制特定用户—root只能从控制台登陆。

session:一系列有关动作,只在用户得到/失去服务时要做的事。这包括记录用户的登录/退出、挂载必要的目录等。

password:设置密码。

Control-flag:

required:表示本模块必须返回成功才能通过认证,但是如果该模块返回失败的话,失败结果也不会立即通知用户,而是要等到同一stack中的所有模块全部执行完毕再将失败结果返回给应用程序。可以认为是一个必要条件。

requisite:与required类似,该模块必须返回成功才能通过认证,但是一旦该模块返回失败,将不再执行同一stack内的任何模块,而是直接将控制权返回给应用程序。是一个必要条件。注:Solaris不支持。

sufficient:表明本模块返回成功已经足以通过身份认证的要求,不必再执行同一stack 内的其它模块,但是如果本模块返回失败的话可以忽略。可以认为是一个充分条件。

optional:表明本模块是可选的,它的成功与否一般不会对身份认证起关键作用,其返回值一般被忽略。

include,从字面就知道什么意思了。包含另外一个配置文件。

Module-path:

Debian的PAM module存放目录默认是在/lib/security。在各个模块的配置文件里,不用写绝对路径,直接写这个默认目录下面的模块名就可以了。当然,也可以写绝对路径。

Arguments:

各个模块的参数都不一样,具体的要开发者的man手册。无效参数不会对结果有影响,但是会被日志记录下来。首先,看看/lib/security有没有这个模块,再:man 模块名

下面开始介绍cracklib模块

pam_cracklib是一个PAM模块,用来检查密码是否违反密码字典,这个验证模块可以通过插入password堆栈,为特殊的应用提供可插入式密码强度性检测。它的工作方式就是先提示用户输入密码,然后使用一个系统字典和一套规则来检测输入的密码是否不能满足强壮性要求。密码的强度检测分二次进行,第一次只是检测密码是否是提供的对比字典中的一部分,如果检测结果是否定的,那么就会提供一些附加的检测来进一步检测其强度,例如检测新密码中的字符占旧密码字符的比例,密码的长度,所用字符大小写状况,以及是否使用了特殊字符等等。(libpam-cracklib)

下面是cracklib模块的一些参数:

debug:将debug信息写入syslog

type=XXX:提示输入密码的文本内容。默认是"New UNIX password: " and "Retype UNIX password: ",可自定

retry=N:用户最多可以几次输入密码后报错。默认是1次。

difok=N:新密码有几个字符不能和旧密码相同,默认是5个。另外如果新密码有1/2的字符于旧不同,也会被接受。

diginore=N:默认当新密码有23个字符时,difok选项会被忽略。

minlen=N:最小密码长度。

dcredit=N:当N>=0时,N代表新密码最多可以有多少个阿拉伯数字。当N<0时,N代表新密码最少要有多少个阿拉伯数字。

ucredit=N:和dcredit差不多,但是这里说的是大写字母。

lcredit=N:和dcredit差不多,但是这里说的是小写字母。

ocredit=N:和dcredit差不多,但是这里说的是特殊字符。

use_authtok:在某个与密码相关的验证模块后使用此选项,例如pam_unix.so验证模块

pam_cracklib 模块式PAM配置接口的基本模块,在Debian系统中配置文件是

/etc/pam.d/common-password 但是在Redhat系统中配置文件是/etc/pam.d/system-auth 他的配置看起来像以下这样:

password required pam_cracklib.so retry=3 minlen=6 difok=3

password required pam_unix.so md5 use_authtok

第一行是pam_cracklib模块和设置的几个模块参数

第二行是pam_unix模块,MD5表示采用MD5加密

pam_cracklib可以记录用户使用的历史密码,并且不允许用户重复使用旧的密码,实际上存储用户旧密码的是通过pam_unix模块实现的。

第一步是建立一个空文件用来存储旧密码/etc/security/opasswd,如果你没有建立文件却使用了历史密码记录功能的话,所有的密码更新都会失败,因为pam_unix模块会报错。

opasswd就像/etc/shadow文件,因为他记录用户密码的哈希

touch /etc/security/opasswd

chown root:root /etc/security/opasswd

chmod 600 /etc/security/opasswd

一旦建立了opasswd文件,就可以在pam_unix模块后面加上参数remember=N来开始记录旧密码,remember参数记录你想记录多少旧密码,他的最大值是400,如果你设置的值超过400会当做400来对待,例如:

password required pam_cracklib.so retry=3 minlen=12 difok=4

password required pam_unix.so md5 remember=12 use_authtok

opasswd文件内容格式如下:

hal:1000::,,...,

以…:?分割,第一列是用户名,第二列是用户ID,第三列是目前记录了该用户多少个旧密码,hashN 是每次密码的MD5值,opasswd在某些系统安装PAM模块时会自动建立。

密码字典检查

pam_cracklib 也可以检查用户设置的密码是不是违反系统内部的密码字典,在Debian 系统中pam_cracklib的密码字典在/var/cache/cracklib目录下,而且每天晚上

update-cracklib脚本会自动的rebuild密码字典。

/etc/login.defs 文件设置密码过期时间等一系列参数,注意login.defs中设置的参数只有是用系统的useradd程序新建的一个用户时才会有login.defs中设置的属性,如果是用其他机器新建的用户,则没有以上属性,不过可以试用chage命令手动添加相关属性。

chage参数如下:

-m 密码可更改的最小天数。为零时代表任何时候都可以更改密码。

-M 密码保持有效的最大天数。

-W 用户密码到期前,提前收到警告信息的天数。

-E 帐号到期的日期。过了这天,此帐号将不可用。

-d 上一次更改的日期

-i 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。

-l 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

在密码管理方面one time password(OTP)也很有效果,动态密码管理,有兴趣的同学可以研究一下。

Linux基本命令

LINUX基础知识 1.Linux目录结构 ●/bin该目录中存放Linux得常用命令,在有得版本中就是一些与根目录下相同得目录、 ●/boot 该目录下存放得都就是系统启动时要用到得程序,当用lilo引导Linux时,会用到这里 得一些信息、 ●/dev该目录包含了Linux系统中使用得所有外部设备,它实际上就是访问这些外部设备得端 口,您可以访问这些外部设备,与访问一个文件或一个目录没有区别。例如在系统中键入“cd /dev/cdrom”,就可以瞧到光驱中得文件;键入“cd/dev/mouse”即可瞧鼠标得相关文件。 ●/etc该目录存放了系统管理时要用到得各种配置文件与子目录,例如网络配置文件、文件系 统、X系统配置文件、设备配置信息、设置用户信息等、 ●/sbin 该目录用来存放系统管理员得系统管理程序。 ●/home 如果建立一个名为“xx”得用户,那么在/home目录下就有一个对应得“/home/xx”路径,用 来存放该用户得主目录、 ●/lib该目录用来存放系统动态连接共享库,几乎所有得应用程序都会用到该目录下得共享库。 ●/lost+found该目录在大多数情况下都就是空得。但当突然停电、或者非正常关机后,有些文 件就临时存放在这里。 ●/mnt 该目录在一般情况下也就是空得,您可以临时将别得文件系统挂在该目录下。 ●/proc 可以在该目录下获取系统信息,这些信息就是在内存中由系统自己产生得 ●/root 如果您就是以超级用户得身份登录得,这个就就是超级用户得主目录 ●/tmp 用来存放不同程序执行时产生得临时文件。 ●/usr用户得很多应用程序与文件都存放在该目录下 ●/usr/X11R6:X-Window目录; ●/usr/src:Linux源代码; ●/usr/include:系统头文件; ●/usr/lib:存放常用动态链接共享库、静态档案库; 2.Linux常用命令 2.1.su用户切换 linux下得两种帐号: 1、root--超级用户帐号(系统管理员),使用这个帐号可以在系统中做任何事情。 2、普通用户——这个帐号供普通用户使用,可以进行有限得操作、 用户正确地输入用户名与口令后,就能合法地进入系统。屏幕显示:[rootloclhost /root]# 这时可以对系统做各种操作、注意超级用户得提示符就是“#”,其她用户得提示符就是“$”、利用whoami可以知道当前登录得用户账号就是什么身份、 用exit 或 logout结束当前得Linux 会话、也可按下<CTRL〉+d 来结束此 Linux 会话功能:切换用户。?语法:su[用户名]?([]表示可选)?说明:su命令就是最基本得命令之一,常用于不同用户间切换。例如,如果登录为 user1,要切换为user2,只要用如下命令:$suu

WEB方式修改域用户账户密码

操作如下: 1,Windows server2003系统上安装IIS后复制C:WINDOWSsystem32inetsrviisadmpwd目录,copy iisadmpwd这个目录及子文件。 2,在server2008R2系统上安装好Web服务器(IIS),IIS6脚本工具。 把从server2003上copy的iisadmpwd目录放在系统的C:Windows\sysWOW64\inetsrv目录中 3,注册Iisadmpwd目录下的IISpwchg.dll文件: 以管理员身份运行命令提示符,输入下面的命令,然后回车

regsvr32 C:Windows\SysWOW64\inetsrv\iisadmpwd\iispwchg.dll 4,配置PasswordChangeFlags属性,来确保密码修改这个功能可用:以管理员身份运行命令提示符,切换到cd目录,输入下面命令,然后回车cscript.exe adsutil.vbs set w3svc/passwordchangeflags 0

注:设置PasswordChangeFlags属性的值,你可以组合使用0:默认值,表示用ssl连接来更改密码 1:允许无安全的端口来更改密码,这个对于ssl功能被禁很有用2:禁止更改密码 4:禁止密码过期提示 5、配置IIS7 创建自签名证书,回到主页

6,绑定证书 首先确认默认网站(default web site)的https可用,且绑定好证书; 打开Internet信息服务(IIS)管理器。点击“default web site ”站点,然后点击右侧操作栏的“绑定” , 7,选,“https”协议,然后点击“编辑”,在ssl证书中选择本机服务器的证书

实验七 linux用户管理和密码管理

实验7 用户管理和密码管理 1 实验目的 1、通过实验掌握用户和组的管理命令。 2、了解与用户和组管理相关的文件。 2 实验环境 VMware中已经安装好CentOS6.2版本。 3 实验原理或背景知识 3.1 用户管理命令 用户管理的命令主要有3个,即useradd、userdel和usermod,分别用于用户的建立、用户的删除和用户属性的修改。它们的详细说明可参见教材P73~P74或查看帮助手册。 3.2 组管理命令 组管理命令主要有groupadd、groupdel和groupmod等,分别用于组的建立、组的删除和组的属性修改。它们的详细说明可参见教材P75或查看帮助手册。 3.3 密码管理 密码管理的命令是passwd和chage,passwd使用可参见教材P76或查看帮助手册,chage 的使用可参见man手册。 3.4 与用户管理相关的文件 与用户管理相关的文件有/etc/passwd、/etc/shadow、/etc/group、/etc/login.defs、/etc/default/useradd等,用于对用户设置和登录项目进行控制。这些文件的说明可参见教材。 4 实验任务 1、使用useradd、userdel、usermod、passwd、groupadd、groupdel等命令建立用户和

组,删除用户和组,修改用户或组的属性,将用户添加进入组或者从组中删除。 2、通过修改管理文件达到管理用户或组的目的。 5 实验步骤 练习1:使用命令进行用户帐号的管理操作 1、创建一个用户,用户名为Tom,描述信息为tommy,用户组为Tom,登录shell为 /bin/csh,登录主目录为/home/tom_office,用户ID为3600,帐号过期日期为2010处10月8号。 2、将用户帐号名由Tom改为Tommy。 3、为用户Tommy设置密码。 4、将用户帐号Tommy的帐号过期日期设为2010年9月30日,密码的最大生存期设 为100天,密码过期前10天起开始提醒用户。 练习2:使用命令进行用户组帐号的管理操作 5、创建一个GID为506,组名为company的用户组帐号。 6、创建用户Tom、employee1、employee2。 7、指定用户帐号Tom为用户组company的组管理员。 转换到用户帐户Tom登录,将用户employee1、employee2加入到组company中。 8、查看登录到系统的用户有哪些,再给这些用户发个消息通知他们你将在10分钟后关机。 6 实验总结 总结管理用户和组的命令有哪些?各有什么作用?

linux修改密码命令

Linux修改密码的方法 如果是以root身份登录,修改root密码.只要输入 passwd 就会出现: New password: Retype new password: 按提示输入密码确认即可. 如果想更改其他用户密码,只要输入passwd username即可. 如:passwd lsyer New password: Retype new password: 可以输入 passwd –help 来查看该命令的使用方法. GRUB:在引导装载程序菜单上,键入 [e] 来进入编辑模式。 你会面对一个引导项目列表。查找其中类似以下输出的句行: kernel /vmlinuz-2.4.18-0.4 ro root=/dev/hda2 按箭头键直到这一行被突出显示,然后按 [e]。 你现在可在文本结尾处(空一格)再添加 single/linux -s 来告诉 GRUB 引导单用户 Linux 模式。按 [Enter] 键来使编辑结果生效。 你会被带会编辑模式屏幕,从这里,按 [b], GRUB 就会引导单用户 Linux 模式。结束载入后,你会面对一个与以下相似的 shell 提示: sh-2.05# 现在,你便可以改变根命令,键入: passwd root 你会被要求重新键入口令来校验。结束后,口令就会被改变,你便可以在提示下键入 reboot 来重新引导;然后,象平常一样登录为根用户。 LILO:当系统启动到出现LILO引导画面时,对于图形引导方式按TAB键进入文本方式,然后在LILO处 输入linux single回车即可进入免密码的控制台,进入以后使用passwd命令修改root的密码 即可 1. 在出现grub画面时,用上下键选中你平时启动linux的那一项,然后按e 键 2. 再次用上下键选中你平时启动linux的那一项(类似于 kernel/boot/vmlinuz-2.4.18-14ro root=LABEL=/),然后按e键. 3. 修改你现在见到的命令行,加入single,结果如下: kernel /boot/vmlinuz-2.4.18-14 single ro root=LABEL=/ single 4. 回车返回,然后按b键启动,即可直接进入linux命令行 5.用password命令修改密码

linux usermod命令参数及用法详解(linux修改用户账号信息命令)

linux usermod命令参数及用法详解(linux修改用户账号信息 命令) linux usermod命令参数及用法详解(linux修改用户账号信息命令) 点评:linux usermod命令参数及用法详解,linux修改用户账号信息命令,usermod可用来修改用户帐号的各项设定 -命令:usermod 功能说明:修改用户帐号。语法:usermod [-LU][-c ][-d ][-e ][-f ][-g ][-G ][-l ][-s ][-u ][用户帐号] 补充说明:usermod可用来修改用户帐号的各项设定。参数:-c 修改用户帐号的备注文字。 -d登入目录> 修改用户登入时的目录。 -e 修改帐号的有效期限。 -f 修改在密码过期后多少天即关闭该帐号。 -g 修改用户所属的群组。 -G 修改用户所属的附加群组。 -l 修改用户帐号名称。 -L 锁定用户密码,使密码无效。

-s 修改用户登入后所使用的shell。 -u 修改用户ID。 -U 解除密码锁定。usermod 不允许你改变正在线上的使用者帐号名称。当usermod 用来改变user ID, 必须确认这名user 没在电脑上执行任何程序。你需手动更改使用者的crontab 档。也需手动更改使用者的at 工作档。采用NIS server 须在server 上更动相关的NIS 设定。应用举例:1、将newuser2 添加到组staff 中# usermod -G staff newuser2 2、修改newuser 的用户名为newuser1 # usermod -l newuser1 newuser 3、锁定账号newuser1 # usermod -L newuser1 4、解除对newuser1 的锁定 # usermod -U newuser1

Linux上使用光盘修改root密码

使用光盘变更root密码方法 一、思路: 1、使用光盘rescue模式,直接修改系统下passwd 中root 的登录密码设置 2、针对上次说到无法进入单例模式,解决办法: 在rescue模式下,修改inittab 文件中默认启动等级为1(备份修改之前的启动等级) 3、Reboot 从hard 直接使用正常模式启动系统进入单例模式,直接进入系统root 权限下,修改root密码 4、使用root 权限或进入rescue模式,修改passwd中root登录需要使用密码。 5、将inittab 文件中启动模式改为原来的。Reboot 使用root登录,完成。 二、实施步骤 1、插入SUSE_10_sp3系统光盘,设置bios为cdrom启动; 2、进入以下界面后使用Rescue System 进入系统

3、使用root 进入rescue模式 4、查找原来系统对应的分区(带“*”的分区),并进行挂载

5、修改root登录免密钥认证 挂载后,cd /mnt/etc/; vi passwd 修改root 行,如下图删除“x”;保存退出后,确认修改成功。 6、修改启动模式: vi inittab 记住原有启动模式id后,修改initdefault 为1; 保存退出后,再次确认是否修改成功。

7、reboot,从硬盘使用默认选项启动系统 直接按Enter 使用root进入系统,如下

进入系统后,使用passwd 或passwd root 修改root密码。 修改完成后, cd /etc vi passwd 修改root 启动时使用密钥认证。 vi inittab 改为原来启动等级。 8、Reboot 系统,如下使用修改后的密码进入系统。

Linux下使用Intel WiFi Link 5100AGN 破解WEP密码

Linux下使用Intel WiFi Link 5100AGN 破解WEP密码 ID:draapho 别名:mousie 2008年12月4日 撰写此文 前言 之前写过一篇《XP下使用Intel WiFi Link 5100AGN 破解WEP密码》的文章,但毕竟限制条件太多,破解速度太慢。经过google,还是google,非常幸运的走过了Ubuntu Linux的安装,终端中敲指令,对网卡驱动打补丁,升级内核,最终成功了有资格写下这篇菜鸟级别的文章了。Linux高手请无视,因为我还是一个对cd指令都要google的超级菜菜鸟…… 说明文中的红色字体都是在终端(shell)中要输入的内容。 本文参考的非常重要的三个网站如下: 1.https://www.sodocs.net/doc/502577637.html,/?p=linux/kernel/git/linville/wireless‐testing.git;a=commit;h=84e8e77f61 8f589316e83dfa1bfafe5a47bf0bd2 该网站为5100AGN提供了支持注入的驱动升级,提供了C源代码 和 diff文件。 2.http://tinyshell.be/aircrackng/forum/index.php?topic=4217.0 该网站验证了5100AGN能工作于注入模式,并提供升级网卡驱动的思路。 3.https://www.sodocs.net/doc/502577637.html, 中国无线论坛网,着重参考了“中卫”写的《BT3破解无线WEP/WPA教程》。 测试环境说明 1.测试目的: 破解WEP密码 2.测试系统: Ubuntu Linux 8.10 3.测试网卡: Intel WiFi Link 5100AGN 4.破解软件: aircrack 5.网卡驱动: Stefanik Gábor 2008年9月23日写的驱动 XP下的准备工作 Linux下当然都能完成这些准备工作,不过是菜鸟么,怎么熟悉怎么来。 1.安装Ubuntu 8.10,新手建议在Windows下使用wubi直接安装,非常非常的方便!

wincc登录与注销修改当前用户的密码

调用用户管理的C脚本:(没试) #include "apdefap.h" void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) { SSMProgramStart( lpszPictureName, lpszObjectName, "Passcs.exe"); } 在按钮上用ProgramExecute("Passcs.exe")脚本可以执行用户管理程序 登陆和注销,做个登陆的画面,放2个按钮,写脚本: 由函数PWRTLogin()来执行登录。 #pragma code("USEADMIN.DLL") #include "PWRT_API.H" #pragma code() PWRTLogin('1'); 由函数PWRTLogout()来实现注销。 #pragma code("USEADMIN.DLL") #include "PWRT_API.H" #pragma code() PWRTLogout(); 分别用登录按钮和注销按钮实现,在按钮的事件中输入相应的代码, 登录动作(如事件Mouse-click) #pragma code (“useadmin.dll”) #include “PWRT_api.h” #pragma code() PWRTLogin(’c’); - 退出动作(如事件Mouse-click) #pragma code (“useadmin.dll”) #include “PWRT_api.h” #pragma code() PWRTLogout(); 如何修改当前用户的密码,请参考(没试) “CC_SewageDi_09_11_27_17_20_29”为自己创建的项目数据库名称; “@CurrentUserName”用当前户名,为WinnCC自身的内部变量,文本变量16位字符集,连接一个输入输出域; “@OldPassword”用当前用户旧密码,为需要创建的内部变量,文本变量16位字符集,连

linux下添加用户和删除用户以及该密码

linux下添加用户和删除用户以及该密码.txt你妈生你的时候是不是把人给扔了把胎盘养大?别把虾米不当海鲜。别把虾米不当海鲜。linux下添加用户和删除用户以及该密码.txt37真诚是美酒,年份越久越醇香浓烈;真诚是焰火,在高处绽放才愈显美丽;真诚是鲜花,送之于人,手有余香。linux下添加用户和删除用户以及该密码 # useradd –d /usr/sam -m sam 此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录)。 # useradd -s /bin/sh -g group –G adm,root gem 此命令新建了一个用户gem,该用户的登录Shell是/bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。 增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等。这几个文件的内容在后面会做详细介绍。 Linux提供了集成的系统管理工具userconf,它可以用来对用户账号进行统一管理。 如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd 等系统文件中的该用户记录删除,必要时还删除用户的主目录。删除一个已有的用户账号使用userdel命令,其格式如下: userdel 选项用户名 常用的选项是-r,它的作用是把用户的主目录一起删除。 例如: # userdel sam 此命令删除用户sam在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。 修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。 修改已有用户的信息使用usermod命令,其格式如下: usermod 选项用户名 常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd 命令中的选项一样,可以为用户指定新的资源值。另外,有些系统可以使用如下选项:

Linux基本命令的使用

实验报告 (2014 学年第二学期) 课程名称GNU/Linux编程 实验名称Linux基本命令的使用 实验时间2014 年11 月27 日指导单位 指导教师 学生姓名班级学号 学院(系) 计算机学院专业软件工程

实验报告 实验名称Linux基本命令的使用指导教师韩京宇 实验类型设计实验学时2实验时间2014.11.27 一、实验目的和要求 目的:通过实验熟悉Linux操作系统环境,掌握基本的Linux命令的使用。要求:(1) 掌握Linux文件的权限管理 (2) 掌握基本的文件和目录操作. (3) Linux用户管理 (4) 文件的压缩和归档 (5) 应用软件包的安装和管理 二、实验环境(实验设备) 微型计算机 Linux 操作系统(Ubuntu)

三、实验原理及内容 一、用户和文件权限管理 1. 创建用户组 student groupadd student 2. 在student 组中创建用户 s01 和s02 useradd –m -g student s01//大家注意-m选项的作用 useradd –m -g student s02 3 为用户s01 和s02 设置密码 passwd s01 passwd s02 4 观察当前目录 pwd 5 退到根目录 cd / 6 观察文件的详细属性 ls -l 7 查看文本文件 cat /etc/fstab 8 使用 s01用户重新登录 login s01 9 观察当前目录 pwd 10 返回上一级 cd .. 11 观察目录权限 ls -l 12 用 s02 登录 login s02 确认s02能否进入 /home/s01 13 由用户s01修改目录/home/s01的用户组权限

用户注册和密码修改测试点

用户注册和密码修改测试点 一.用户注册 只从用户名和密码角度写了几个要考虑的测试点,如果需求中明确规定了安全问题,Email,出生日期,地址,性别等等一系列的格式和字符要求,那就都要写用例测了~ 以等价类划分和边界值法来分析 1.填写符合要求的数据注册: 用户名字和密码都为最大长度(边界值分析,取上点) 2.填写符合要求的数据注册 :用户名字和密码都为最小长度(边界值分析,取上点) 3.填写符合要求的数据注册:用户名字和密码都是非最大和最小长度的数据(边界值分析,取内点) 4.必填项分别为空注册 5.用户名长度大于要求注册1位(边界值分析,取离点) 6.用户名长度小于要求注册1位(边界值分析,取离点) 7.密码长度大于要求注册1位(边界值分析,取离点) 8.密码长度小于要求注册1位(边界值分析,取离点) 9.用户名是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了,如含有空格,#等,看需求是否允许吧~) 10.密码是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了) 11.两次输入密码不一致(如果注册时候要输入两次密码,那么这个是必须的) 12.重新注册存在的用户 13.改变存在的用户的用户名和密码的大小写,来注册。(有的需求是区分大小写,有的不区分) 14.看是否支持tap和enter键等;密码是否可以复制粘贴;密码是否以* 之类的加秘符号显示 二.修改密码 当然具体情况具体分析哈~不能一概而论~ 实际测试中可能只用到其中几条而已,比如银行卡密码的修改,就不用考虑英文和非法字符,更不用考虑那些TAP之类的快捷键. 而有的需要根据需求具体分析了,比如连续出错多少次出现的提示,和一些软件修改密码要求一定时间内有一定的修改次数限制等等。 1.不输入旧密码,直接改密码

Linux更改用户密码

Linux更改用户密码 环境 RedHat Linux 9 + VWWare 7.1.2 + Putty 0.62 问题 Linux更改用户密码 解决 方法一 1.如果你是以普通用户登录的话,修改自己的密码,使用passwd命令。会让你先输入自己的旧密码,再输入两遍新密码。 [plain]view plaincopyprint? 1.[wgb@localhost root]$ passwd 2.Changing password for user wgb. 3.Changing password for wgb 4.(current) UNIX password: 5.New password: 6.Retype new password: 7.passwd: all authentication tokens updated successfully. 8.[wgb@localhost root]$ 9. 10.[wgb@localhost root]$ passwd wgb 11.passwd: Only root can specify a user name. 2.如果你是root用户登录的话,使用passwd root或者passwd,就可以修改root 的密码。直接输入两遍新密码就可以了,不用输入旧密码。 [plain]view plaincopyprint? 1.[root@localhost root]# passwd 2.Changing password for user root. 3.New password: 4.BAD PASSWORD: it is too short 5.Retype new password: 6.passwd: all authentication tokens updated successfully.

Linux1 修改MySQL管理员的口令

Linux1 修改MySQL管理员的口令 当第1次使用MySQL时,访问数据库服务器的用户名只能是MySQL管理员,即root用户(但该用户不同于Linux系统的root用户)。默认情况下root用户的初始密码为空,因此从本地客户端连接MySQL时,只需在终端中输入“mysql”命令,并按【回车】键即可,如图4-7所示。 图4-7 从本地客户端连接MySQL 显然这种状态是不安全的,应该尽快修改MySQL管理员密码。首先退出MySQL 命令状态(在命令提示符“mysql>”后输入命令quit),然后使用“mysqladmin –u root password 密码字符串”命令格式。 例如,若要将root用户密码修改为“root”,可在终端中输入“mysqladmin –u root password root”命令并按【回车】键,如图4-8所示。 图4-8 修改MySQL管理员的口令 修改root用户密码后,再次输入“mysql”命令并按【回车】键登录MySQL,如图4-9所示。 图4-9 再次登录MySQL 由图4-9可以看出,修改管理员root的密码时输入的密码字符串是明文。修改后密码立即生效,再想使用mysql命令直接连接是不可能的。此时要连接MySQL 服务器,必须输入“mysql [-h 主机名或ip地址] [–u 用户名] [-p]”mysql命令格式执行。 例如,在终端中输入“mysql –u root -p”按【回车】键,以管理员root身份连接本机上的MySQL,然后在系统提示“Enter password”的后面输入密码(root)并按【回车】键即可,如图4-10所示。 图4-10 以root身份连接MySQL 如果希望更改root用户密码,则必须使用“mysqladmin –u root –p password 新

linux配置命令

linux常用命令 内部命令装完linux就有的命令就是内部命令 系统命令放在/bin or /sbin /sbin放置的是系统管理员可以使用的命令。 #ls - h 命令动词命令选项(option) login 让用户登录系统,通过它可以随时变换身份。exit 退出当前系统&shell reboot 重启命令 init6 重启命令 halt 关机含参数建议不使用对机器损耗大 halt -f -p 直接切断电源 poweroff 关机同shutdown init 0 unix 关机的命令 date 查看日期,时间 date 月日小时分年 pwd 查看当前目录 ~ 代表登录目录,谁登录就代表谁的登录目录。 根下root目录是系统管理员的登录目录。 $ 代表的是普通用户 # 代表的就系统管理员 clear 清屏(ctrl+l) ls 列出文件和目录的属性信息 绿色代表可执行文件 红色代表压缩文件 浅蓝代表链接文件 灰色代表其他文件 黄色代表设备文件 白色红背景代表链接失效 ls -F 加类别标识 ls -a 显示隐藏档案 ls -l 显示详细信息,此命令等同于ll ls -d 显示目录,又不是其内容。 ls -ld 查看目录本身的详细信息,又不显示目录中的内容。ls -h 以k、m、b的形式显示 ls -s 显示大小不一K M B形式显示 / 是目录表示符 linux没有扩展名概念 没有盘符的概念 linux中的文件类型 d 目录 s 套接字文件 l 符号链接(指向另一个文件) b 块设备文件。(代表磁盘和光盘)

c 字符设备文件 p 命令管道文件 - 普通文件 cd 更改当前 cd .. 返回上一级目录 cd / 直接返回根 rmdir 删除目录只能删除空目录 rm -r 直接删除 rm -rf 强制删除 mkdir 创建目录 mkdir -p 当建立子目录的时候,父目录不存在直接建立 whereis 在特定的目录中查找符合条件的文件 which 直找档案资料库,速度快。 在linux当中一切皆文件 cat 连续显示,查看文件的内容但不可修改 cat /root/install.log cat /root/install.log |more 分屏 cat -n /root/install.log 显示内容同时并加行号 cat -n/root/install.log |more 显示行号加分屏 cat install.log |grep “scim” grep“scim” install.log grep 在指定 grep 过滤出有用的行 grep “open”install.log 把在这个文件中带有open的行全部过滤出来 grep “^3”所有以三开头的文件被过滤出来 grep “3$”所有以三结尾的文件被过滤出来 more install.log打开文件并进行分屏显示 less 分页可查看文件内容,于more不同的是,他可以回滚按Q终止 ln -s /root/install.log /loo 给install在根下创建一个软连接。为谁创建必须是绝对路径 创建完了放在哪可以写绝对路径,也可以写相对路径。 wc (跟上所要查看的文件)显示档案的相关信息行数字数字节数档案名 head 查看一个文件的前10行默认前10 head -?查看?代表前几行 tail 查看一个文件的后10行默认后10 . tail -??代表后几行 linux组建文件结构 从根写起的路径叫做绝对路径 相对于当前位置所写起的路径叫做相对路径 touch(触摸)1 正常功能是更新文件的访问日期反向功能是当它没有触摸到这个文件的时候,就会创建一个文件(一般使用反方向来创建空文件) cp 原位置目标位置cp 1 test cp -R test test2 mv 原位置目标位置mv 1 test 在复制的时候不用加参数,在复制文件夹的时候要加上-Respectfully yours,

root用户密码丢失后的修复

AIX恢复密码过程 一.登陆root用户提示:“Your account has expired,please see system administrator. ”主要原因是:Your password has expired. 恢复方法1如下: 1.先将对应机器已安装操作系统版本的光盘的第一张放入光驱中 2.检查机器与显示器和键盘的连接是否完好 3.重新启动机器 4.在显示器出现PowerPC图标时,按5从默认的光盘启动 5.可以从显示器上看到启动设备是/pci@fed00000/scsi@b/sd@4,0:\ppc\chrp\bootfile.exe 或/pci@fff7f08000/scsi@c/sd@8.0之类的字样 观察光驱的灯是否闪烁,闪烁表示在读取光盘上的内容 6.选择本窗口作为控制台 7.选择英语作为显示语言 8.进入Start Maintenance Mode for System Recovery菜单 9.进入Access a Root Volume Group菜单 10.Access a Root V olume Group 11.Access this Volume Group and start a shell 如果进入出现命令提示符,进行下一步 如果不能进入,出现很多/etc/getrootfs [586] 4518 killed的字符, 可以换一张光盘尝试或使用sysbase备份磁带来启动,直到出现命令提示符 12.# passwd Changing password for "root" root's New password: Re-enter root's new password: # vi /etc/security/passwd unknown: Unknown terminal type # export TERM=vt100 # vi /etc/security/passwd 将root: password = 26sxY3194nOIQ lastupdate = 1135953716 flags = 中的password字段清空,root密码也就设成空了 保存并退出 # sync # sync 同步2次 #shutdown -Fr 重新启动机器root密码为空 恢复方法2如下: 1.先将对应机器已安装操作系统版本的光盘的第一张放入光驱中 2.检查机器与显示器和键盘的连接是否完好

Linux命令手册大全

Linux手册——基本命令 用户在登录前,首先要向系统管理员申请一个用户注册名,不论用户从哪台计算机登录到ITPNET上都将访问相同的文件系统。 1.1 登录 当屏幕上出现Login提示符时,用户可以输入自己的用户注册名,并按回车键。 若有口令,系统将提示用户输入密码,并按回车键,口令输入正确后,用户登录成 功。这时,屏幕上会显示出一些信息和命令提示符。如: Login: guest [Enter] passwd: ****** [Enter] sun% 注: 用户名要用小写字母输入,UNIX系统区分大小写字母。 1.2 退出 当用户准备退出自己的计算机帐号时,可在系统示符下输入logout或exit或按 [Ctrl-D]。当屏幕出现Login时,用户可以安全地离开计算机了。如: sun% logout [Enter] Login: 1.3 修改口令 为了防止他人使用自己的帐号,在你首次登录后,请用passwd命令修改只有本 人知道的保密口令,口令通常由此可6到8个字母数字组成。如: sun% passwd [Enter] Old Passwd: ****** New Passwd: ****** Retype New Passwd: ****** 注:当你退出系统再次登录时,就要使用新的口令。 2.1 显示目录 命令:pwd(print working directory)格式:pwd 功能:显示出用户当前工作目录的全路径名。例如:% pwd 2.2 建立目录 命令:mkdir(make directory)格式:mkdir directory_name 功能:建立新目录例如:% mkdir directory 2.3 改变目录 命令:cd(change directory)格式:cd directory_name 功能:改变当前工作目录注释:目录名选项有: (1) 目录名,转到当前目录下的子目录。 (2) .. 表示转到当前目录的父目录。 (3) / 表示转到根目录。 (4) 没有选项时,转到用户的主目录。 例如:% cd directory 2.4 删除目录 命令:rmdir (remove directory)

centos怎么修改用户密码

centos怎么修改用户密码 Centos是目前比较流行的开源linux系统,各位小伙伴可能对平时windows系统比较熟悉。下面是小编收集整理的centos 怎么修改用户密码,希望对大家有帮助~~ centos 修改用户密码的方法 工具/原料 centos 字符界面修改密码 1 直接修改密码 通过whoami可以查看当前登陆的用户。直接输入passwd 回车,输入2次密码就是修改当前的用户名(提示all authentication tokens updated sucessfully 表示密码修改OK)

2修改某个用户的密码(注意要管理员权限或者本账号) 作为管理员可以直接修改某个账号的密码,而不需要知道原密码。格式 Passwd 用户名如图,回车之后输入2次密码确认 3其他注意事项 密码如果太简单会提示警告,如果想继续使用。再次设置即可 4修改密码的用户权限有限制 这个和windows系统一样,管理员可以修改普通用户的密码。普通用户只能修改自己的密码

END 图形界面修改 以上介绍的是文本模式密码修改,对于centos图形界面。可以参考下图(英文界面,位置和中文一样喔) 进入用户和组管理,users and groups 找到users(用户) 直接输入新的密码即可 3进入这个用户组管理,需要管理员权限才行喔。普通用户,进入需要输入管理员验证密码 centos 怎么修改用户密码相关文章: 1.怎么管理CentOS账户

2.CentOS系统查看用户登录记录的方法 3.Linux系统中的切换用户命令的教程 4.CentOS6.5怎么样设置 5.设置修改CentOS系统细节教程 6.CentOS怎么修改yum更新源

实验二 操作系统口令破解

上海电力学院 计算机系统安全 实验报告 实验题目:实验二操作系统口令破解 院系:计算机科学与技术学院信息安全系专业年级:信息安全专业三年级 学生姓名:方立春学号20103259

实验二操作系统口令破解 一、实验目的和要求 了解主流操作系统Windows/Linux的口令加密机制、保存机制;掌握利用口令破解工具进行主流操作系统Windows/Linux的口令破解方法。 二、实验内容 1)Windows口令破解 口令破解定义、穷举口令破解、字典口令破解、口令强度比较2)Linux口令破解 Linux用户口令加密机制与保护措施、阴影口令、Shadow文件、Crypt函数 3)口令管理中的撒盐措施的实现。 三、主要实验设备: PC机,Windows/Linux操作系统 四、实验步骤 1. 自己使用口令破解工具找到机器中存在的脆弱口令,并加以更改。 1)John the Ripper(https://www.sodocs.net/doc/502577637.html,/john)(支持Windows和Linux平台)https://www.sodocs.net/doc/502577637.html,/thread-2241102-1-1.html https://www.sodocs.net/doc/502577637.html,/393390/354048 2)Pwdump 6 为了在Windows平台上运行John the Ripper来破解Windows口令,必须首先运行一个工具,将Windows口令从SAM文件中提取出来,做这一步工作的原因在于Windows运行过程中SAM被锁定,不能直接复制或编辑这个文件。Pwdump 6(https://www.sodocs.net/doc/502577637.html,/fizzgig/ pwdump/),它能够提取出Windows系统中的口令,并存储在指定的文件中。 2.检查日志文件/var/log/messages, 是否有类似FAILED LOGIN(登录错误)的多条记录语句,如果存在则表明系统可能被口令破解的方法攻击过。 3.使用阴影口令,对于未启动阴影口令的系统启动阴影口令,方法如下: 首先使用pwck命令检查passswd文件完整性,在pwck 程序验证期间,将检查passwd文件中的每条记录,确保其遵循正确的格式,并且每个字段的值都是正确的;接下来通过pwconv命令转到阴影指令,pwconv程序会根据现有的passwd文件创建shadow文件,如果系统中已经存在阴影文件,则将被合并。 4.利用工具实现口令破解 (1)创建新用户 新建idiotuser和fooluser两个用户,口令密码分别为idiotuser123、watson,具体操作如下:

Red Hat Linux 命令大全

Red Hat Linux 命令大全 1.startx 从文本界面进入图形界面 2.ls -lhar 显示目录与文件 ls -lrt 按时间进行排序 3.whoami 显示当前用户名 who -r 显示系统当前运行级别,级别为5第一次启动时间为2011-09-06 00:26 run-level 5 2011-09-06 00:26last=S who –b 显示系统第一次启动时间 system boot 2011-09-06 00:25 who = who am i 显示最初登陆系统时的用户名,将显示登陆的用户名,使用的终端,登陆时间。who –H 显示列标题 boco pts/0 Sep 8 11:32 (10.3.1.230) 用户名终端号登陆日期和时间 4.id boco 查看用户信息(UID GID 次GID) 5.passwd boco 修改用户密码 6.logout 退出系统suse 不支持此命令 7.exit 退出系统redhat suse 都支持此命令 8.poweroff 关机 shutdown -h now 关机 halt 关机ubuntu版本命令 9.reboot 重启系统 shutdown –r now 重启系统 shutdown –r 5 5分钟之后重启系统 init 6 重启系统 10.cd etc 进入目录 11.cd .. 返回上一级目录 12.cd / 返回根目录 13.rm profile 删除文件–f 强制删除–r 删除目录 14.pwd 显示当前目录路径 15.mkdir ‘aa bb’创建目录aa bb -p 一次性创建多个目录 16.rmdir aa\ bb/ 删除空目录\_ 转义字符 17.vi gedit nano 文本编辑器vim 高级版 18.date 显示日期时间 19.cd 返回用户家目录

Linux下修改root密码以及找回密码的方法

Linux下修改root密码以及找回密码的方法 1)以root身份登陆,执行: # passwd 用户名(修改密码) # useradd 用户名(添加用户) 具体示例如下:[root@bogon ~]# passwd root Changing password for user root. New UNIX password: BAD PASSWORD: it is based on a dictionary word Retype new UNIX password: passwd: all authentication tokens updated successfully. 2)linux下root密码找回方法 linux的root享有至高无上的权力,一旦root密码忘记或者被盗,是一件非常头痛的事情,那么怎么样才能找回root的密码呢,总结如下:

(一)Linux 系统密码破解 1)在出现系统选择界面时,在Red Hat Linux的选项上按“e” 键, 2)然后会出现三个选项,在“kernel/boot/vmlinuz-2.4.18-14 ro root=LABEL=/”上按“e”键进行编辑,见图2 3)向前移动光标,在“ro”或者“root”前加上“single”,然后 回车返回。见图3 4)按“b”键启动,进入字符界面,当出现“sh-2.05b#”时,就 意味着已经进入单用户模式。见图4 5)现在,输入“passwd root”,就可以重新设置root密码了。 6)设置完成后,reboot重启,用刚才设置的密码就可以进入linux 系统了。 图2 kernel 上按“e”键进行编辑

相关主题