用户和组群账户管理

用户的 角色是通过UID(用户ID号)来标识的,每个用户的UID都是不同的。

在Linux系统中有三大类用户,分别是root 用户、系统用户和普通用户。

root用户UID为0。root用户的权限是最高的

在系统中的每个文件、目录和进程都归属于某一个用户,没有用户许可,其它普通用户无法进行操作的,但对root用户除外。

系统用户也称为虚拟用户、伪用户或假用户,这类用户不具有登录Linux系统的能力, 但却是系统运行不可缺少的用户,比如bin、 daemon、adm、ftp、mail等,这类用户都是系统自身拥有的。系统用户的UID为 1~999

这类用户能登录系统,在Linux系统上进行普通操作,能操作自己目录的内容,其使用系统的权限受限,这类用户都是系统管理员创建的。普通用户的UID为1000~60000

/etc/passwd

系统识别用户的重要文件,linux中所有的用户都记录在该文件中

系统首先会检查/etc/passwd文件,看是否有zhangsan这个账户,然后确定用户zhangsan的UID,通过UID来确认用户的身份

如果存在则读取/etc/shadow文件中所对应的密码。如果密码核实无误则登录系统,读取用户的配置文件

任何用户都可以读取/etc/passwd文件内容,在/etc/passwd文件中,每一行表示的是一个用户账户的信息,一行有7个段位,每个段位用“:”分隔。zhangsan:x:1000:1000:张三:/home/zhangsan:/bin/bash

在系统中每一位用户的UID值都是惟一的,更确切地说每一位用户都要对应一个惟一的UID

Linux的发行版本都会预留一定的UID 给系统虚拟用户使用,比如ftp、nobody、adm、 bin以及shutdown等用户账户。

/etc/shadow文件是/etc/passwd的影子文件,这个文件并不是由/etc/passwd文件产生,这两个文件应该是对应互补的。/etc/shadow文件内容包括用户及被加密的密码以及其它/etc/passwd不能包括的信息,比如用户账户的有效期限等。

/etc/shadow文件只有root用可以读取和操作,文件的权限不能随便更改为其它用户可读,这样做是非常危险的。如果发现这个文件的权限变成了其它组群或用户可读了,要进行检查,以防系统安全问题的发生。

/etc/shadow文件的内容包括9个段位,每个段位 之间用“:”分隔。 zhangsan:$6$E/xvWMmh$rhYLQwwffEqIudVLFzMlvkb0iN4.0Ol uk6H.UovEYN0/99dVoHXcaCNGZZkFY1S3QHYgm7e6JPzEew6ybmN 4e0:16364:0:99999:7:::

http://c.biancheng.net/view/840.html

用户账户设置

创建用户账户就是在系统中创建一个新账户,为新账户分配用户UID、组群、主目录 和登录Shell等资源,新创建的用户账户默认是被锁定的,无法使用,需要使用 passwd命令设置密码以后才能使用。

创建用户在/etc/passwd中增加一条记录,同时更新/etc/shadow和/etc/group文件

useradd命令

useradd zhangsan

[root@rhel ~]# cat /etc/passwd|grep zhangsan zhangsan:x:1000:1000::/home/zhangsan:/bin/bash

创建用户moon,并设置该用户UID为1510

[root@rhel ~]# useradd -u 1010 moon

[root@rhel ~]# cat /etc/passwd|grep moon moon:x:1010:1010::/home/moon:/bin/bash

创建用户newuser,并设置该用户主目录为/home/www

[root@rhel ~]# useradd -d /home/www newuser

[root@rhel ~]# cat /etc/passwd|grep newuser newuser:x:1003:1003::/home/www:/bin/bash //查看/etc/passwd文件,可以看到用户newuser的主目录是/home/www

创建用户pp,并指定该用户是属于组群root的成员。

[root@rhel ~]# useradd -g root pp

 id pp

使用id命令,可以看到用户pp的主要组群是root

创建用户abc,并设置该用户的Shell类型是/bin/ksh。 [root@rhel ~]# useradd -s /bin/ksh abc

修改用户账户 

使用usermod命令可以更改用户的Shell类型、所属的组群、用户密码的有效期,还能更改用户的登录名。

修改用户zhangsan的主目录为/home/kkk,并手动创建/home/kkk目录。

[root@rhel ~]# usermod -d /home/kkk zhangsan

# mkdir /home/kkk //必须使用mkdir命令创建/home/kkk目录,这样用户zhangsan 才能使用该主目录

修改用户wangwu的主目录为/home/opop,并自动创建 /home/opop目录。

# usermod -d /home/opop -m wangwu

修改用户wangwu的登录名为zhaoliu。

[root@rhel ~]# usermod -l zhaoliu wangwu

修改用户zhangsan的用户名全称为张三。

[root@rhel ~]# usermod -c 张三 zhangsan

修改用户zhangsan在密码过期后20天就禁用该账户。

[root@rhel ~]# usermod -f 20 zhangsan

