一、用户管理命令
相关命令:useradd、userdel、usermod、passwd、chsh、chfn、finger、id、chage、newgrp
1、useradd命令
1)功能:
[root@localhost /]# whatis useradd useradd (8) - 创建一个新用户或更新默认新用户信息
2)常用选项:
选项 | 含义 |
-g | 指定所属组 |
-u | 指定UID号 |
-s | 指定登录的shell |
-d | 指定家目录 |
-G | 指定属于多个组(附属组) |
-M | 指定不创建家目录 |
-m | 指定创建家目录 |
-e | 账号终止日期,日期指定的格式为MM/DD/YY |
-f | 账号过期几日后永久停权。当值为0时账号立即停权,为-1时则关闭此功能,预设值为-1。 |
-c | 注释 |
-h | 显示此命令的帮助信息 |
3)实例:
创建一个名为oldboy的用户,不创建家目录,不登录shell,指定UID号为8888,注释为virtual user。
[root@localhost /]# useradd -c "virtual user" -M -s /sbin/nologin -u 8888 oldboy [root@localhost /]# grep oldboy /etc/passwd oldboy:x:8888:8888:virtual user:/home/oldboy:/sbin/nologin [root@localhost /]# ls /home/ tom user
2、userdel命令
1)功能:
[root@localhost /]# whatis userdel userdel (8) - 删除用户账户和相关文件
2)常用选项:
选项 | 含义 |
-r | 删除主目录和邮件池 |
-f | 强制删除,即使登录中 |
-h | 查看此帮助信息 |
3)实例:
删除admin用户,并同时删除家目录。
[root@localhost /]# grep admin /etc/passwd admin:x:8889:8889::/home/admin:/bin/bash [root@localhost /]# ls /home/ admin tom user [root@localhost /]# userdel -r admin [root@localhost /]# grep admin /etc/passwd [root@localhost /]# ls /home/ tom user
3、usermod命令
1)功能:
修改账户属性
[root@localhost /]# whatis usermod usermod (8) - 修改一个用户账户
2)常用选项:
选项 | 含义 |
-g | 修改指定GID号 |
-u | 修改指定UID号 |
-c | 修改用户注释信息 |
-s | 修改指定用户默认shell |
-d | 修改指定家目录 |
-G | 修改附加组 |
-a -G | 添加附加组 |
-M | 指定不创建家目录 |
-l | 修改用户名 |
-L | 锁定用户账户 |
-U | 解锁账户 |
-D | 改变默认属性 |
-f | 账号过期几日后永久停权。当值为0时账号立即停权,为-1时则关闭此功能,预设值为-1 |
-e | 修改账号终止日期。日期的指定格式为MM/DD/YY |
3)实例:
修改oldboy用户:用户名修改为useradmin,修改UID号为6666,修改注释信息为manage users,修改登录shell为/bin/bash,修改指定家目录为/home/useradmin,添加一个附加组为admin组。
[root@localhost /]# grep oldboy /etc/passwd oldboy:x:8888:8888:virtual user:/home/oldboy:/sbin/nologin [root@localhost /]# usermod -l useradmin -u 6666 -c "manage users" -s /bin/bash -d /home/useradmin -a -G admin oldboy [root@localhost /]# grep useradmin /etc/passwd useradmin:x:6666:8888:manage users:/home/useradmin:/bin/bash [root@localhost /]# id useradmin uid=6666(useradmin) gid=8888(oldboy) 组=8888(oldboy),8889(admin)
4、passwd命令
1)功能:
[root@localhost /]# whatis passwd passwd (1) - update user's authentication tokens #更新用户的身份验证(更新用户密码) sslpasswd (1ssl) - compute password hashes
2)常用选项:
选项 | 含义 |
-l | 锁定用户 |
-U | 解除用户锁定 |
-d | 删除用户密码 |
-S (大写) | 查看用户状态 |
-n | 表示多少天内不能更改密码 |
-x | 表示多少天以后要求更改密码 |
-w | 表示账户密码过期前多少天提醒 |
-i | 表示密码过期后多少天账号被禁用 |
--stdin | 非交互式修改密码 |
3)实例:
修改useradmin用户密码信息:非交互式修改密码为123123,3天内不能更改密码,30天后要求更改密码,密码过期前7天提醒,密码过期后5天禁用账号。
[root@localhost /]# grep useradmin /etc/shadow useradmin:!!:18066:0:99999:7::: [root@localhost /]# echo 123123|passwd --stdin useradmin -n 3 -x 30 -w 7 -i 5 调整用户密码老化数据useradmin。 passwd: 操作成功 [root@localhost /]# grep useradmin /etc/shadow useradmin:!!:18066:3:30:7:5::
5、chsh命令
1)功能:
[root@localhost /]# whatis chsh chsh (1) - change your login shell #更改登录shell
2)常用选项:
选项 | 含义 |
-s | 指定登录shell |
-l | 打印shell列表并退出 |
-u 或 --help | 显示此帮助信息 |
-v | 显示版本信息 |
3)实例:
更改apache账号的登录shell为/bin/bash,打印shell列表。
#更改apache用户登录shell为/bin/bash [root@localhost /]# grep apache /etc/passwd apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin #不能登录shell [root@localhost /]# chsh -s /bin/bash apache Changing shell for apache. Shell changed. [root@localhost /]# grep apache /etc/passwd apache:x:48:48:Apache:/usr/share/httpd:/bin/bash #登录shell为/bin/bash #打印shell列表 [root@localhost /]# chsh -l /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin
6、chfn命令
1)功能:
修改用户的描述信息,类似与usermod -c命令
[root@localhost /]# whatis chfn chfn (1) - change your finger information #修改用户的描述信息
2)常用选项:
选项 | 含义 |
-f , --full-name | 真实姓名 |
-o , --office | 办公号码 |
-p , --office-phone | 办公电话 |
-h , --home-phone | 住宅电话 |
-u | 显示帮助信息 |
-v | 输出版本信息 |
3)实例:
修改useradmin用户描述信息:真是姓名为wang hong zhi,办公电话为40056008
[root@localhost /]# grep useradmin /etc/passwd useradmin:x:6666:8888:manage users:/home/useradmin:/bin/bash [root@localhost /]# chfn -f "wang hong zhi" -p 40056008 useradmin Changing finger information for useradmin. Finger information changed. [root@localhost /]# grep useradmin /etc/passwd useradmin:x:6666:8888:wang hong zhi,,40056008:/home/useradmin:/bin/bash
7、finger命令
1)功能:
用于查看用户账号的家目录、shell等信息,finger指定会去查找。(查看账户信息)
[root@localhost /]# man finger NAME finger — user information lookup program #用户信息查找程序
2)常用选项:
选项 | 含义 |
-l | 多行显示用户的登录名、真实姓名、登录shell、家目录等信息 |
-m | 与-l选项类似 |
-s | 显示用户登录名、真是姓名、终端名称、停留时间、登录时间、办公电话等信息 |
-p | 除了不显示.plan、.project文件以外,与-l选项相同 |
3)实例:
############-l选项############ [root@localhost /]# finger -l useradmin Login: useradmin Name: wang hong zhi Directory: /home/useradmin Shell: /bin/bash Office: 40056008 Last login 三 6月 19 11:28 (CST) on pts/0 No mail. No Plan. ############-s选项############ [root@localhost /]# finger -s useradmin Login Name Tty Idle Login Time Office Office Phone Host useradmin wang hong zhi pts/0 * Jun 19 11:28 40056008 ############-m选项############ [root@localhost /]# finger -m useradmin Login: useradmin Name: wang hong zhi Directory: /home/useradmin Shell: /bin/bash Office: 40056008 Last login 三 6月 19 11:28 (CST) on pts/0 No mail. No Plan. ############-p选项############ [root@localhost /]# finger -p useradmin Login: useradmin Name: wang hong zhi Directory: /home/useradmin Shell: /bin/bash Office: 40056008 Last login 三 6月 19 11:28 (CST) on pts/0 No mail.
8、id命令
1)功能:
[root@localhost /]# whatis id id (1) - print real and effective user and group IDs #打印真实有效的用户和组ID
2)常用选项:
选项 | 含义 |
--help | 显示此帮助信息 |
--version | 显示版本信息 |
-u | 仅显示有效用户id |
-g | 仅显示有效的用户组id |
-G | 显示所有组的id(属组id和附加组id) |
-r | 显示真实ID而非有效ID(不能单独使用,与ug结合使用) |
-n | 显示用户组的名称而非数字 |
-a | 忽略,仅为与其他版本相兼容而设计 |
-Z | 仅显示当前用户的selinux安全环境 |
注意:-r与-n两个选项是不能单独使用的,要与-u或-g选项结合使用。
3)实例:
[root@localhost /]# id -u useradmin #显示UID 6666 [root@localhost /]# id -g useradmin #显示GID 8888 [root@localhost /]# id -G useradmin #显示所有GID 8888 8889 [root@localhost /]# id -ur useradmin #显示真实UID 6666 [root@localhost /]# id -gr useradmin #显示真实GID 8888 [root@localhost /]# id -gn useradmin #显示组名称 oldboy [root@localhost /]# id -un useradmin #显示用户名称 useradmin
9、chage命令
1)功能:
[root@localhost /]# whatis chage chage (1) - 更改用户密码过期信息
2)常用选项:
选项 | 含义 |
-d | 上次修改密码的时间距离1970-01-01起的天数,如果后面跟的天数为0,则表示,用户在下次登录的时候,必须要修改自己的密码 |
-E | 修改账户失效日期,格式为YYYY-MM-DD。后面也可跟上天数,如果为天数,则表示距离1970-01-01起的天数。如果为-1,则表示移除账户失效日期。该指令等同于usemod -e |
-h | 显示帮助信息 |
-I(大写i) | 密码过期多少天后,账户将被禁用。如果为-1将关闭该功能。 |
-l | 查看用户密码的过期信息 |
-m | 密码使用的最小天数 |
-M | 密码使用的最大天数,如果为-1将关闭该功能。 |
-W | 密码过期前多少天警告。 |
3)实例:
修改useradmin用户的密码信息:修改下次登录时必须修改密码,修改账户失效日期为2060-01-01,修改密码过期7天后 账户将被禁用,密码使用最小天数为3天,密码使用最大天数为30天,密码过期前5天警告。
[root@localhost /]# chage -l useradmin 最近一次密码修改时间 :6月 19, 2019 密码过期时间 :7月 19, 2019 密码失效时间 :7月 24, 2019 帐户过期时间 :从不 两次改变密码之间相距的最小天数 :3 两次改变密码之间相距的最大天数 :30 在密码过期之前警告的天数 :7 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * [root@localhost /]# chage -d 0 -E 2060-01-01 -I 7 -m 3 -M 30 -W 5 useradmin * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * [root@localhost /]# chage -l useradmin 最近一次密码修改时间 :密码必须更改 密码过期时间 :密码必须更改 密码失效时间 :密码必须更改 帐户过期时间 :1月 01, 2060 两次改变密码之间相距的最小天数 :3 两次改变密码之间相距的最大天数 :30 在密码过期之前警告的天数 :5
10、newgrp命令
1)功能:
如果一个用户同时属于多个用户组,那么该用户可以在用户组之间进行切换,以便具有其他用户组的权限。newgrp主要用于在多个用户组之间进行切换。
[root@localhost /]# whatis newgrp newgrp (1) - 登录到一个新组
2)命令格式:
newgrp <用户组>
3)实例:
[root@localhost user1]# su - user1 [user1@localhost ~]$ id user1 uid=6667(user1) gid=8890(grp1) 组=8890(grp1),8892(grp2),8893(grp3) [user1@localhost ~]$ newgrp grp1 #进入grp1组 [user1@localhost ~]$ touch txt-01 [user1@localhost ~]$ ll txt-01 -rw-r--r--. 1 user1 grp1 0 6月 19 14:58 txt-01 #进入grp1组后,创建的文件的属组为grp1了 [user1@localhost ~]$ newgrp grp2 #进入grp2组 [user1@localhost ~]$ touch txt-02 [user1@localhost ~]$ ll txt-02 -rw-r--r--. 1 user1 grp2 0 6月 19 14:59 txt-02 #进入grp1组后,创建的文件的属组为grp2了 [user1@localhost ~]$ newgrp grp3 #进入grp3组 [user1@localhost ~]$ touch txt-03 [user1@localhost ~]$ ll txt-03 -rw-r--r--. 1 user1 grp3 0 6月 19 14:59 txt-03 #进入grp1组后,创建的文件的属组为grp3了 [user1@localhost ~]$ ll 总用量 0 -rw-r--r--. 1 user1 grp1 0 6月 19 14:58 txt-01 -rw-r--r--. 1 user1 grp2 0 6月 19 14:59 txt-02 -rw-r--r--. 1 user1 grp3 0 6月 19 14:59 txt-03
二、用户查看命令
相关命令:whoami、who、w
1、whoami命令
1)功能:
打印当前登录的用户名称
[root@localhost /]# whatis whoami whoami (1) - print effective userid #打印有效标识
2)实例:
[root@localhost /]# whoami root [root@localhost /]# su - user1 上一次登录:三 6月 19 14:58:11 CST 2019pts/0 上 [user1@localhost ~]$ whoami user1
2、who命令
1)功能:
[user1@localhost ~]$ whatis who who (1) - show who is logged on #显示谁已登录
2)常用选项:
选项 | 含义 |
-b , --boot | 上次系统启动时间 |
-l , --login | 显示系统登录进程 |
--lookup | 尝试通过DNS查验主机名 |
-q , --count | 列出所有已登录用户的登录名与用户数量 |
-u , --users | 列出已登录的用户 |
--help | 显示帮助信息 |
-r | 显示当前的运行级别 |
3)实例:
[root@localhost /]# who -b #列出上次系统启动时间 系统引导 2019-06-18 10:42 [root@localhost /]# who -q #列出所有已登录用户的用户名与用户数量 root # 用户数=1 [root@localhost /]# who -u #列出已登录的用户 root pts/0 2019-06-18 10:57 . 3192 (192.168.26.1) [root@localhost /]# who --lookup root pts/0 2019-06-18 10:57 (192.168.26.1) [root@localhost /]# who -r #显示当前运行级别 运行级别 3 2019-06-18 10:44 [root@localhost /]# who -l #显示系统登录进程 登录 tty1 2019-06-18 10:43 970 id=tty1
3、w命令
1)功能:
显示目前登录系统的用户信息
[root@localhost /]# whatis w w (1) - Show who is logged on and what they are doing. #显示谁已登录以及他们正在做什么
2)常用选项:
选项 | 含义 |
-f | 开启或关闭显示用户从何处登入系统 |
-h | 不显示各栏位的标题信息列 |
-s | 使用简洁格式列表,不显示用户登入时间 |
--help | 显示帮助信息 |
3)实例:
[root@localhost /]# w 15:24:59 up 1 day, 4:43, 1 user, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.26.1 二10 3.00s 1.98s 0.04s w [root@localhost /]# w -h root pts/0 192.168.26.1 二10 6.00s 1.96s 0.02s w -h [root@localhost /]# w -f 15:25:04 up 1 day, 4:43, 1 user, load average: 0.08, 0.03, 0.05 USER TTY LOGIN@ IDLE JCPU PCPU WHAT root pts/0 二10 0.00s 1.98s 0.04s w -f [root@localhost /]# w -s 15:25:13 up 1 day, 4:43, 1 user, load average: 0.07, 0.03, 0.05 USER TTY FROM IDLE WHAT root pts/0 192.168.26.1 1.00s w -s