LINUX用户和用户组

系统环境:CentOS Linux release 7.3.1611 x86_64 GNU/Linux

查看所有用户信息

$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
...
rethink:x:1001:1001::/home/rethink:/bin/bash
jenkins:x:1002:1002::/home/jenkins:/bin/bash

$ cat /etc/passwd | grep jenkins
jenkins:x:1002:1002::/home/jenkins:/bin/bash
#字段格式说明:
`用户名:密码:用户UID:用户组GID:备注:用户家目录:用户默认shell`

/etc/passwd 所有用户都有读权限,但只有管理员有写权限,每一行都表示一个用户。第三个字段表示用户UID,0表示管理员root,1~500表示系统用户,501-65535表示普通用户,不同的Linux发行版,可能会有所差别。最后一个字段表示用户默认shell的路径,系统用户默认shell一般为/sbin/nologin,表示该用户不可登录。

第二个字段是用户的密码,x是占位符,用户真正的密码是密文保存在/etc/shadow文件中的,这个文件只有管理员可读。

# cat /etc/shadow
root:$1$7TJOo0N3$jWOx8FmXcEMN88gdGISg0/::0:99999:7:::
rethink:$6$/XN/F6Eu$yAwE5WN811EnmyLEa.k02MbYCDVw/vWlqn57QItruVRWMpVQGL1LLcg3xbOKhLGpiQ8f/6S7DKt.GJntPu7Kn/:17620:0:99999:7:::
jenkins:$6$oIK6zhjM$GVOCRHB4X1XU.iUhEHi5LHmuv06HFWub7dz7IRT7hHTanKffyBFXyGGZ5mIXt8gD40kB18KdHTZEH4xbOXjFP1:17645:0:99999:7:::

/etc/shadow文件中各个字段对应的含义,可以通过man 5 shadow命令来查看。

用户管理命令

使用--help参数,可查看命令更多详细介绍;

  • 添加新用户:useradd
# useradd test
# cat /etc/passwd | grep test
test:x:1004:1004::/home/test:/bin/bash

以上可以看到,useradd命令确实新增了一个新用户:test,并且系统会自动设置用户的一些属性,如UID,GID,HOME,SHELL HOME等。我们也可以创建新用户时指定这些信息:

useradd -u UID:指定新用户的UID,这个UID必须大于500,并且没有被其他用户占用;
useradd -g GID/GROUP_NAME:指定用户所属组,可以是GID或GROUPNAME,用户组必须是真实存在的;
useradd -G GROUPS:指定附属用户组;
useradd -c COMMENT:指定用户的备注信息
useradd -d PATH:指定用户的家目录
useradd -s SHELL:指定用户的默认shell
useradd -s /sbin/nologin:该用户不可登录,和系统用户最后一个字段的值相同

在使用useradd命令创建用户的时侯可以用-g 和-G 指定用户所属组和附属组。
基本组:如果没有指定用户组,创建用户的时候系统会默认同时创建一个和这个用户名同名的组,这个组就是基本组,不可以把用户从基本组中删除。在创建文件时,文件的所属组就是用户的基本组。
附加组:除了基本组之外,用户所在的其他组,都是附加组。用户是可以从附加组中被删除的。
用户不论为与基本组中还是附加组中,就会拥有该组的权限。一个用户可以属于多个附加组。但是一个用户只能有一个基本组。

  • 设置用户的认证信息: passwd,包括用户密码、密码过期时间等

普通用户只能修改自己的密码,直接运行passwd即可 。新建用户后,若要为新用户创建密码,可使用 passwd USERNAME

# passwd test
Changing password for user test.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.
  • 删除用户: userdel
# userdel USERNAME
`删除用户的同时删除用户HOME目录`
# userdel -r USERNAME 
  • 修改用户属性信息: usermod
Usage: usermod [options] LOGIN

Options:
  -c, --comment COMMENT         new value of the GECOS field
  -d, --home HOME_DIR           new home directory for the user account
  -e, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE
  -f, --inactive INACTIVE       set password inactive after expiration
                                to INACTIVE
  -g, --gid GROUP               force use GROUP as new primary group
  -G, --groups GROUPS           new list of supplementary GROUPS
  -a, --append                  append the user to the supplemental GROUPS
                                mentioned by the -G option without removing
                                him/her from other groups
  -h, --help                    display this help message and exit
  -l, --login NEW_LOGIN         new value of the login name
  -L, --lock                    lock the user account
  -m, --move-home               move contents of the home directory to the
                                new location (use only with -d)
  -o, --non-unique              allow using duplicate (non-unique) UID
  -p, --password PASSWORD       use encrypted password for the new password
  -R, --root CHROOT_DIR         directory to chroot into
  -s, --shell SHELL             new login shell for the user account
  -u, --uid UID                 new UID for the user account
  -U, --unlock                  unlock the user account
  -Z, --selinux-user SEUSER     new SELinux user mapping for the user account
  • 检索用户属性信息: id
