linux很重要的应用就是作为服务器的操作系统。服务器的作用是给多用户提供各种“服务”(可能是读服务器上的文件,或者是利用服务器进行数值计算)那么如果多用户共同拥有一台服务器,就需要对服务器上的用户进行管理。

账号和密码

用户指的就是服务器上的id,例如我自己的id:stark。每个用户账号里应该有些什么东西呢?显然最重要的,密码,用户所在组别,用户信息说明,用户主文件夹,还有用户所使用的shell.
以我自己的id为例:

stark@Jurvis:~$ grep “stark” /etc/passwd
stark : x : 1000:1000: stark,,, :/home/stark :/bin/bash
用户名 : 密码 : UID : GID : 用户信息 : 用户主文件夹 : shell

这里是利用管道命令grap在/etc/passwd文件中读取了和stark有关的信息,stark用户信息。这些信息都保存在/etc/passwd文件夹中。
值得注意的是这里的密码用 x 隐藏了起来,这样做的目的是防止密码被暴力破解。因为对于任何一个普通用户,这个文件夹的权限都是644。对于其他人可读。

密码在/etc/passwd中被隐藏起来,那么它的真身在哪呢。答案是在/etc/shadow里,藏在阴影里呢。
由于/etc/shadow并不能直接访问其权限如下:

stark@Jurvis:~$ ls -l /etc/shadow
-rw-r—– 1 root shadow 1168 4月 28 09:03 /etc/shadow
该文件属于root用户,所在组为shadow,其他用户的权限是000.

所以这里用sudo获取root权限,来打开这个文件。

stark@Jurvis:~$ sudo grep “stark” /etc/shadow
[sudo] password for stark:
stark:$6$DEqcBXrS$hD7.A5WTivdc9HGt4aLBFbfp2aVo77QDq5atZU
IQE4jI4.jujknHf.vvQa9xY8eHID3uIkWg.:16551:0:99999:7:::

  1. 用户名stark

  2. 一长串是加密后的密码

  3. 16511代表的是这个密码最近更改的时间(从1970年1月1日起算的天数)就是2015年3月的某一天。

  4. 创建日期后面所接的0代表密码修改后,多少天之内不允许更改。(基于3)0代表随便改。这个功能主要是为了限制某些用户不停修改密码。

  5. 多少天之内必须修改密码,增强安全性。(基于3)这么多9显然200多年都不用改密码了。

  6. 密码必须更改前n天系统发出警告。(基于5)

  7. 密码过期后宽限的时间(仍可登陆系统,但是一登陆必须修改密码)如果在这个日期内无法修改密码。(基于5)密码就会失效,无法登陆系统

  8. 账号失效日期(基于1970)例如各种会员到期失效。

这其实说明,在linux下忘记密码不是什么了不起的事情,只要你能够通过安全模式或者恢复模式各种进入系统文件,就可以删除密码(加密),然后你再登陆的时候就没有密码了,重新设过即可。有点像安卓手机,只要能进recovery,I can do anything ~~~

用户组

在/etc/passwd下,可以读取到用户的用户组,比如GID,这说明各个用户还有组别之分。之前一直谈的都是用户的账号信息。其实用户组也有。
用户组信息在/etc/group/这个文件下
首先看看这个文件的权限

stark@Jurvis:/etc$ ls -l group
-rw-r–r– 1 root root 882 4月 26 23:41 group

没有意外,属于root,root创建时用户组也是root,其他人有读的权限。

stark@Jurvis:/etc$ grep “stark” /etc/group
adm:x:4:syslog,stark
cdrom:x:24:stark
sudo:x:27:stark
dip:x:30:stark
plugdev:x:46:stark
lpadmin:x:108:stark
stark:x:1000:
sambashare:x:124:stark

这里找到了所有和stark有关的用户组。这些行中。

  1. 用户组名

  2. 用户组密码

  3. 用户组ID,root的ID号一般是0

  4. 用户组成员,逗号分隔。

可以看出,每个用户可以属于不止一个用户组。

同样/etc/gshadow记录了用户组的密码信息。

stark@Jurvis:~$ sudo head -n 5 /etc/gshadow
[sudo] password for stark:
root:*::
daemon:*::
bin:*::
sys:*::
adm:*::syslog,stark

  1. 用户组名

  2. 用户组密码

  3. 用户组管理员账号

  4. 用户组包含成员

值得注意的是用户组管理员账号和用户组密码,这代表可以创建用户组管理员,管理组内信息和权限。

用户和用户组

由于每个用户可以属于多个用户组,那么用户在创建文件时如何判断其所在用户组呢?
首先用groups查看当前所有用户组

stark@Jurvis:~$ groups
stark adm cdrom sudo dip plugdev lpadmin sambashare
#和前面grep命令在etc/group里找到的是一样的。

其中,显示的第一个是有效用户组,也就是stark
不同的用户组之间切换通过命令newgrp ***来进行。例如

stark@Jurvis:~$ groups
adm cdrom sudo dip plugdev lpadmin sambashare stark

