Chinaunix首页 | 论坛 | 博客
  • 博客访问: 108085
  • 博文数量: 31
  • 博客积分: 691
  • 博客等级: 中士
  • 技术积分: 245
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-16 16:45
文章分类

全部博文(31)

文章存档

2012年(4)

2011年(27)

分类:

2011-05-03 18:48:23

原文地址:linux用户密码的修改 作者:hytele091

  转载自: html

  1、passwd 简单说明;

  我们已经学会如何添加用户了,所以我们还要学习设置或修改用户的密码;passwd命令的用法也很多,我们只选如下的几个参数加以说明;想了解更多,请参考man passwd或passwd --help ;

  passwd [OPTION...]

  passwd 作为普通用户和超级权限用户都可以运行,但作为普通用户只能更改自己的用户密码,但前提是没有被root用户锁定;如果root用户运行passwd ,可以设置或修改任何用户的密码;

  passwd 命令后面不接任何参数或用户名,则表示修改当前用户的密码;请看下面的例子;

  [root@localhost ~]# passwd 注:没有加任何用户,我是用root用户来执行的passwd 表示修改root用户的密码;下面也有提示;

  Changing password for user root.

  New UNIX password: 注:请输入新密码;

  Retype new UNIX password: 注:验证新密码;

  passwd: all authentication tokens updated successfully. 注:修改root密码成功;

  如果是普通用户执行passwd 只能修改自己的密码;

  如果新建用户后,要为新用户创建密码,则用 passwd 用户名 ,注意要以root用户的权限来创建;

  [root@localhost ~]# passwd beinan 注:更改或创建beinan用户的密码;

  Changing password for user beinan.

  New UNIX password: 注:请输入新密码;

  Retype new UNIX password: 注:再输入一次;

  passwd: all authentication tokens updated successfully. 注:成功;

  普通用户如果想更改自己的密码,直接运行passwd即可;比如当前操作的用户是beinan;

  [beinan@localhost ~]$ passwd

  Changing password for user beinan. 注:更改beinan用户的密码;

  (current) UNIX password: 注:请输入当前密码;

  New UNIX password: 注:请输入新密码;

  Retype new UNIX password: 注:确认新密码;

  passwd: all authentication tokens updated successfully. 注:更改成功;

  2、passwd 几个比较重要的参数;

  [root@localhost beinan]# passwd --help

  Usage: passwd [OPTION...]

  -k, --keep-tokens keep non-expired authentication tokens

  注:保留即将过期的用户在期满后能仍能使用;

  -d, --delete delete the password for the named account (root only)

  注:删除用户密码,仅能以root权限操作;

  -l, --lock lock the named account (root only)

  注:锁住用户无权更改其密码,仅能通过root权限操作;

  -u, --unlock unlock the named account (root only)

  注:解除锁定;

  -f, --force force operation

  注:强制操作;仅root权限才能操作;

  -x, --maximum=DAYS maximum password lifetime (root only) 注:两次密码修正的最大天数,后面接数字;仅能root权限操作;

  -n, --minimum=DAYS minimum password lifetime (root only) 注:两次密码修改的最小天数,后面接数字,仅能root权限操作;

  -w, --warning=DAYS number of days warning users receives before 注:在距多少天提醒用户修改密码;仅能root权限操作;

  password expiration (root only)

  -i, --inactive=DAYS number of days after password expiration when an 注:在密码过期后多少天,用户被禁掉,仅能以root操作;

  account becomes disabled (root only)

  -S, --status report password status on the named account (root 注:查询用户的密码状态,仅能root用户操作;

  only)

  --stdin read new tokens from stdin (root only)

  比如我们让某个用户不能修改密码,可以用-l 参数来锁定:

  [root@localhost ~]# passwd -l beinan 注:锁定用户beinan不能更改密码;

  Locking password for user beinan.

  passwd: Success 注:锁定成功;

  [beinan@localhost ~]# su beinan 注:通过su切换到beinan用户;

  [beinan@localhost ~]$ passwd 注:beinan来更改密码;

  Changing password for user beinan.

  Changing password for beinan

  (current) UNIX password: 注:输入beinan的当前密码;

  passwd: Authentication token manipulation error 注:失败,不能更改密码;

  再来一例:

  [root@localhost ~]# passwd -d beinan 注:清除beinan用户密码;

  Removing password for user beinan.

  passwd: Success 注:清除成功;

  [root@localhost ~]# passwd -S beinan 注:查询beinan用户密码状态;

  Empty password. 注:空密码,也就是没有密码;

  注意: 当我们清除一个用户的密码时,登录时就无需密码;这一点要加以注意;

  3、chage 修改用户密码有效期限的命令;

  chage 用语法格式:

  chage [-l] [-m 最小天数] [-M 最大天数] [-W 警告] [-I 失效日] [-E 过期日] [-d 最后日] 用户

  前面已经说的好多了,这个只是一笔带过吧,知道有这个命令就行,自己实践实践再说,大体和psswd有些参数的用法差不多;

  密 码时效命令-----chage

  格式为:chage [<选项>] <用户名>

  下面列出了chage命令的选项说明:

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

  -M days: 指定口令有效的最多天数。当该选项指定的天数加上-d选项指定的天数小于当前的日期时,用户在使用该帐号前就必须改变口令。

  -d days: 指定从1970年1月1日起,口令被改变的天数。

  -I days: 指定口令过期后,帐号被锁前不活跃的天数。如果值为0,帐号在口令过期后就不会被锁。

  -E date: 指定帐号被锁的日期。日期格式YYYY-MM-DD。若不用日期,也可以使用自1970年1月1日后经过的天数。

  -W days: 指定口令过期前要警告用户的天数。

  -l: 列出指定用户当前的口令时效信息,以确定帐号何时过期。

  例如下面的命令要求用户user1两天内不能更改口令,并且口令最长的存活期为30天,并且口令过期前5天通知用户

  chage -m 2 -M 30 -W 5 user1

  可以使用如下命令查看用户user1当前的口令时效信息:chage -l user1

  提示:1)可以使用chage <用户名>进入交互模式修改用户的口令时效。

  2)修改口令实质上就是修改影子口令文件/etc/shadow中与口令时效相关的字段值。 ... c83781c91768fe.html

  http://lolo6062.javaeye.com/blog/174033

  03-20

  linux命令创建和修改用户及密码

  linux下创建用户

  1、添加ftp用户

  useradd ftpname -d /home/ftp

  passwd ftppwd

  以下操作都以root权限进行:

  service vsftpd start 启动Linux自带的FTP服务

  2. 添加普通用户

  useradd nagios –d /usr/local/nagios

  chown nagios.nagios /usr/local/nagios

  将用户切换到nagios 用户,添加nagios的访问用户:

  su nagios

  htpasswd –c /usr/local/nagios/etc/htpasswd.users nagiosadmin

  系统会提示输入两次密码,例如两次输入nagios。

  注: 这是第一次创建用户,需要“-c”选项,表示创建一个存放用户名和密码的文件,当再次添加用户或修改密码时不用“-c”选项。

  添加新的用户账号使用useradd命令,其语法如下:

  useradd 选项 用户名

  其中各选项含义如下:

  -c comment 指定一段注释性描述。

  -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。

  -g 用户组 指定用户所属的用户组。

  -G 用户组,用户组 指定用户所属的附加组。

  -s Shell文件 指定用户的登录Shell。

  -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

  用户名 指定新账号的登录名。

  例如:

  # 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命令中的选项一样,可以为用户指定新的资源值。另外,有些系统可以使用如下选项:

  -l 新用户名

  这个选项指定一个新的账号,即将原来的用户名改为新的用户名。

  例如:

  # usermod -s /bin/ksh -d /home/z –g developer sam

  此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。

  用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。

  指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为:

  passwd 选项 用户名

  可使用的选项:

  -l 锁定口令,即禁用账号。

  -u 口令解锁。

  -d 使账号无口令。

  -f 强迫用户下次登录时修改口令。

  如果默认用户名,则修改当前用户的口令。

  例如,假设当前用户是sam,则下面的命令修改该用户自己的口令:

  $ passwd

  Old password:******

  New password:*******

  Re-enter new password:*******

  如果是超级用户,可以用下列形式指定任何用户的口令:

  # passwd sam

  New password:*******

  Re-enter new password:*******

  普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。

  为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用8位长的口令,口令中包含有大写、小写字母和数字,并且应该与姓名、生日等不相同。

  为用户指定空口令时,执行下列形式的命令:

  # passwd -d sam

  此命令将用户sam的口令删除,这样用户sam下一次登录时,系统就不再询问口令。

  passwd命令还可以用-l(lock)选项锁定某一用户,使其不能登录,例如:

  # passwd -l sam useradd -u 0 -o -g 0 youname

  建一和root权限一样的帐号youname:

  -u 0 就是建一个uid=0的帐号

  -o (注意是字母o,不是数字0)就是允许使用重复的id号

  -g 0 就是建一个gid=0的帐号

  youname就是你建的帐号名.

  useradd -c likeroot -d /home/likeroot -u 501 -g root likeroot

  mkdir /home/likeroot

  vi /etc/passwd文件,改uid为0

  likeroot:0:0:likeroot:/home/likeroot:

  修改/etc/password 文件,把你添加的用户id 修改成0 就可以和root一样的权限了!

  或者修改/etc/vsftp*开头的两个文件,把root注释掉,然后把/etc/pam.d/login里面的第一行注释掉!

  这样你就可以用root 进行远程登陆和ftp了,不过这样不安全!

  /etc/passwd中一行记录对应着一个用户,每行记录又被冒号(分隔为7个字段,其格式和具体含义如下:

  用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

  1)“用户名”是代表用户账号的字符串。通常长度不超过8个字符,并且由大小写字母和/或数字组成。登录名中不能有冒号(,因为冒号在这里是分隔符。为了兼容起见,登录名中最好不要包含点字符(.),并且不使用连字符(-)和加号(+)打头。

  2)“口令”一些系统中,存放着加密后的用户口令字。。虽然这个字段存放的只是用户口令的加密串,不是 明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多 Linux 系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”。

  3)“用户标识号”是一个整数,系统内部用它来标识用户。一般情况下它与用户名是一一对应的。如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,但是它们可以有不同的口令、不同的主目录以及不同的登录Shell等。

  通常用户标识号的取值范围是0~65 535。0是超级用户root的标识号,1~99由系统保留,作为管理账号,普通用户的标识号从100开始。在Linux系统中,这个界限是500。

  4)“组标识号”字段记录的是用户所属的用户组。它对应着/etc/group文件中的一条记录。

  5)“注释性描述”字段记录着用户的一些个人情况,例如用户的真实姓名、电话、地址等,这个字段并没有什么实际的用途。在不同的Linux 系统中,这个字段的格式并没有统一。在许多Linux系统中,这个字段存放的是一段任意的注释性描述文字,用做finger命令的输出。

  6)“主目录”,也就是用户的起始工作目录,它是用户在登录到系统之后所处的目录。在大多数系统中,各用户的主目录都被组织在同一个特定的目录下,而用户主目录的名称就是该用户的登录名。各用户对自己的主目录有读、写、执行(搜索)权限,其他用户对此目录的访问权限则根据具体情况设置。

  7)用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。Shell 是用户与Linux系统之间的接口。Linux的Shell有许多种,每种都有不同的特点。常用的有sh(Bourne Shell), csh(C Shell), ksh(Korn Shell), tcsh(TENEX/TOPS-20 type C Shell), bash(Bourne Again Shell)等。系统管理员可以根据系统情况和用户习惯为用户指定某个Shell。如果不指定Shell,那么系统使用sh为默认的登录Shell,即这个字段的值为/bin/sh。

  用户的登录Shell也可以指定为某个特定的程序(此程序不是一个命令解释器)。利用这一特点,我们可以限制用户只能运行指定的应用程序,在该应用程序运行结束后,用户就自动退出了系统。有些Linux 系统要求只有那些在系统中登记了的程序才能出现在这个字段中。

  作用

  passwd命令原来修改账户的登陆密码,使用权限是所有用户。

  2.格式

  passwd [选项] 账户名称

  3.主要参数

  -l:锁定已经命名的账户名称,只有具备超级用户权限的使用者方可使用。

  -u:解开账户锁定状态,只有具备超级用户权限的使用者方可使用。

  -x, --maximum=DAYS:密码使用最大时间(天),只有具备超级用户权限的使用者方可使用。

  -n, --minimum=DAYS:密码使用最小时间(天),只有具备超级用户权限的使用者方可使用。

  -d:删除使用者的密码, 只有具备超级用户权限的使用者方可使用。

  -S:检查指定使用者的密码认证种类, 只有具备超级用户权限的使用者方可使用。

  4.应用实例

  $ passwd

  Changing password for user cao.

  Changing password for cao

  (current) UNIX password:

  New UNIX password:

  Retype new UNIX password:

  passwd: all authentication tokens updated successfully.

  从上面可以看到,使用passwd命令需要输入旧的密码,然后再输入两次新密码。Linux联盟收集整理

Linux 操作系统是UNIX 操作系统的一种系统。它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet 网络,并经过全世界各地计算机爱好者的共同努力下,现已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。  Linux 操作系统的诞生、发展和成长过程始终依赖着以下五个重要支柱:UNIX 操作系统、MINIX 操作系统、GNU 计划、POSIX 标准和Internet 网络。

阅读(911) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:Linux 2.6 版内核引导过程学习

给主人留下些什么吧!~~