Linux学习:Linux基础命令集(3)

本次记录以下命令如useradd, usermod, passwd, userdel, groupadd, groupmod, groupdel, gpasswd, su, id, chfn, chsh, chage, finger的使用格式、常用选项及它们有哪些使用实例等。

  • 用户和工作组管理相关命令

1. useradd 创建新用户命令

创建新用户命令格式:useradd [OPTION] LOGIN

OPTION:

-u 直接指定一个特定的UID给新建账号

-g 指定用户所属的基本组,此组必须事先存在

[root@www ~]# useradd -u 600 -g users t1

[root@www ~]# ll -d /home/t1

drwx------. 4 t1 users 4096 8月 31 19:31 /home/t1

-c 用户信息说明

-d 指定某个目录成为主文件夹,使用绝对路径

-G 指定所属的附加组(还可以加入的用户组)

[root@www ~]# useradd -u 3000 -g database -G sql -c DBA -d /home/database Oracle

[root@www ~]# grep Oracle /etc/passwd /etc/shadow /etc/group

/etc/passwd:Oracle:x:3000:502:DBA:/home/database:/bin/bash

/etc/shadow:Oracle:!!:16678:0:99999:7:::

/etc/group:sql:x:503:Oracle

[root@www ~]# id Oracle

uid=3000(Oracle) gid=502(database) 组=502(database),503(sql)

-s 指定用户shell

-M 不要创建用户主文件夹(系统账号默认值)

-m 要创建用户主文件夹(一般账号默认值)

-r 创建系统账户

[root@www ~]# useradd -r sysaccount

[root@www ~]# grep sysaccount /etc/passwd /etc/shadow /etc/group

/etc/passwd:sysaccount:x:495:491::/home/sysaccount:/bin/bash

/etc/shadow:sysaccount:!!:16678::::::

/etc/group:sysaccount:x:491:

useradd参考文件

[root@www ~]# useradd -D

GROUP=100                 <-- 默认用户组

HOME=/home              <-- 默认的主文件夹所在目录

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash          <-- 默认的shell

SKEL=/etc/skel             <-- 用户主文件夹的内容数据参考目录

CREATE_MAIL_SPOOL=yes

2. passwd设置密码命令

设置密码命令格式:passwd [OPTION] [USERNAME]

OPTION:

-l 使密码失效

-u未锁定密码

[root@www etc]# passwd -l Oracle

锁定用户 Oracle 的密码 。

passwd: 操作成功

[root@www etc]# passwd -S Oracle

Oracle LK 2015-08-31 0 60 7 10 (密码已被锁定。)

[root@www etc]# grep Oracle /etc/shadow

Oracle:!!$6$7f.VFz5z$TocJp42wo8V6DdsgcF.7TOxGLJwfsCQGuwpqyHSVhQ6hER6K3Kyr0CDQmdaPzCS.kyWySlwElYdTUwuNRuciG1:16678:0:60:7:10::

-n 多久不可修改密码天数

-x 多久内必须要改动密码

-w 密码过期前的警告天数

-i 密码失效日期

[root@www ~]# passwd lab_test1

更改用户 lab_test1 的密码 。

新的 密码:

无效的密码: 过短

无效的密码: 过于简单

重新输入新的 密码:

passwd: 所有的身份验证令牌已经成功更新。

-S 列出密码相关参数

[root@www etc]# passwd -S Oracle

Oracle PS 2015-08-31 0 99999 7 -1 (密码已设置,使用 SHA512 加密。)

每60天需要更改密码,密码过期后10天未使用就宣告密码失效

[root@www etc]# passwd -x 60 -i 10 Oracle

调整用户密码老化数据Oracle。

passwd: 操作成功

[root@www etc]# passwd -S Oracle

Oracle PS 2015-08-31 0 60 7 10 (密码已设置,使用 SHA512 加密。)

--stdin 从标准输出接收用户密码

[root@www etc]# echo "abcdefg" | passwd --stdin Oracle

更改用户 Oracle 的密码 。

passwd: 所有的身份验证令牌已经成功更新。

3. chage密码过期时间设置命令

修改账号和密码的有效期限。

密码过期时间设置命令格式:chage [OPTION]...LOGIN

OPTION:

-l 列出当前的设置(用户及密码的有效期限)

[root@www ~]# chage -l Oracle

Last password change : Aug 31, 2015

Password expires : Oct 30, 2015

Password inactive : Nov 09, 2015

Account expires : never