这样建立的文件就属于adm用户组了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Linux使用者管理(1)---用户账号的更多相关文章

  1. 第四部分 linux使用者管理

    第一章 linux帐号管理与acl权限控制    不同的用户拥有不同的权限    可以通过user/group的特殊权限设定,来规范不同的群组开发 一 linux帐号与群组 A 使用者的识别码: UI ...

  2. linux 使用者管理

    1.用户标识符 UID  用户ID GID  用户组ID 2./etc/passwd 文件结构 id范围:0系统管理员|1~499 (系统账号)|500~65535 可登录账号

  3. Linux使用者管理(2)---账号管理

    用户添加 新增用户 sudo useradd -m username 这里必须使用sudo 因为需要对/etc/shadow进行读写,在ubuntu环境下,必须使用-m设置,否则不会创建主文件夹. 在 ...

  4. Linux 账号管理与 ACL 权限配置

    要登陆 Linux 系统一定要有账号与口令才行,否则怎么登陆,您说是吧?不过, 不同的使用者应该要拥有不同的权限才行吧?我们还可以透过 user/group 的特殊权限配置, 来规范出不同的群组开发项 ...

  5. Linux学习之CentOS(十一)-----Linux 账号管理(转)

    Linux 账号管理(转) useraddpasswdchageusermoduserdelfingerchfnchshidgroupaddgroupmodgroupdelgpasswd su(帐号切 ...

  6. Linux用户管理简介

    Linux用户管理是Linux的优良特性之一,本文说明了Linux中用户的登录过程和登录用户的类型. 一.Linux用户登录过程 用户要使用Linux系统,必须先进行登录.Linux的登录过程和win ...

  7. Linux用户管理机制

    Linux系统中的用户管理涉及用户账号文件 /etc/passwd.用户密码文件 /etc/shadow.用户组文件 /etc/group. 一.用户账号文件 /etc/passwd 该文件为纯文本文 ...

  8. 第十四章、Linux 账号管理与 ACL 权限配置

    1. Linux 的账号与群组 1.1 使用者标识符: UID 与 GID 1.2 使用者账号:/etc/passwd 文件结构, /etc/shadow 文件结构 1.3 关于群组: /etc/gr ...

  9. Linux(3)- 用户管理、文件与目录权限、常用命令、Linux软件包管理

    一.用户管理 现代操作系统一般属于多用户的操作系统,也就是说,同一台机器可以为多个用户建立账户,一般这些用户都是为普通用户,这些普通用户能同时登录这台计算机,计算机对这些用户分配一定的资源. 普通用户 ...

随机推荐

  1. 【转】RunTime.getRunTime().addShutdownHook用法

    Runtime.getRuntime().addShutdownHook(shutdownHook); 这个方法的含义说明: 这个方法的意思就是在jvm中增加一个关闭的钩子,当jvm关闭的时候,会执行 ...

  2. c指针提高

    今天看了两章C语言,于是乎编段程序复习下.  还是不清楚这些神奇的东西的到底要干嘛用...  敲完后,显得这段代码高大上  但是,想实现这个程序,需要这么写的复杂吗?==||   #include & ...

  3. oracle-linux下挂载"移动硬盘" NTFS类型

    环境: ORACLE-LINUX 5.7 全新移动硬盘(未使用过) 移动硬盘空间3T 在默认情况下,Linux系统不支持NTFS分区挂载 1.服务器: A服务器和B服务器为一套ORACLE-RAC,移 ...

  4. 将eclipse的应用程序打包成.exe

    转自:http://blog.163.com/loveshijie_1991/blog/static/1760553112012102573437156/ 参考:http://blog.csdn.ne ...

  5. 树形动规--没有上司的舞会--C++

    题目来源:code[VS] 题目描述 Description Ural大学有N个职员,编号为1~N.他们有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.每个职员有一个 ...

  6. Cocos2dx中的四种控件及主要用法

    1.控件:即控制对象,控制按钮之类的精灵 2.主要介绍四大类控件: CCControlSlider:进度条 CCControlSwitch:开关 CCScale9Sprite:9妹图(用于缩放) CC ...

  7. WPFMediaKit照相功能

    最近写的一个WPF照相功能,往各位吐槽,提供优化 在WPF 设计器中添加如下代码 xmlns:wpfmedia="clr-namespace:WPFMediaKit.DirectShow.C ...

  8. IOS crash分析

    此处不讨论具体的如何根据.dsym文件解析crash log的方式. 什么是崩溃: 不希望出现的中断,APP收到了系统发出的unhandle signal,来源主要由系统内核,处理器,或者应用程序本身 ...

  9. execvp使用实例

    问题描述:           本程序实现模拟shell功能,用户输入命令,返回相应的结果 问题解决: 注:        以上指出了execvp函数的使用,使用时第一个参数是文件名,第二个参数是一个 ...

  10. 【BZOJ】【1834】【ZJOI2010】Network 网络扩容

    网络流/费用流 这题……我一开始sb了. 第一问简单的最大流…… 第二问是要建费用流的图的……但是是在第一问的最大流跑完以后的残量网络上建,而不是重建…… 我们令残量网络上原有的弧的费用全部为0(因为 ...