linux用户和组管理

linux系统是一个多用户的系统,每个账号都干什么用,你必须了如指掌。

【Linux用户】

即UID分为两大类:管理员 UID:0

                              普通用户 UID:1-65535

普通用户又分为:系统用户和登录用户两种:

                              系统用户:1-499(centos6系统)1-999(centos7系统)一般来说,每个系统进程都对应一个系统用户,进行权限分配;

                              登录用户:500+(centos6)1000+(centos7)通过交互式方式登录

【Linux组GID】

        管理员组:root 0

             普通组:1-65535

  普通组又分为系统组和非系统组

             系统组:1-499(centos6)1-999(centos7)

             非系统组:500+(centos6)1000+(centos7)

一个用户可以有多个不同的组:基本组(主组)和附加组(额外组)。

    基本组组名和用户名相同,且仅包含一个用户,也叫私有组。基本组以外的组属于附加组

【用户和组的配置文件】

/etc/passwd  记录用户属性信息

内容由冒号分割成7个字段,每个字段的具体含义是:

用户名:密码:UID:GID:用户的详细信息:用户的家目录:用户的默认shell

/etc/shadow  记录用户密码信息

内容由逗号分成9个字段

    用户名:加了密的密码:最近一次更改密码的日期:密码的最小使用期限:密码的最大使用期限:密码的警告时间段:密码禁用期:账户的过期日期:保留字段

/etc/group  记录组的属性信息

组名:组密码:组id:以当前组为附加组的用户列表(如果有多个,则以逗号隔开)

/etc/gshadow 组密码及其相关属性  

组名:组密码(一般没有)

Linux中密码的格式: 

mage1:$6$4kW6f7Qr0GFvqh$nryByGweKuNWKvr7ZZwszgojqtktU7KpjsV9E/M/wH5/7MDelx1Nft7m6Zl6xhoScT4PNSNEva6p90S/cZM6s.::

用户名:$为分隔符 6表示加密算法 后面两$之间的字符表示salt(如果有两个相同的密码,加入不同的salt就会生成截然不同的字符串,也就是后面的一长串字符)

                                                     用户命令

创建用户:useradd

-u:指定UID号

-o:配合-u选项,不检查UID的唯一性

-g:GID,指明用户所属基本组,可为组名,也    可以为GID

-c:用户的注释信息

-d:以指定的路径(必须不存在)为家目录

-s:指明用户的默认shell程序

-G:指明附加组,组必须事先存在,多个用,分割

-N:不创建私有组做主组,使用users做主组

-r:创建系统用户 centos6:ID<500

                 centos7:ID<1000

-D:显示默认设置

-D -s SHELL:更改默认设置

修改用户属性: usermod

usermod[OPTION] login

-u UID: 新UID

-g GID: 新基本组