Minimum number of days between password change : 0

Maximum number of days between password change : 60

Number of days of warning before password expires : 7

-d 最近一次更改密码的日期,格式YYYY-MM-DD

让用户在第一次登录时强制他们一定要更改密码后才能够使用系统资源

[root@www ~]# useradd agetest

[root@www ~]# echo "agetest" | passwd --stdin agetest

更改用户 agetest 的密码 。

passwd: 所有的身份验证令牌已经成功更新。

[root@www ~]# chage -d 0 agetest

You are required to change your password immediately (root enforced)

WARNING: Your password has expired.

You must change your password now and login again!

Changing password for user agetest.

Changing password for agetest.

(current) UNIX password:                         <-- 这个账号被强制要求必须更改密码!

-E 账号失效日,格式YYYY-MM-DD

-I 密码失效日期

-m密码最短保留天数

-M密码多久需要进行更改

-W密码过期前警告日期

4. usermod账号属性修改命令

用于修改用户的基本信息,它不允许你改变正在线上的使用者账号名称。当usermod命令用来改变user id,必须确认这名user没有在电脑上执行任何程序。

账号属性修改命令格式:usermod [OPTION]...LOGIN

OPTION:

-c修改账号的说明

[root@www ~]# usermod -c "lab_test1 is test Account" lab_test1

[root@www ~]# grep lab_test1 /etc/passwd

lab_test1:x:501:501:lab_test1 is test Account:/home/lab_test1:/bin/bash

-u 修改用户ID

-g 修改用户所属的基本组

-G 修改用户所属的附加组

-l 修改用户账号名称

-d 修改用户登入时的目录(主文件夹)

[root@www ~]# usermod -u 666 -g root -G lab_test1 -l test1_lab -d /account_lab lab_test1

lab_test1:x:501:501::/home/lab_test1:/bin/bash

[root@www /]# grep "test1_lab" /etc/passwd /etc/shadow /etc/group

/etc/passwd:test1_lab:x:666:0:lab_test1 is test Account:/account_lab:/bin/bash

/etc/shadow:test1_lab:$6$r26qUB6T$udvZrhtQh342s40B.QPX.gjkBi.jv8YZitOAu8F40k/9iJ0cBS3b/cz.2qDO5j3rrmIYT6d.BgdTWSW5Zr3xl.:16678:0:99999:7:::

/etc/group:lab_test1:x:501:test1_lab

-L 锁定用户密码,使密码无效

-U 解除密码锁定

-s 修改用户登入后所使用的shell

5. userdel删除账号命令

用于删除给定的用户,以及与用户相关的文件。若不加选项,则仅删除用户账号,而不删除相关文件。

删除账号命令格式:userdel [OPTION]...LOGIN

OPTION:

-f 强制删除用户,即使用户当前已登录

-r 删除用户的同时,删除与用户相关的所有文件

用户账号/密码相关参数:/etc/passwd, /etc/shadow

用户组相关参数:/etc/group, /etc/gshadow

用户个人文件数据:/home/username, /var/spool/mail/username

t1:x:600:100::/home/t1:/bin/bash

[root@www ~]# userdel -r t1

[root@www ~]# ll -d /home/t1

ls: 无法访问/home/t1: 没有那个文件或目录

6. groupadd创建新工作组命令

创建一个新的工作组,其信息将被添加到系统文件中。

创建新工作组命令格式:groupadd [OPTION]...GROUPNAME

OPTION:

-g 指定新建工作组的ID

-r 创建系统工作组,系统工作组的组ID小于500

[root@www ~]# groupadd -g 600 lab_group1

[root@www ~]# grep lab_group1 /etc/group /etc/gshadow

/etc/group:lab_group1:x:600:

/etc/gshadow:lab_group1:!::

7. groupmod工作组属性更改命令

工作组属性更改命令格式:

groupmod [OPTION]...GROUPNAME

OPTION:

-g 修改既有的GID

-n 修改既有的组名称

[root@www ~]# groupmod -g 488 -n group1 lab_group1

[root@www ~]# grep group1 /etc/group /etc/gshadow

/etc/group:group1:x:488:

/etc/gshadow:group1:!::

8. groupdel删除工作组命令

删除指定的工作组,本命令要修改的系统文件包括/etc/group和/etc/gshadow。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。

删除工作组命令格式:groupdel GROUPNAME

[root@www ~]# groupdel group1

[root@www ~]# grep group1 /etc/group /etc/gshadow

