reboot

reboot命令用来重新启动正在运行的Linux操作系统。

语法

reboot(选项)

选项

-d:重新开机时不把数据写入记录文件/var/tmp/wtmp。本参数具有“-n”参数效果;
-f:强制重新开机,不调用shutdown指令的功能;
-i:在重开机之前,先关闭所有网络界面;
-n:重开机之前不检查是否有未结束的程序;
-w:仅做测试,并不真正将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。

实例

reboot        //重开机。
reboot -w     //做个重开机的模拟(只有纪录并不会真的重开机)。

finger

finger命令用于查找并显示用户信息。包括本地与远端主机的用户皆可,帐号名称没有大小写的差别。单独执行finger指令,它会显示本地主机现在所有的用户的登陆信息,包括帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话。

语法

finger(选项)(参数)

选项

-l:列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,还有计划文件和方案文件内容;
-m:排除查找用户的真实姓名;
-s:列出该用户的帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话;
-p:列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,但不显示该用户的计划文件和方案文件内容。

不指定finger的选项如果提供操作者的话,缺省设为-l输出风格,否则为-s风格,注意在两种格式中,如果信息不足,都有一些域可能丢失,如果没有指定参数finger会为当前登录的每个用户打印一个条目。

参数

用户名:指定要查询信息的用户。

实例

在计算机上使用finger:

[root@localhost root]# finger
login Name Tty Idle Login time Office Office Phone
root root tty1 2 Dec 18 13
root root pts/0 1 Dec 18 13
root root *pts/1 Dec 18 13

如果要查询远程机上的用户信息,需要在用户名后面接@主机名,采用用户名@主机名的格式,不过要查询的网络主机需要运行finger守护进程的支持。

groups

groups命令在标准输入输出上输出指定用户所在组的组成员,每个用户属于/etc/passwd中指定的一个组和在/etc/group中指定的其他组。

语法

groups(选项)(参数)

选项

-help:显示命令的帮助信息;
--version:显示命令的版本信息。

参数

用户名:指定要打印所属工作组的用户名。

实例

显示linux用户所属的组

groups linux
linux : linux adm dialout cdrom plugdev lpadmin admin sambashare

newusers

newusers命令用于批处理的方式一次创建多个命令。

语法

newusers(参数)

参数

用户文件:指定包含用户信息的文本文件,文件的格式要与/etc/passwd相同。

实例

实用newusers命令批量添加用户:

用法很简单,newusers后面直接跟一个文件,文件格式和/etc/passwd的格式相同。

用户名1:x:UID:GID:用户说明:用户的家目录:所用SHELL

举例:

jingang0:x:520:520::/home/jingang0:/sbin/nologin
jingang1:x:521:521::/home/jingang1:/sbin/nologin
......

值得一提的是关于SHELL类型,查看主机上所有SHELL,可以通过chsh来查看:

[root@localhost beinan]# chsh --list
/bin/sh
/bin/bash
/sbin/nologin
/bin/ksh
/bin/tcsh
/bin/csh
/bin/zsh

其中除了/sbin/nologin,其它类型的SHELL都能登录系统,nologin大多是虚拟用户用的SHELL,也就是说虽然他是系统用户,但他并无登录系统的权限;如果您想添加这类用户,就把他的SHELL设置成/sbin/nologin,比如上面的例子。

关于用户名、UID、GID及用户的家目录是怎么回事,您可以读相应的参考文档。

chfn

chfn命令用来改变finger命令显示的信息。这些信息都存放在/etc目录里的passwd文件里。若不指定任何选项,则chfn命令会进入问答式界面。

语法

chfn(选项)(参数)

选项

-f<真实姓名>或--full-name<真实姓名>:设置真实姓名;
-h<家中电话>或--home-phone<家中电话>:设置家中的电话号码;
-o<办公地址>或--office<办公地址>:设置办公室的地址;
-p<办公电话>或--office-phone<办公电话>:设置办公室的电话号码;
-u或--help:在线帮助;
-v或-version:显示版本信息。

参数

用户名:指定要改变finger信息的用户名。

实例

范例1,改变finger信息:

[root@localhost Desktop]# chfn
Changing finger information for root.
Name [root]: jack
Office []: hn
Office Phone []: 888888
Home Phone []: 9999999
 
Finger information changed.

范例2,改变账号真实姓名:

[root@localhost Desktop]# chfn -f jack
Changing finger information for root.
Finger information changed.

范例3:

shell>> chfn
Changing finger information for user
Password: [del]
Name[]:linuxdoc ### 提供 finger 时的资料
Office[]:NCCU
Office Phone[]: [del]
Home Phone[]: [del]

passwd

passwd命令用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。

语法

passwd(选项)(参数)

选项

-d:删除密码,仅有系统管理者才能使用;
-f:强制执行;
-k:设置只有在密码过期失效后,方能更新;
-l:锁住密码;
-s:列出密码的相关信息,仅有系统管理者才能使用;
-u:解开已上锁的帐号。

参数

用户名:需要设置密码的用户名。

知识扩展

与用户、组账户信息相关的文件

存放用户信息:

/etc/passwd
/etc/shadow

存放组信息:

/etc/group
/etc/gshadow

用户信息文件分析(每项用:隔开)