# id jenkins
uid=1002(jenkins) gid=1002(jenkins) groups=1002(jenkins)
`显示用户UID`
#id -u USERNAME
`显示用户默认组ID`
#id -g USERNAME
`显示用户附加组ID`
#id -G USERNAME
`显示用户/默认组/附加值的名称`
#id -n -g/-G/-u USERNAME
  • 检索用户属性信息 : finger,显示格式比id命令更加友好
`安装finger命令`
# yum install finger -y

# finger
Login     Name       Tty      Idle  Login Time   Office   Office Phone   Host
root      root       pts/0          Jun 28 16:28                         (101.81.92.18)

# finger jenkins
Login: jenkins                  Name: 
Directory: /home/jenkins                Shell: /bin/bash
Last login Wed Jun 27 19:05 (CST) on pts/0
No mail.
No Plan.

# finger -s jenkins
Login     Name       Tty      Idle  Login Time   Office     Office Phone   Host
jenkins              pts/0       *  Jun 27 19:05   

查看所有用户组信息

$ cat /etc/group
root:x:0:
bin:x:1:
...
rethink:x:1001:
jenkins:x:1002:
docker:x:1003:

#字段说明
`组名:组密码:GID:以group_name为附加组的用户列表`

# cat /etc/group | grep test:x
test:x:1005:test4,test5

Linux下,每个用户都有一个用户组,系统可以对用户组中的所有用户进行集中的权限管理。当创建用户时,如果没有为其指明所属组,则就为其定义一个私有的用户组,其名称与用户名相同。私有组可以变成普通用户组,当把其他用户加入到该组中时,其就变成了普通用户组。

用户组管理命令

  • 添加新用户组:groupadd
# groupadd bbox
# cat /etc/group|grep bbox
bbox:x:1011:
  • 删除用户组: groupdel
# groupdel bbox
# cat /etc/group|grep bbox
# 
  • 重命名用户组:groupmod
`命令格式:groupmod -n new_name old_name`
# groupmod -n test_1 test
# cat /etc/group|grep test_1
test_1:x:1005:test4,test5

补充命令

  1. who命令、whoami命令、who am i命令和w命令
# who
root     tty1         2018-06-28 18:18
root     pts/0        2018-07-03 17:43 

# who am i
root     pts/0        2018-07-03 17:43 

# su - docker
Last login: Mon Jul  2 18:51:11 CST 2018 on pts/0

$ whoami
docker

$ who am i
root     pts/0        2018-07-03 17:43 

$ who
root     tty1         2018-06-28 18:18
root     pts/0        2018-07-03 17:43 

$ w
 18:32:24 up 5 days, 15 min,  2 users,  load average: 0.00, 0.02, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      Thu18    4days  0.10s  0.10s -bash
root     pts/0    101.81.92.18     17:43    0.00s  0.00s  0.00s w

总结如下 :

  • whoami 显示的是当前操作用户的用户名
  • who am i显示的是登录时的用户名 ,此命令相当于who -m
  • who 显示当前真正登录系统中的用户(不会显示那些用su命令切换用户的登录者)
  • w 不但可以显示有谁登录到系统,还可以显示出这些用户当前正在进行的工作,并且统计数据相对who命令来说更加详细 ;
  1. Linux切换用户命令:su
    su是单词switch user的缩写。通过su命令,可以从普通用户切换到root用户,也可以从root用户切换到普通用户。从普通用户切换到root用户需要密码(该密码是普通用户的密码,但从root用户切换到普通用户不需要密码。
    susu -的区别

su - root is the same as su - just like login as root,then the shell is login shell,which mean it will expericene a login process,usually .bash_profile and .bashrc will be sourced. su root is the same as su like you open an interactive shell in root name,then only .bashrc will be sourced.
su命令只是切换到了root身份,但shell工作环境仍然是普通用户的环境;而su - 命令会将用户身份和shell环境一起切换到root,只有切换了shell环境才不会出现PATH环境变量的错误。su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。所以要从当前用户切换到其它用户时,应该使用su -命令。如:

$ whoami
docker

$ su root
Password: 

# echo $PWD
/home/docker

# su - root
Last login: Tue Jul  3 18:54:23 CST 2018 on pts/1
[root@JDu4e00u53f7 ~]# echo $PWD
/root
`用户的HOME目录已经改变了`

【To be continued...】

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容