玩转linux第四天之用户及组管理类相关命令(二)

1    前言

本文档主要介绍用户及组管理类相关命令如:useradd usermodpasswduserdelgroupaddgroupmod\gpasswdgroupdelhage,chsh,chfn,id,w,who,whoamiwck,gourpcksu,并提供相应案例解释其含义。

学习这些基础命令是一个Linux爱好者需要具备的首要条件,让小编带领你们进入Linux的世界看看它的一颦一笑。

读者对象

本文档(本指南)主要适用于以下人员:

Linux爱好者

2     环境简介

项目

配置

硬件型号

Tinkpad T440P

CPU

I5-4210

内存

4G

操作系统

Windows 8.1

虚拟系统

Vmware workstation 11

CPU

1Core

内存

1G

操作系统

Centos 7.1

 


 

 

3     用户及组管理命令详解

3.1   用户管理命令

用户管理命令可以快速创建useradd usermodpasswduserdel

useradd: 创建一个新用户或更新默认新用户信息

标准用法:

useradd [option] username

useradd �CD [option]

useradd -D

选项详解

-r 创建系统用户

-u UID :指定UID

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

-c ‘COMMENT’指定一段描述

-d /PATH/TO/SOMEWHERE:指定用户的主目录路径:此位置不能事先存在,否则,其用户相关配置文件将被复制:/etc/sk1

-s SHELL,设定用户的默认shell

cat /etc/shells

-G GID 指定所属的附加组,此组必须事先存在

-M 不为用户创建家目录

 

示例:

创建一个用户Oracle, ,ID号为3000.家目录为/home/database,并指定描述‘data admin’

[root@localhost ~]# useradd -u 3000 -d /home/database -c 'sql admin' Oracle

[root@localhost ~]# cat /etc/passwd //查看用户属性

Oracle:x:3000:3000:sql admin:/home/database:/bin/bash

 

 

 

创建用户并分配组示例:

[root@localhost ~]# useradd -g sq1 Oracle1 //创建用户Oracle1 分配到基本组sql1

useradd: group 'sq1' does not exist

[root@localhost ~]# useradd -G sq2 Oracle1  //创建用户Oracle1 分配附加组sql2

useradd: group 'sq2' does not exist

 