修改用户sun所属的组群为root,该组群必须事先存在。

[root@rhel ~]# usermod -g root sun

锁住用户zhangsan密码,使密码无效。

[root@rhel ~]# usermod -L zhangsan

# passwd -S zhangsan zhangsan LK 2012-06-02 0 99999 7 20 (密码已被锁定。)

解除用户zhangsan密码锁住。

[root@rhel ~]# usermod -U zhangsan

修改用户zhangsan账户的过期日期是2012年12月12号。

# usermod -e 12/12/2012 zhangsan

# cat /etc/shadow|grep zhangsan

修改用户zhangsan的Shell类型为/bin/ksh

# usermod -s /bin/ksh zhangsan

删除用户账户 userdel

使用userdel命令删除用户账户并不会删除该用户主目录

# userdel -r moon//同时将其主目录删除

本节主要讲述Linux系统下的组群账户分类 以及与组群账户有关的配置文件 /etc/group和/etc/gshadow。

两种组群分类方法

1、

私有组群:创建新用户,没有指定组群,创建一个与用户同名的组群,该私有组群只包含该用户

标准组群:普通组群,包含多个用户,在创建用户时应指定其在某个组群

2、

主要组群:一个账户属于多个组群时,登陆后所属的组群是主要组群,一个用户只能属于一个主要组群

次要组群:附加组群,一个用户可以属于多个附加组群

/etc/group:

/etc/group文件是组群的配置文件,内容包括用户和组群, 并且能显示出用户是归属哪个组群或哪几个组群。一个用户可以归属一个或多个不同的组群,同一组群的用户之间 具有相似的特征。比如把某一用户加入到root组群,那么 这个用户就可以浏览root用户主目录的文件,如果root用户把某个文件的读写执行权限开放,root组群的所有用户都可以修改此文件;如果是可执行的文件,root组群的用户也是可以执行的。

/etc/group文件的内容包括组群名、组群密码、GID及该 组群所包含的用户,每个组群一条记录,一行有4个段位, 每个段位用“:”分隔。

组群GID和UID类似,是一个从0开始的正整数,GID为0的组群是root组群。Linux系 统会预留GID号1~999给系统虚拟组群使用, 创建的新组群GID是从1000开始的,查看 系统创建组群默认的GID范围应该查看 /etc/login.defs中的GID_MIN和GID_MAX 值,可以使用以下命令查看

/etc/gshadow

/etc/gshadow是/etc/group的加密文件,组群密码就是存放在这个文件中。

/etc/gshadow文件中每个组群都有一条记录。一 行有4个段位,每个段位用“:”分隔。

使用groupadd命令可以在Linux系统中创建 组群账户。

 创建名为china的组群

[root@rhel ~]# groupadd china

[root@rhel ~]# cat /etc/group|grep china china:x:1006: //查看文件/etc/group,可以看到已经创建了组群china,组群GID是1006

创建名为ou的组群,并且设置该组群GID为1800。

[root@rhel ~]# groupadd -g 1800 ou

[root@rhel ~]# cat /etc/group|grep ou ou:x:1800: //查看文件/etc/group,可以看到已经创建了组群ou,组群GID是1800

创建名为chinese的系统组群

[root@rhel ~]# groupadd -r chinese

[root@rhel ~]# cat /etc/group|grep chinese chinese:x:982: //查看/etc/group文件,可以看到系统组群chinese的GID是982,是小于 1000的

使用groupmod命令可以在Linux系统中修 改组群账户,比如组群名称、GID等

将组群ou的GID修改为1900。

[root@rhel ~]# groupmod -g 1900 ou

[root@rhel ~]# cat /etc/group|grep ou ou:x:1900: //查看文件/etc/group,可以看到组群ou的GID已经更改为1900

修改组群ou的新组群名称为shanghai。

[root@rhel ~]# groupmod -n shanghai ou

[root@rhel ~]# cat /etc/group|grep shanghai shanghai:x:1900: //查看/etc/group文件,可以通过原来的GID看到组群ou的名称 已经更改为shanghai

使用groupdel命令可以在Linux系统中删除组群账户。如果该组群中仍旧包括某些用 户,那么必须先删除这些用户后,才能删 除组群。

普通用户只 能更改自己的用户密码,root用户可以设置或修改任何用户的密码

passwd -l/-S/-u/-d

gpasswd 设置一个组群的组群密码,或者是在组群 中添加、删除用户。

使用su命令可以切换到其它用户账户进行 登录。如果su命令不加任何选项,默认为 切换到root用户,并且不改变Shell环境。

让用户账户以另一个组群的身份进行登录。 newgrp命令是以相同的账户名,不同的组群身份 登录系统。如果要使用newgrp命令切换组群,用 户必须是该组群的用户,否则将无法登录指定的 组群。单一用户如果要同时隶属多个组群,需要 利用交替用户的设置。如果不指定组群名称,则 newgrp命令会登录该用户名称的预设组群

