CentOS 7 用户管理3 - 用户和组

用户

etc/passwd存放用户名与用户ID的对应关系,相当于一个数据库

[yxkong@localhost~]$tail/etc/passwd

rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin

radvd:x:75:75:radvduser:/:/sbin/nologin

chrony:x:994:993::/var/lib/chrony:/sbin/nologin

pulse:x:171:171:PulseAudioSystemDaemon:/var/run/pulse:/sbin/nologin

gdm:x:42:42::/var/lib/gdm:/sbin/nologin

gnome-initial-setup:x:993:991::/run/gnome-initial-setup/:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

sshd:x:74:74:Privilege-separatedSSH:/var/empty/sshd:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

yxkong:x:1000:1000:yxkong:/home/yxkong:/bin/bash

用户名:密码:用户ID(uid):主要组ID(gid):GECOS:主目录:登录shell

用户分为三类:

普通用户

普通用户是使用系统的真实用户人群。通常把/bin/bash作为登录Shell,把/home的子目录作为主目录。普通用户的用户ID数通常>=500

根用户

用户ID=0是为根用户保留的,根用户有时称作超级用户。具有系统上的完全权限,通常使用/root作为主目录

系统用户

大多数Linux系统保留一系列低UID值用户作为系统用户。系统用户不代表人,而代表系统的组成部分

用户和他们所运行的程序,以及他们所拥有的文件都属于一个组的集合。组成员身份允许系统管理员有效的管理具有相似对象的用户。每个用户都隶属于一个主要组。用户可以不属于或属于多个次要组。

etc/group文件

[yxkong@localhost~]$vim/etc/group

root:x:0:yxkong

bin:x:1:

daemon:x:2:

wheel:x:10:yxkong

cdrom:x:11:

mail:x:12:postfix

#组名称组密码组ID(GID)组成员

每个文件都有一个用户所有者和一个组所有者、主要组和次要组,文件创建者的默认组称为主要组。

检查用户信息

id命令用于显示用户信息和组信息

[yxkong@localhost~]$id--help

Usage:id[OPTION]...[USER]

PrintuserandgroupinformationforthespecifiedUSER,

or(whenUSERomitted)forthecurrentuser.

-aignore,forcompatibilitywithotherversions

-Z,--contextprintonlythesecuritycontextofthecurrentuser

-g,--groupprintonlytheeffectivegroupID(只打印有效的组ID)

-G,--groupsprintallgroupIDs(打印所有组)

-n,--nameprintanameinsteadofanumber,for-ugG(打印用户或组名称,而不是数字,需要配合-ugG,不能单独使用)

-r,--realprinttherealIDinsteadoftheeffectiveID,with-ugG

-u,--userprintonlytheeffectiveuserID(只打印有效的用户ID)

-z,--zerodelimitentrieswithNULcharacters,notwhitespace;

notpermittedindefaultformat

--help显示此帮助信息并退出

--version显示版本信息并退出

如果不附带任何选项,程序会显示一些可供识别用户身份的有用信息。

[yxkong@localhost~]$id#直接打印当前登录用户信息

uid=1000(yxkong)gid=1000(yxkong)组=1000(yxkong),0(root),10(wheel)环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

[yxkong@localhost~]$idroot#打印指定用户的信息

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

whoami用于获取当前用户名

[yxkong@localhost~]$whoami

yxkong

who、users和w命令用于获取正在会话中的用户

users打印当前登录用户简单列表

[yxkong@localhost~]$users#虚拟机没有登录

(unknown)yxkong

[yxkong@localhost~]$users#虚拟机以root登录后

rootyxkong

w打印当前所有登录系统用户的信息,可以具体指定用户

[yxkong@localhost~]$w--help

Usage:

w[options]

Options:

-h,--no-headerdonotprintheader(跳过标题)

-u,--no-currentignorecurrentprocessusername()

-s,--shortshortformat(简短列表)

-f,--fromshowremotehostnamefield(不要显示"FROM"字段)

-o,--old-styleoldstyleoutput

-i,--ip-addrdisplayIPaddressinsteadofhostname(ifpossible)

--helpdisplaythishelpandexit

-V,--versionoutputversioninformationandexit

Formoredetailsseew(1).

[yxkong@localhost~]$w#虚拟机没有登录

08:39:30up26min,2users,loadaverage:0.39,0.50,0.31

USERTTYLOGIN@IDLEJCPUPCPUWHAT