-G GROUP1[,GROUP2,…[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项,表示append;

-s SHELL:新的默认SHELL;

-c 'COMMENT':新的注释信息;

-d HOME: 新家目录不会自动创建,原家目录中的文件不会同时移动至新的家目录;若要创建新家目录并移动原家数据,同时使用-m‎选项

-l login_name: 新的名字;

-L: lock指定用户,在/etc/shadow 密码栏的增加!

-U: unlock指定用户,将/etc/shadow 密码栏的! 拿掉

-e YYYY-MM-DD: 指明用户账号过期日期;

-f INACTIVE: 设定非活动期限(账号过期宽容时间);

删除用户 userdel

-r 同时删除家目录

查看用户信息

 id命令

id username             #查看指定用户的组信息

-u:UID

-g:GID

-G:group

-n:name

cat /etc/passwd         #查看用户属性信息

getent passwd           #查看用户属性信息

getent passwd username  #查看指定用户属性信息

设置密码

passwd[OPTIONS] UserName: 修改指定用户的密码,仅root用户权限

passwd: 修改自己的密码;

常用选项:

-l:锁定指定用户

-u:解锁指定用户

-e:强制用户下次登录修改密码

-n mindays: 指定最短使用期限

-x maxdays:最大使用期限

-w warndays:提前多少天开始警告

-iinactivedays:非活动期限;

echo "123456" | passwd–stdin 用户名

                                                              【组】

新建组

groupadd[OPTION]… group_name

-g GID: 指明GID号;[GID_MIN, GID_MAX]

-r: 创建系统组;

修改组属性:groupmod

groupmod[OPTION]… group

-n group_name: 新名字

-g GID: 新的GID

删除组:groupdel

groupdel GROUP

组密码:gpasswd

gpasswd[OPTION] GROUP

-a user: 将user添加至指定组中;

-d user: 从指定组中移除用户user

-A user1,user2,…: 设置有管理权限的用户列表

查看组信息

groupmems[options] [action]

options:

-g, –group groupname更改为指定组(只有root)

Actions:

-a, –add username 指定用户加入组

-d, –delete username 从组中删除用户

-p, –purge 从组中清除所有成员

-l, –list 显示组成员列表

groups username 查看用户所属组列表

[root@si ~]# groupmems -l  -g mage1   #查看组成员

zhangsan  lisi 

                                           命令小技巧


为用户添加附加组

通常会覆盖掉以前的附加组,用下面的命令则会追加而不是覆盖

usermod –aG root,ftp username

usermod -G " " username 则会清空所有附加组

当我们需要批量添加用户的时候,不可能一个个的建,这时候就会用到下面的命令

批量添加用户newuser

vi user添加内容按/etc/passwd格式

newuser user

批量建立的没有密码

用cat pass.txt | chpasswd 命令批量修改

vi pass.txt添加如下

zhangsan:123

lisi:888

wagwu:000000

当我们不小心删除家目录或者使用useradd -d 指定家目录路径时,先给他创建了一个家目录,这时

[root@sibo1 testdir]# userdel -r wangwu

[root@sibo1 testdir]# mkdir wangwu

[root@sibo1 testdir]# useradd -d /testdir/wangwu wangwu

useradd: warning: the home directory already exists.

Not copying any file from skel directory into it.   #系统会提示:没有从skel目录复制任何文件到里面,所以我们就要手动复制

[root@sibo1 testdir]# getent passwd wangwu

wangwu:x:503:510::/testdir/wangwu:/bin/bash

[root@sibo1 testdir]# 

[root@sibo1 testdir]# ls -a wangwu/

.  ..

[root@sibo1 testdir]#

 

修复家目录

cp –r /etc/skel/.[^.]* /home/sibo

cp -r /etc/skel/. /home/lisi


最后给大家写点小东西娱乐一下linux用户和组管理

blob.png

修改描述信息chfn:在这里我们可以定制属于我们自己的个人信息

blob.png


查看描述信息:finger 用户名

原创文章,作者:cszdz123,如若转载,请注明出处:http://www.178linux.com/29103

(0)
cszdz123cszdz123
上一篇 2016-08-05 16:13
下一篇 2016-08-05 16:13

相关推荐

  • 马哥教育网络班第19期+第7周课程练习

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; 2、创建一个大小为1G的swap分区,并创建好文件系统,并启用之; 3、写一个脚本  …

    Linux干货 2016-08-08
  • Linux的哲学思想

    初学Linux,了解一下Linux的哲学思想,对学习Linux还是非常有帮助的。 在了解Linux的哲学思想之前,可以先考虑一下,现在我们所学的Linux系统到底是面向什么应用场景而研发和使用的?个人认为:面向企业,是一个服务器操作系统。其所关注的地方是:高性能、可靠性、易维护性。 基于上述方面的考虑,Linux系统在构建和设计的时候,遵循了如下的哲学思想进…

    Linux干货 2017-08-30
  • 第五周作业

    1、显示当前系统上root,fedora或user1用户的默认shell。 [root@hostname ~]# grep -E ‘^(root|fedora|user1)’ /etc/passwd | cut -d: -f1,7 root:/bin/bash 2、找出/etc/rc.d/init.d/functions文件中某词后面跟一组小括号的行,形如:…

    Linux干货 2017-08-04
  • 第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@centos7 ~]# cp -r /etc/skel/ /home/tuser1 [root@centos7 ~]# chmod …

    Linux干货 2017-01-16
  • 2016/08/11:初涉shell脚本编程

    感悟 :    经过对文本处理工具grep,sed等内容的,以及vim文本编辑器的学习,马不停蹄的又进行了对shell脚本的学习。对shell脚本的认识是可以保存在本地,用的时候只要执行相关脚本,简短的命令就可以完成操作,可以用来应对日常重复性工作,有效提高系统管理员的效率,避免在重复性工作上花费不必要的时间。 *************…

    Linux干货 2016-08-16
  • MySQL半同步配置

    先配置主从服务器,过程见另一篇博库 就是先搭一个主从服务器,然后 1、先在主节点上安装半同步复制的主节点专用插件 MariaDB [(none)]> SHOW PLUGINS;这条命令可以查看有哪些插件可以用 2、从节点也一样先装插件 从节点上先停止线程 STOP SLAVE; 主节点上 从节点上 START SLAVE; 这里需要手动的停止一下线程,…

    Linux干货 2016-11-21