使用groups命令可以显示指定用户账户的 组群成员身份。

使用id命令可以显示用户的UID以及该用户 所属组群的GID。

linux基础命令4的更多相关文章

  1. 第四节,Linux基础命令

    第四节,Linux基础命令 命令是系统操作员对系统传入的指令,传入指令后回车,系统接收到指令做出相应的行为 1.查看用户位于系统什么位置 [pmd]检查操作用户位于系统的什么位置 命令         ...

  2. 【Python之路】第一篇--Linux基础命令

    pwd 命令 查看”当前工作目录“的完整路径 pwd -P # 显示出实际路径,而非使用连接(link)路径:pwd显示的是连接路径 .   表示当前目录 ..  表示上级目录 /  表示根目录 ls ...

  3. linux基础命令学习笔记(二)

    linux基础命令学习笔记(二) 1.kill :终止进程  kill pid (唯一标示一个进程) kill -9  强制终止  kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...

  4. 2.Linux基础命令

    linux内一切皆文件,没有文件夹只有目录,目录也是一种文件 1.一些常用按键: 将鼠标的光标从虚拟机里切换回来:Ctrl+Alt 拖动Ubuntu内的对话框:Alt键+鼠标左键拖动 清屏:Ctrl+ ...

  5. linux基础命令一

    linux基础命令一 1.date命令 date命令介绍:显示或者设置系统日期 date命令的语法: 显示日期:date  [options...]  [+FORMAT] FORMAT:为显示日期的格 ...

  6. linux基础命令:

    linux基础命令: 显示 echo 输出我写的内容 ls 查看当前目录的文件 pwd 查看当前目录 ifconfig 查看网卡信息 grep 过滤 -v 取反 -n man 查看命令的帮助信息 md ...

  7. 常用的linux基础命令

    常用的linux基础命令 1.ls 显示目录属性 -l:(也可以简写成ll),列表显示权限等属性 -a:显示所有文件包括隐藏文件等 -d:只列出目录本身 2.chgrp 改变档案所属群组 eg:chg ...

  8. Linux基础命令-文件与目录

    Linux基础命令-文件与目录 参考:<鸟哥linux私房菜>五-七章,17/12/5复习,18/01/15复习 文件权限 rwx421:用户,用户组,其他 umask查看默认权限:000 ...

  9. Linux基础命令回顾

    前言 说到linux基础命令,网上一搜一箩筐,想学也有很多教程,如果你不幸看到此篇文章,想看就认真看完,毕竟你点进来了不是嘛? 我每次写的文章都是为了分享自己的学习成果或重要知识点,希望能帮助更多的人 ...

  10. linux常用命令大全(linux基础命令+命令备忘录+面试复习)

    linux常用命令大全(linux基础命令+命令备忘录+面试复习)-----https://www.cnblogs.com/caozy/p/9261224.html

随机推荐

  1. 兼容ie8的Html+Css+Js

    1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset=" ...

  2. JS字符串拼接的方法及性能比较

    一.+和+=str += "one" + "two";这段代码在运行过程中,会经历四个步骤:1.在内存中创建一个临时字符串2.将连接后的字符串"one ...

  3. Outlook怎么合并相同邮件?设置Outlook邮件为对话模式

    选择View->勾选"Show as Conversations", 这样同一个标题的邮件就是叠在一块显示了. 不蟹,bro.

  4. v3.x compoistion api 是什么

    在Vue 2.x的基础上要解决的问题: 1. 更低成本的达到逻辑复用(mix in :混入,找不着,命名冲突) 2. 代码组织 3. 类型推导更稳定 目标:使得Vue在大型应用中更有竞争力.

  5. 动态规划-1-钢条切割(Dynamic Programming-1-rod cutting)

    1 #include <stdio.h> 2 #define LEN 10 3 #define NEGINF -999999 4 struct r_d { 5 int r; //profi ...

  6. 瞬间并发测试-jmeter

    测试需求:秒杀场景,瞬间并发.通常来说,JMeter的线程数即为并发的压力数,实际上JMeter在运行时,每个线程是独立的,虽然有100个线程,但这些线程并不是同时向服务器发送请求,JMeter要模拟 ...

  7. android studio 导出 release aar

  8. 1071 - Specified key was too long; max key length is 767 bytes

    set global innodb_large_prefix=on;set global innodb_file_format=BARRACUDA; 主从都要修改以上2个参数.

  9. 记D365开发的最佳实践

    前端JS 不同的需求应该划分模块,以便日后修改,也是为了职责分离,模块分离,日后如果想分离到单独的JS文件里面也是比较方便: 对于公共的查询函数,应该做缓存,优先使用sessionStorage. 多 ...

  10. No.1.1

    认识网页 问题1:网页由哪些部分构成? 文字.图片.音频.视频.超链接 问题2:我们看到的网页背后本质是什么? 前端程序员写的代码 问题3:前端的代码是通过什么软件转换成用户眼中的页面? 通过浏览器转 ...