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

1    前言

本文档主要介绍用户及组管理类相关命令如:useradd 、usermod、passwd、userdel、groupadd、groupmod\gpasswd、groupdel、hage,chsh,chfn,、id,w,who,whoami、wck,gourpck、su,并提供相应案例解释其含义。

学习这些基础命令是一个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 、usermod、passwd、userdel

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

标准用法:

useradd [option] username

useradd –D [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’

[[email protected] ~]# useradd -u 3000 -d /home/database -c ‘sql admin‘ Oracle

[[email protected] ~]# cat /etc/passwd //查看用户属性

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


创建用户并分配组示例:

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

useradd: group ‘sq1‘ does not exist

[[email protected] ~]# 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 这个文件的。其文件内容基本如下:


[[email protected] ~]# 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 解锁


示例:

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

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

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

[[email protected] ~]# cat /etc/passwd //查看用户属性

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

passwd :给用户添加密码


-n 最短使用期限

-x maxdays 默认999999天 存活时间

-w warndays 警告时间

-i inactivadays

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


示例:

[[email protected] ~]# echo ‘123.com‘ | passwd --stdin Oracle1

更改用户 Oracle1 的密码 。

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

userdel


-r 删除用户家目录

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


示例:

[[email protected] ~]# userdel -r Oracle1   //删除Oracle1用户

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

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


-u 仅显示 用户的UID

-g GID    组ID

-G groups 用户所属组

-n:name 用户登录名

[[email protected] ~]# id yuqian

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

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


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

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

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


示例

[[email protected] ~]# su - yuqian -c ls /home/yuqian     //临时使用yuqian权限访问/home/yuqian

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

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


-l 查看shell列表

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


[[email protected] ~]# chsh –l     查看shell

/bin/sh

/bin/bash

/sbin/nologin

/usr/bin/sh

/usr/bin/bash

/usr/sbin/nologin

/bin/tcsh

/bin/csh

[[email protected] ~]# 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 用户密码到期前,提前收到警告信息的天数。


[[email protected] ~]# chage -l yuqian   //查看用户yuqian 注释信息

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

密码过期时间                                   :从不

密码失效时间                                   :从不

帐户过期时间                                          :从不

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

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

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

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

[[email protected] ~]# chage -d 2014-8-29 -M 20 -W 7 -m 9 yuqian

[[email protected] ~]# chage -l yuqian

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

密码过期时间                                   :9月 18, 2014

密码失效时间                                   :9月 21, 2014

帐户过期时间                                          :从不

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

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

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

3.2   组管理命令

groupadd 创建组


-g GID 指明组ID

-r 创建系统组


[[email protected] ~]# groupadd test1

[[email protected] ~]# cat /etc/group

test1:x:3003:

groupmod: 组属性修改


-n 修改组名称

-g 修改GID


示例:

[[email protected] ~]# groupmod -n test2 test1 //修改test1 组名为test2

[[email protected] ~]# tail /etc/group

test2:x:3003:

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


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

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


示例:

[[email protected] ~]# gpasswd yuqian          //为yuqian组添加密码

正在修改 yuqian 组的密码

新密码:

请重新输入新密码:

[[email protected] ~]# gpasswd -a yuqian test2

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

[[email protected] ~]# id yuqian             //查看用户yuqian id信息

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

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


示例

[[email protected] ~]# gpasswd yuqian //为yuqian组添加密码

正在修改 yuqian 组的密码

新密码:

请重新输入新密码:

[[email protected] ~]# useradd testuser   //添加用户testuser

[[email protected] ~]# passwd testuser   //为用户testuser 添加密码

更改用户 testuser 的密码 。

新的 密码:

重新输入新的 密码:

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

[[email protected] ~]# su -l testuser     //切换用户testuser

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

[[email protected] ~]$ id           // 查看用户ID信息

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

[[email protected] ~]$ newgrp yuqian  //使用newgrp 临时切换到yuqian组

密码:

[[email protected] ~]$ 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 :删除指定组,如果组内拥有用户则需要删除用户方可删除组。

时间: 2024-10-10 03:46:38

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

玩转linux第四天之用户及组管理概念(一)

1    前言 本文档主要介绍用户及组管理类相关概念,并提供相应案例解释其含义. 学习这些基础命令是一个Linux爱好者需要具备的首要条件,让小编带领你们进入Linux的世界看看它的一颦一笑. 读者对象 本文档(本指南)主要适用于以下人员: Linux爱好者 2     环境简介 项目 配置 硬件型号 Tinkpad T440P CPU I5-4210 内存 4G 操作系统 Windows 8.1 虚拟系统 Vmware workstation 11 CPU 1Core 内存 1G 操作系统 C

Linux用户和组管理及其相关命令

进程的安全上下文: 进程以其发起者的身份运行 进程对文件的访问权限,取决于发起此进程的用户的权限 系统用户:为了能够让那后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户,这类用户从不用登录系统,仅让其他进程使用其身份运行,从而仅能获取普通权限 groupadd命令:添加组 使用格式:groupadd [选项] group_name 常用选项: -g GID:指定GID:默认是上一个组的GID+1 -r: 创建系统组 groupmod命令:修改组属性 使用格式:groupmo

第四章:用户和组管理

第四章:用户和组管理 1.基本概念 1.1.UID&GID Linux是通过UID和GID号来识别用户和组.对某个文件或程序的访问也是以UID和GID为基础.一个执行中的程序继承了调用它的用户的权利和访问权限. 1.2.Linux用户类型 根用户(0):UID为0的用户,能够访问系统任何文件和程序,而不论root根用户是否有权限.root用户通常称为"超级用户" 系统/服务用户(1-999):UID为1-999.系统保留账号,或者某些服务才能使用的的账号 普通用户(大于1000

linux系统 用户和组管理类命令的使用方法

列出当前系统上所有已经登录的用户的用户名,注意:同一用户登录多次,则只显示一次即可. [[email protected] ~]# who    #显示当前用户登录信息 root    tty1         2016-10-05 15:58 root    pts/0        2016-10-05 16:07(192.168.0.17) [[email protected] ~]# who | cut -d' ' -f1    #取出当前用户登录信息的用户名 root root [[e

Linux用户和组管理类命令

1. 列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可.命令:who | cut -d ' ' -f1|uniq 2. 取出最后登录到当前系统的用户的相关信息.命令:who | tail -1 |cut -d '' -f1 |id 3. 取出当前系统上被用户当作默认shell的最多的那个shell.命令:cut -d: -f7 /etc/passwd |uniq -c |sort -n |tail -n1 4. 将/etc/passwd中的第三个字段数值最大的

用户和组管理类命令

1.列出当前系统上所有已经登陆的用户的用户名,注意:同一个用户登陆多次,则显示一次即可. who |cut -d' ' -f1 | sort | uniq 2.取出最后登陆到当前系统的用户的相关信息 w|tail-n1或者who|tail-n1 3.取出当前系统上被用户当做其默认shell的最多的那个shell cat /etc/passwd | awk -F':' '{print $7}'|uniq –c 结果为:/sbin/nologin awk -F':' '{a[$7]++}END{fo

用户和组管理类命令总结

用户和组管理类命令总结 一.用户管理 1.用户创建:useradd 2.用户属性修改:usermod 3.修改用户属性:chage 4.删除用户:userdel 5.给用户添加密码:passwd 6.切换用户或以其他身份执行:su 二.组管理 7.组创建:groupadd 8.组属性修改:groupmod 9.组删除:groupdel 10.组密码:gpasswd 11.临时切换基本组:newgrp 三.查看信息 12.查看用户相关的ID信息:id 13.其他查看信息的命令:chfn.chsh.

linux基本练习:用户和组管理的相关练习

linux用户和组管理命令的相关练习: 1.创建一个用户mandriva,其ID号为2002,基本组为distro(组ID为3003), 附件组为linux: #groupadd -g 3003 distro #groupadd linux #useradd -u 2002 -g 3003 -G linux mandriva 2.创建一个用户fedora,其全名为Fedora Community,默认shell为tcsh; #useradd -c "Fedora Community"

linux入门之用户和组管理类命令

在学习用户和组管理命令之前,我们首先要了解id这个基本命令,它是为了显示当前用户的身份信息,有用户就不免会牵扯到组的相关概念,那就让我们一起来看有关用户和组的相关命令. 1.id id  当前用户自身信息 语法 id   选项    参数(用户名) 选项与参数 id            用户名     显示指定用户的信息 [[email protected] ~]# id uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:u