从上个案例不难看出创建用户并分配到相应组,此组必先事先存在如不存在将无法进行用户创建工作(关于组的创建详见本文3.

上面的示例可以让我们了解到,系统其实已经规范好了一些新增用户时的参数了,像我没有指定用户的家目录,也没有指定用户的 UID GID 可是系统会帮我们为用户加上,同时其默认shell被设置成了 /bin/bash ,也让我知道了,使用 useradd 命令一定要有 root 权限。那么, useradd 去新增用户时,其默认值是多少呢?

使用上面所说的 useradd -D 参数可以显示和修改默认值,各位可以看出,其值完全与 /etc/default/useradd 这个文件里面的内容相同。原来在 linux 中使用 useradd 去新增用户时,一些在 /etc/passwd 中的值是会去参考 /etc/default/useradd 这个文件的。其文件内容基本如下:

[root@localhost ~]# cat /etc/default/useradd  //查看useradd文件

# useradd defaults file

GROUP=100                            //基本组ID

HOME=/home                           //家目录路径

INACTIVE=-1                  //密码过期的宽限时间,对应 /etc/shadow 的第七列

EXPIRE=                     //账号失效时间对应/etc/shadow第八列

SHELL=/bin/bash              //默认使用的shell

SKEL=/etc/skel               //用户家目录里面的内容参照文件

CREATE_MAIL_SPOOL=yes               //建立使用者的mailbox

 

usermod :用户属性修改

-u UID   用户UID

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

-G GID 修改用户所属的附加组 同时使用-a-追加附加组的选项

-s SHELL  设定用户的默认shell

-c 'COMMENT'注释信息

-d HOME:修改用户的家目录为新的位置时,用户原来的文件时不会被移动到新家的 -m选项可实现同时将其文件新的家目录

-l LOGIN 修改用户名

-L lock user 锁定用户无法登录

-U unlock user 解锁

 

示例:

修改用户OracleOracle1ID号为4000.家目录为/home/database1,并指定描述‘SQL Admin1’

usermod  -l Oracle1 Oracle -u 4000 -md /home/database1 -c 'SQL Admin1'

usermod:目录 /home/database1 不存在   //无需理会

[root@localhost ~]# cat /etc/passwd //查看用户属性

Oracle1:x:4000:3000:SQL Aadmin1:/home/database1:/bin/bash

passwd :给用户添加密码

-n 最短使用期限

-x maxdays 默认999999 存活时间

-w warndays 警告时间

-i inactivadays

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

 

示例:

[root@localhost ~]# echo '123.com' | passwd --stdin Oracle1

更改用户 Oracle1 的密码    

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

userdel

 

-r 删除用户家目录

-f 强制删除,包括正在登陆的用户也可删除,删除后SSH不会断开,当用户登出后将不能再登陆。

 

示例:

[root@localhost ~]# userdel -r Oracle1   //删除Oracle1用户

userdel: Oracle1 邮件池 (/var/spool/mail/Oracle1) 未找到

 

id:查看用户相关的id信息

-u 仅显示 用户的UID

-g GID    ID

-G groups 用户所属组

-nname 用户登录名

[root@localhost ~]# id yuqian

uid=1000(yuqian) gid=1000(yuqian) =1000(yuqian)

 

su:switch user 切换用户或以其他用户的身份执行命令切换方式

 

su  USERNAME :非完全切换 非登录切换

su - USERNAME su -l USERNAME :完全切换

su - USERNAME -C 'COMMAND' 仅以指定用户的身份执行指定的命令

 

 

示例

[root@localhost ~]# su - yuqian -c ls /home/yuqian     //临时使用yuqian权限访问/home/yuqian

公共  模板  视频  图片    文档  下载  音乐  桌面

 

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

-l 查看shell列表

-s 更改或指定用户shell路径

 

[root@localhost ~]# chsh �Cl     查看shell

/bin/sh

/bin/bash

/sbin/nologin

/usr/bin/sh

/usr/bin/bash

/usr/sbin/nologin

/bin/tcsh

/bin/csh

[root@localhost ~]# chsh -s /bin/bash gentoo //更改gentoo用户shell路径//bin/bash

Changing shell for gentoo.

chsh: Shell not changed.

 

chfn修改用户的注释信息

-f, --full-name full-name

      用户全名

-o, --office office

      办公室电话

-p, --office-phone office-phone

       办公电话

-h, --home-phone home-phone

     家庭电话

 

chage: 修改用户账户及密码的属性

-d LAST_DAY 修改用户最近一次修改密码的时间

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

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

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

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

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

 

[root@localhost ~]# chage -l yuqian   //查看用户yuqian 注释信息

最近一次密码修改时间                                   8 20, 2015

密码过期时间                                   :从不

密码失效时间                                   :从不

帐户过期时间                                          :从不

两次改变密码之间相距的最小天数           0

两次改变密码之间相距的最大天数           99999

在密码过期之前警告的天数       7

 

修改用户注释信息:修改密码的日期2014/9/29 密码保存有效最大天数20,警告时间7 密码更改最小天数9 

[root@localhost ~]# chage -d 2014-8-29 -M 20 -W 7 -m 9 yuqian

[root@localhost ~]# chage -l yuqian

最近一次密码修改时间                                   8 29, 2014

密码过期时间                                   9 18, 2014

密码失效时间                                   9 21, 2014

帐户过期时间                                          :从不

两次改变密码之间相距的最小天数           9

两次改变密码之间相距的最大天数           20

在密码过期之前警告的天数       7

 

3.2   组管理命令

groupadd 创建组

 

-g GID 指明组ID

-r 创建系统组

 

[root@localhost ~]# groupadd test1

[root@localhost ~]# cat /etc/group

test1:x:3003:

 

groupmod: 组属性修改

 

-n 修改组名称

-g 修改GID

 

示例:

[root@localhost ~]# groupmod -n test2 test1 //修改test1 组名为test2

[root@localhost ~]# tail /etc/group

test2:x:3003:

 

 

gpasswd 修改用户组内成员、管理员等,不加任何选项时则为group设置密码

 

-a:添加用户到组;
-d
:从组删除用户;
-A
:指定管理员;
-M
:指定组成员和-A的用途差不多;
-r
:删除密码;

-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。

 

示例:

[root@localhost ~]# gpasswd yuqian          //yuqian组添加密码

正在修改 yuqian 组的密码

新密码:

请重新输入新密码:

[root@localhost ~]# gpasswd -a yuqian test2 

正在将用户“yuqian”加入到“test2”组中

[root@localhost ~]# id yuqian             //查看用户yuqian id信息

uid=1000(yuqian) gid=1000(yuqian) =1000(yuqian),3003(test2)

 

newgrp :切换基本组为指定组。例如用户需要运行一个程序,但是没有权限时,可临时切换进该程序的所有组,让用户临时拥有改组的权限,当用户临时加入该组后创建的文件的属组也会是这个组,提前是要先用gpasswd为用户组创建密码

示例

[root@localhost ~]# gpasswd yuqian //yuqian组添加密码

正在修改 yuqian 组的密码

新密码:

请重新输入新密码:

[root@localhost ~]# useradd testuser   //添加用户testuser

[root@localhost ~]# passwd testuser   //为用户testuser 添加密码

更改用户 testuser 的密码

新的 密码:

重新输入新的 密码:

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

 [root@localhost ~]# su -l testuser     //切换用户testuser

上一次登录:六 8 29 09:18:49 CST 2015pts/1

[testuser@localhost ~]$ id           // 查看用户ID信息

uid=1003(testuser) gid=3002(testuser) =3002(testuser) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

[testuser@localhost ~]$ newgrp yuqian  //使用newgrp 临时切换到yuqian

密码:

[testuser@localhost ~]$ id                //查看id ,gid已经变成yuqian

uid=1003(testuser) gid=1000(yuqian) =3002(testuser),1000(yuqian) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

 

 

groupdel :删除指定组,如果组内拥有用户则需要删除用户方可删除组。

你可能感兴趣的:(linux,style,用户)