例如:jack:X:503:504:::/home/jack/:/bin/bash
jack  //用户名
X  //口令、密码
503  //用户id(0代表root、普通新建用户从500开始)
504  //所在组
:  //描述
/home/jack/  //用户主目录
/bin/bash  //用户缺省Shell

组信息文件分析

例如:jack:$!$:???:13801:0:99999:7:*:*:
jack  //组名
$!$  //被加密的口令
13801  //创建日期与今天相隔的天数
0  //口令最短位数
99999  //用户口令
7  //到7天时提醒
*  //禁用天数
*  //过期天数

实例

如果是普通用户执行passwd只能修改自己的密码。如果新建用户后,要为新用户创建密码,则用passwd用户名,注意要以root用户的权限来创建。

[root@localhost ~]# passwd linuxdoc    //更改或创建linuxdoc用户的密码;
Changing password for user linuxdoc.
New UNIX password:          //请输入新密码;
Retype new UNIX password:   //再输入一次;
passwd: all authentication tokens updated successfully. //成功;

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

[linuxdoc@localhost ~]$ passwd
Changing password for user linuxdoc. //更改linuxdoc用户的密码;
(current) UNIX password:   //请输入当前密码;
New UNIX password:         //请输入新密码;
Retype new UNIX password:  //确认新密码;
passwd: all authentication tokens updated successfully. //更改成功;

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

[root@localhost ~]# passwd -l linuxdoc    //锁定用户linuxdoc不能更改密码;
Locking password for user linuxdoc.
passwd: Success           //锁定成功;

[linuxdoc@localhost ~]# su linuxdoc   //通过su切换到linuxdoc用户;
[linuxdoc@localhost ~]$ passwd      //linuxdoc来更改密码;
Changing password for user linuxdoc.
Changing password for linuxdoc
(current) UNIX password:          //输入linuxdoc的当前密码;
passwd: Authentication token manipulation error     //失败,不能更改密码;

再来一例:

[root@localhost ~]# passwd -d linuxdoc  //清除linuxdoc用户密码;
Removing password for user linuxdoc.
passwd: Success                         //清除成功;

[root@localhost ~]# passwd -S linuxdoc    //查询linuxdoc用户密码状态;
Empty password.                         //空密码,也就是没有密码;

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

groupmod

groupmod命令更改群组识别码或名称。需要更改群组的识别码或名称时,可用groupmod指令来完成这项工作。

语法

groupmod(选项)(参数)

选项

-g<群组识别码>:设置欲使用的群组识别码;
-o:重复使用群组识别码;
-n<新群组名称>:设置欲使用的群组名称。

参数

组名:指定要修改的工作的组名。

pwck

pwck命令用来验证系统认证文件/etc/passwd/etc/shadow的内容和格式的完整性。

语法

pwck(选项)(参数)

选项

-q:仅报告错误信息;
-s:以用户id排序文件“/etc/passwd”和“/etc/shadow”;
-r:只读方式运行指令。

参数

  • 密码文件:指定密码文件的路径;
  • 影子文件:指定影子文件的路径。

实例

pwck /etc/passwd
user 'lp': directory '/var/spool/lpd' does not exist
user 'news': directory '/var/spool/news' does not exist
user 'uucp': directory '/var/spool/uucp' does not exist
user 'www-data': directory '/var/www' does not exist
user 'list': directory '/var/list' does not exist
user 'irc': directory '/var/run/ircd' does not exist
user 'gnats': directory '/var/lib/gnats' does not exist
user 'nobody': directory '/nonexistent' does not exist
user 'syslog': directory '/home/syslog' does not exist
user 'couchdb': directory '/var/lib/couchdb' does not exist
user 'speech-dispatcher': directory '/var/run/speech-dispatcher' does not exist
user 'usbmux': directory '/home/usbmux' does not exist
user 'haldaemon': directory '/var/run/hald' does not exist
user 'pulse': directory '/var/run/pulse' does not exist
user 'saned': directory '/home/saned' does not exist
user 'hplip': directory '/var/run/hplip' does not exist
pwck:无改变

gpasswd

gpasswd命令是Linux下工作组文件/etc/group/etc/gshadow管理工具。

语法

gpasswd(选项)(参数)

选项

-a:添加用户到组;
-d:从组删除用户;
-A:指定管理员;
-M:指定组成员和-A的用途差不多;
-r:删除密码;
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。

参数

组:指定要管理的工作组。

实例

如系统有个peter账户,该账户本身不是groupname群组的成员,使用newgrp需要输入密码即可。

gpasswd groupname

让使用者暂时加入成为该组成员,之后peter建立的文件group也会是groupname。所以该方式可以暂时让peter建立文件时使用其他的组,而不是peter本身所在的组。

所以使用gpasswd groupname设定密码,就是让知道该群组密码的人可以暂时切换具备groupname群组功能的。

gpasswd -A peter users

这样peter就是users群组的管理员,就可以执行下面的操作:

gpasswd -a mary users
gpasswd -a allen users

注意:添加用户到某一个组 可以使用usermod -G group_name user_name这个命令可以添加一个用户到指定的组,但是以前添加的组就会清空掉。

所以想要添加一个用户到一个组,同时保留以前添加的组时,请使用gpasswd这个命令来添加操作用户:

gpasswd -a user_name group_name