9. gpasswd工作组密码设定命令

如果系统管理员没时间帮用户加入到指定工作组内,这时可新建“用户组管理员”来管理指定账号加入/移出有关用户组。

工作组密码设定命令格式:gpasswd [OPTION]...GROUPNAME

OPTION:

不带任何参数,表示给予groupname一个密码(/etc/gshadow)

-A 指定某用户账号为指定工作组的管理员

[root@www ~]# gpasswd -A Allen users

[root@www ~]# grep users /etc/group /etc/gshadow

/etc/group:users:x:100:

/etc/gshadow:users::Allen:

-r 将groupname的密码删除

-R 让groupname密码栏失效

-a 添加用户到指定组中

-d 从指定组中删除用户

[Allen@www ~]$ gpasswd -a lab_test2 users

Adding user lab_test2 to group users

[Allen@www ~]$ grep users /etc/group

users:x:100:lab_test2

  • 用户功能相关命令

10. finger查看用户信息命令

用于查看用户信息,包括本地与远端主机的用户皆可,帐号名称没有大小写的差别。(大部分是/etc/passwd里面的信息)

单独执行finger指令,它会显示本地主机现在所有的用户的登陆信息,包括帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话。

查看用户信息命令格式:finger [OPTION] USERNAME OPTION:

-s 列出该用户的帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话;

[root@NTPServer ~]# finger -s

Login Name Tty Idle Login Time Office Office Phone

root root pts/1 Sep 1 10:28 (10.10.6.240)

[root@NTPServer ~]# finger root

Login: root Name: root

Directory: /root Shell: /bin/bash

On since 二 9月 1 10:28 (CST) on pts/1 from 10.10.6.240

New mail received 二 9月 1 10:28 2015 (CST)

Unread since 二 10月 8 12:23 2013 (CST)

11. chfn改变finger显示信息命令

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

改变finger显示信息命令格式:chfn [OPTION] [USERNAME] OPTION:

-f 设置真实姓名

-h 设置家中的电话号码

-o 设置办公室地址

-p 设置办公室的电话号码

[root@www ~]# chfn -f Allen.Huang

Changing finger information for root.

Finger information changed.

[root@www ~]# grep root /etc/passwd

root:x:0:0:Allen.Huang:/root:/bin/bash

12. chsh更改shell命令

更换登录系统时使用的shell。若不指定任何参数与用户名称,则chsh会以应答的方式进行设置。

更改shell命令格式:chsh [OPTION] [USERNAME]

OPTION:

-l 列出目前系统可用的shell清单(/etc/shells)

[Allen@www ~]$ chsh -l

/bin/sh

/bin/bash

/sbin/nologin

/bin/dash

/bin/tcsh

/bin/csh

-s 更改用户预设的shell环境

[root@www ~]# chsh -s /bin/csh Allen; grep Allen /etc/passwd

Changing shell for Allen.

Shell changed.

root:x:0:0:Allen.Huang:/root:/bin/bash

Allen:x:500:500:Allen.Huang:/home/Allen:/bin/csh

13. id查询账户信息命令

显示真实有效的用户ID(UID)和组ID(GID)。UID 是对一个用户的单一身份标识。组ID(GID)则对应多个UID。

查询账户信息命令格式:id [OPTION] [USERNAME]

OPTION:

-g显示用户所属群组的ID

-G显示用户所属附加群组的ID

-u显示用户ID

[root@www ~]# id root

uid=0(root) gid=0(root) 组=0(root)

14. su切换用户身份命令

用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。

切换用户身份命令格式:su [OPTION]...[USERNAME]

OPTION:

- 代表切换为root身份

-l 改变身份时,也同时变更工作目录,以及HOME,SHELL, USER, LOGNAME。也会变更PATH变量

-m,-p变更身份时,不要变更环境变量

-c执行完指定的指令后,即恢复原来的身份

使用root切换成为任何用户时,并不需要输入新用户的密码。

[root@www ~]# su -l Allen

[Allen@www ~]$ env |grep Allen                      <--用户的环境变量

HOME=/home/Allen

USER=Allen

LOGNAME=Allen

PWD=/home/Allen

GROUP=Allen

MAIL=/var/spool/mail/Allen

[Allen@www ~]$ useradd –D               <--此用户无权限执行此命令

useradd: Command not found.

[Allen@www ~]$ su - -c "useradd -D"         <--Root权限执行此命令

密码:

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

[Allen@www ~]$ su -

密码:

[root@www ~]#

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章