yxkongpts/008:152.00s0.17s0.02sw

[yxkong@localhost~]$w

08:44:25up30min,2users,loadaverage:0.42,0.33,0.27

USERTTYLOGIN@IDLEJCPUPCPUWHAT

yxkong:008:44?xdm?19.18s0.10sgdm-session-worker[pam/gdm-password]

yxkongpts/008:151.00s0.17s0.01sw

USER:登录用户的用户名

TTY:用户登录的终端

FROM:如果用户从网上登录,用户使用的主机名

LONGIN@:用户开始会话的时间

IDLE:终端已经空闲的时间

JCPU:与终端会话相关,所有当前运行进程消耗的CPU时间总量

WHAT:用户当前运行进程

who即提供了当前登录用户的详细信息(类似于w),也可以用来报告系统事件,如当前运行级别、系统时钟调整

[yxkong@localhost~]$who--help

用法:who[选项]...[文件|参数1参数2]

显示当前已登录的用户信息。

-a,--all等于-b-d--login-p-r-t-T-u选项的组合

-b,--boot上次系统启动时间

-d,--dead显示已死的进程

-H,--heading输出头部的标题列

-l,--login显示系统登录进程

--lookup尝试通过DNS查验主机名

-m只面对和标准输入有直接交互的主机和用户

-p,--process显示由init进程衍生的活动进程

-q,--count列出所有已登录用户的登录名与用户数量

-r,--runlevel显示当前的运行级别

-s,--short只显示名称、线路和时间(默认)

-T,-w,--mesg用+,-或?标注用户消息状态

-u,--users列出已登录的用户

--message等于-T

--writable等于-T

--help显示此帮助信息并退出

--version显示版本信息并退出

[yxkong@localhost~]$who#虚拟机没有登录

(unknown):02014-10-1108:37(:0)

yxkongpts/02014-10-1108:15(10.200.1.24)

[yxkong@localhost~]$who#虚拟机以root登录后

root:02014-10-1108:35(:0)

yxkongpts/02014-10-1108:15(10.200.1.24)

身份切换

su命令让用户切换用户(switchuser)ID

[yxkong@localhost~]$su--help

用法:

su[选项][-][USER[参数]...]

将有效用户id和组id更改为USER的id。

单个-视为-l。如果未指定USER,将假定为root。

选项:

-m,-p,--preserve-environment不重置环境变量(临时保持当前设置的环境)

-g,--group<组>指定主组

-G,--supp-group<组>指定一个辅助组

-,-l,--login使shell成为登录shell

-c,--command<命令>使用-c向shell传递一条命令(运行指定命令,然后返回)

--session-command<命令>使用-c向shell传递一条命令

而不创建新会话

-f,--fast向shell传递-f选项(csh或tcsh)

-s,--shell<shell>若/etc/shells允许,则运行shell(用SHELL作为新用户的Shell)

-h,--help显示此帮助并退出

-V,--version输出版本信息并退出

su命令通过常用字符串调用,例如:su-,指明用户应该作为新用户有效登录。

例如:

su用户名只是临时使用对应的用户的Shell,用完后直接su当前登录名可以退回来

[yxkong@localhost~]$suroot

密码:

[root@localhostyxkong]##新Shell称为用户root的Shell,在这个shell上启动的任何进程都属于root,这个Shell称为非登录Shell。root并没有完全登录,

su–用户名该用户作为新用户完全登录,和原来的用户没有任何关系了

[yxkong@localhost~]$su-root

密码:

上一次登录:一10月1308:37:27CST2014pts/1上

[root@localhost~]#

[yxkong@localhost~]$su#不加任何参数临时切换到根用户

密码:

[root@localhostyxkong]#su-#永久性的切换

密码:

上一次登录:一10月1308:47:26CST2014pts/1上

[root@localhost~]#

newgrp命令,也称作sg,让用户切换主要组(switchprimarygroup)ID

用法:

[yxkong@localhost~]$sg--help

用法:sg组[[-c]命令]

查看到yxkong的主要组是yxkong

[yxkong@localhost~]$id

uid=1000(yxkong)gid=1000(yxkong)组=1000(yxkong),0(root),10(wheel)环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

[yxkong@localhost~]$sgroot

执行命令后查看到yxkong的主要组已经变成了root了

[yxkong@localhost~]$id

uid=1000(yxkong)gid=0(root)组=1000(yxkong),0(root),10(wheel)环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

相关推荐