linux用户系统的详细说明

在etc目录下面有四个文件来描述用户和用户群组:passwd、group、shadow、gshadow

逐一解释这个四个文件:

  1. 描述用户的文件(/etc/passwd):

Eg:moon:x:500:500:CentOS 6.5:home/moon:bin/bash

[ 1 ]  [2][3] [ 4]    [5]        [6]     [7]

1).用户名称

2).加密口令(对应的是shadow文件)

3).UID

0表示系统管理员

1-499表示系统账号

500-2~32-1表示可登录账号

4).GID

这个和group文件相关联

5).系统版本信息(这个文件不是所有的会有显示,也不是所有的系统都会有这个信息)

6).家目录

家目录的意思是:当你登录系统时,你会用pwd查看所在的路径

7).shell

这个比较重要,当一个用户登录系统,要进行和系统进行沟通,这个字段就是负责和系统沟通的shell文件(相当于一个接口)

删除用户:userdel +用户 :删除用户信息(passwd、shadow、group、gshadow),但是不删除家目录

userdel –r 用户(提示是否删除):删除所有和用户相关的文件

只有在删除当前用户的时候才会有提示(用-f强制删除当前用户,但是不会影响当前用的使用,只有等退出登录后,才出现用户不能登陆的情况)

  1. 描述群组的文件(/etc/group)

Eg:moon:x:500:+moon,tiankong

[1]  [2][3] [4]

  • 群组名
  • 群组加密口令(对应的是gshadow文件)

这个跟gshadow、passwd相关

  • 群组成员

组员,用逗号隔开不能有空格

  1. 用户文件加密口令(/etc/shadow)

Eg:moon:$dada234SDSDD:16566:0:99999:7:::

[1]              [2]                       [2] [4] [5]  [6][7][8][9]

注释:所有关于日期都是根据天数算的,算法的公式:

16566=$(($cdate –date=”当前日期”+%s)/86400+1))

86400 为每一天的秒数

%s 为 1970/01/01 以来的累积总秒数, bash 仅支持整数,因此最终需要加上 1 补齐 1970/01/01 当天

  • 用户名
  • 加密的密码(动态加密)

此字段前加上 ! 或 * 改变口令字段长度,就会让口令暂时失效了

  • 最近更新的口令时间(天)

最近一次口令更改的日期

  • 口令不可更新的天数

账号的口令在最近一次被更改后需要经过几天才可以再被变更(如果是0表示口令可以随时更改)

  • 口令需要更新的时间(天)

口令最近一次更改后,在多少天内需要再次变更口令。(你必须要在这个天数内重新配置你的口令,否则这个账号的口令将会『变为过期特性』)

99999表示,几乎不需要更改

  • 口令变更期限的警告天数(天)

账号快要过期时,系统会根据这个配置,发出警告,提醒账号在n天,你的口令就要过期

  • 口令过期后账号宽限时间(口令失效日)

口令有效日期为(升级日期(第3字段)+重新变更日期(第5字段)

口令过期后没有升级口令,那么该口令就算是过期了;虽然口令过期但是该账号还可以进行其他的工作,包括登录系统所取得bash。不过口令过期后,当你登录系统时,系统会强制要求你必须要重新配置口令才能登陆使用。

如果使用者还是没有登陆更改口令,那么这个账号的口令将会『失效』,亦即该账号再也无法使用该口令登陆了

注意:口令过期和口令失效并相同

  • 账号失效日期(天)

这个账号在此字段规定的日期之后,将无法再使用,就是所谓的账号失效,如果在规定的时间不进行更改口令,那么账号就会变成账号过期

  • 保留的字段

这是一个保留字段,为后来添加新功能时使用的,暂时没有特殊的意义

  1. 用户群组加密口令(/etc/gshadow)

Eg:moon:!::moon,tiankong(用户组账号)

[1]  [2][3]   [4]

  • 群组名
  • 群组口令

!:表示无合法密码,所有无用户管理员

  • 用户组管理员账号

管理用户组的账号

  • 用户组账号

群组成员账号

用户、群组的操作

useradd(添加):(usermod修改)

-g 用户组  指定用户所属的用户组

-G 用户组,用户组   指定用户所属的附加组

-s Shell文件  指定用户的登录Shell

-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户

的标识号

userdel 用户 删除用户

userdel –r 用户  删除用户(用户所有的文件)

注释:usermod -g 组名 用户名  是修改用户的所在组.是覆盖

usermod -G 组名,组名,组名.....+空格+用户名   是表示添加多个组

groupadd(添加)、groupmod(修改)、groupdel(删除)

文件属性说明

 

-rw-r-r—1 root root 42304 Sep 4 19:26 install.log

[1]       [2][3]  [4] [5]    [6]        [7]

1). 文件权限

这个字段分为两个不同的含义(10个字符)

  1. 第一个字符:文件类型

d:表示目录

-:文件

|:连接文件(相当于windows下面的桌面快捷键方式)

b:设备文件里面的可供存储的借口设备

c:设备文件里面的串行端口设备,例如键盘、鼠标(一次性读取设备)

注释:

连接文件:一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法

硬链接(HardLink)和软链接(SoftLink),软链接又称为符号链接(Symboliclink)

连接具体的解释:http://blog.chinaunix.net/uid-23544029-id-311348.html

  1. 2-10字符:

这九个字符分为三种不同的拥有着

2-4:用户拥有权限

5-7:群组权限

8-10:其他的权限

3.权限有三种(r(read)、w(write)、x(execute))

2). 连接数

每个文件都会将权限和属性记录到文件系统中i-node中,不过我们使用的目录树确是使用文件名来记录的,因此每一个文件名都是就会连接一个i-node。这个属性记录的多少不同的文件名连接到相同的一个i-node号码

i-node:inode是一个很重要的实体,与文件有着很大的关系。系统在打开一个文件之前,都是先在一个inode表中查找该文件对应的inode,再去定位到具体的文件

3). 文件所有者

4). 文件所属群组

5). 文件大小

6). 文件最后被修改的日期

7). 文件名

注释:cd:切换当前目录;pwd;显示当前目录;mkdir创建心目录;rmdir:删除空目录

ls –l –full-time:显示全日期(中文显示的可能会有点问题)

文件权限的操作

  1. chgrp:改变文件所属的用户组(change group)

用法:chgrp + 用户组 +文件/目录

  1. chown:改变文件所属的用户(change owner)

用法:chown + 用户 + 文件/目录

注释:chgrp/chown + 用户:用户组 + 文件/目录,有些人使用”.”也能打倒这个效果,但是有时候会造成系统的误判,建议使用“:”;

关于什么时候使用chgrp和chown,有时候使用cp进行复制容易把文件的拥有着和用户组全部复制,赋值的文件有时是不允许别的用户/用户组使用,所以就需要分别设置用户和用户组

  1. chmod:改变文件的权限(change mode)

用法:

u(user)                                         r

chmod                                   g(group)            +                          w                         文件/目录

o(others)           -                           x

a(all)                   =

-R加上也是标识进行递归改变

a 表示为文件三个类型权限添加权限

chmod a+x 文件/目录 :为文件或者目录增加x权限

chmode a-x 文件/目录:为文件/目录去掉x权限

chmode u-x 文件/目录:为文件/目录的用户权限去掉x

在进行去掉权限的时候,如果该文件没有此权限,不会报异常

chmod u=x,g+x 文件/目录:为文件/目录的用户或者群组添加x权限

个人理解:chmod +x 文件 直接执行,是为该文件三个类型添加权限,默认为all

注释:chgrp/chown/chmod –R +[用户/群组] +文件/目录  表示递归进行改变,即目录本身进行改变,也会对目录中的文件进行修改

who :表示当前登录的账户

whoami :标识当前运行系统使用的账户

初始群组、有效群组、次要群组:

  1. 1. 初始群组

当用户一登陆系统,立刻就拥有这个群组的相关权限

2.有效群组

有效群组:如果用户同时在两个或者多个群组中,用groups查看到的第一个标识有效群组,也是当前用户可用的群组权限

  1. 4. 次要群组

次要群主:如果用户同时在两个或者多个群组中,用groups查看到的非第一个标识有效群组,表示为次要群组,假如当前用户在次要群组中,操作文件是不可以对拥有此权限的的文件进行操作,必须是在有效群组中。

有效群组和次要群组的切换:newgrp + 群组名

注释:在当前用户组建立的文件,此文件就属于当前群组

grep查找文件中的内容

find 查找文件

时间: 2024-10-05 23:50:22

linux用户系统的详细说明的相关文章

linux用户,用户组详细管理命令使用

用户,用户组管理命令使用 首先对用户,用户组做简单介绍: Linux是个多用户多任务的分时操作系统,所有一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问:另一方面也能帮助用户组织文件,并为用户提供安全性保护.每个用户账号都拥有一个惟一的用户名和用户口令.用户在登录时键入正确的用户名和口令后,才能进入系统和自己的主目录. 本文从以下4个方面分别介绍linux用户与用户组管理命

linux安装系统分区详细介绍及常用ls命令

linux对于没有基础的初学者来说,最难的就是第一步,不为什么因为万事开头难,第一步就是装系统分区,而这里面最难的我认为就是分区部分,如果是让系统自动分区那就很简单,但对于初学者一般都是要手动分区的,特别是全英文的系统,对于英语基础差的童鞋,分区那里无疑是最难的,下面就跟好我的节奏带你上分!大家看下图,我们要选择最后一个,意思是要手动安装分区.接下来就会出现下个画面在这里就是重要的分区了,讲分区之前给大家说一下windows的分区,比方说windows上面有一个硬盘,我要把这个硬盘分四个区:C

对中级 Linux 用户非常有用的 20 个命令

本文转自http://www.oschina.net/translate/20-advanced-commands-for-middle-level-linux-users,请支持原创,此处只做记录 也许你已经发现第一篇文章非常的有用,这篇文章是继对初级Linux用户非常有用的20个命令的一个延伸. 第一篇文章的目的是为新手准备的而这篇文章则是为了Linux的中高级用户.在这里你将学会如何进行自定义搜索,知道正在进行的进程和停掉进程,如何使用Linux的强势功能和如何在系统内编译C,C++和JA

LINUX用户、用户组及权限管理

LINUX用户.用户组及权限管理 一.LINUX权限管理 LINUX权限分为:r,w,x,读,写,可执行 对文件来说: r 可读,即可以使用类似cat等命令查看文件的内容 w 可写,可以编辑或删除此文件: x 可执行,exacutable,可以在命令提示符下当做命令提交给内核运行. 对于目录来说(默认有x权限): r 可以对此目录执行ls以列出内部的所有文件 w 可以在此目录中创建文件 x 可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息. 文件 目录 r 可读,即可以使用类

Linux用户配置文件(第二版)

/etc/passwd文件剖析 文件格式: root:x:0:0:root:/root:/bin/bash 用户名:密码位:UID:GID[缺省组ID]:注释性的描述信息:宿主目录:shell[7部分] Linux用户分类: 超级用户(root,UID=0) 普通用户(UID=500-60000) #最大值是可以更改的 伪用户/特殊用户(UID=1-499) #因此,将一个用户的用户的UID改为0之后,其就成为了超级用户 伪用户特点 1.伪用户与系统和程序服务相关 如:bin.daemon.sh

Linux查看系统状态命令

Linux查看系统状态命令     iostat iostat 命令详细地显示了存储子系统方面的情况.你通常用iostat来监控存储子系统总体上运行状况如何,并且在用户注意到服务器运行缓慢之前提早发现输入/输出缓慢的问题.相信我,你应该在用户发现这些问题之前先发现这些问题! meminfo和free meminfo为你详细显示了内存方面的情况.你通常可以使用另一个程序,比如cat和grep,来访问meminfo的信息.比如说,cat /proc/meminfo为你详细显示了服务器的内存在任何一个

linux CentOS 系统下如何将php和mysql命令加入到环境变量中

在Linux CentOS系统上安装完php和MySQL后,为了使用方便,需要将php和mysql命令加到系统命令中,如果在没有添加到环境变量之前,执行“php -v”命令查看当前php版本信息时时,则会提示命令不存在的错误,下面我们详细介绍一下在linux下将php和mysql加入到环境变量中的方法(假设php和mysql分别安装在/usr/local/webserver/php/和/usr/local/webserver/mysql/中). 方法一:直接运行命令export PATH=$PA

Linux用户态程序计时方式详解

前言 良好的计时器可帮助程序开发人员确定程序的性能瓶颈,或对不同算法进行性能比较.但要精确测量程序的运行时间并不容易,因为进程切换.中断.共享的多用户.网络流量.高速缓存访问及转移预测等因素都会对程序计时产生影响. 本文将不考虑这些影响因素(相关资料可参考<深入理解计算机系统>一书),而仅仅关注Linux系统中用户态程序执行时间的计算方式.除本文所述计时方式外,还可借助外部工具统计耗时,如<Linux调试分析诊断利器——strace>一文中介绍的strace. 本文示例代码的运行环

高效Linux用户需要了解的命令行技能

摘自:1.http://www.lingcc.com/2013/03/22/12282/ 内容:1.基本命令: 了解基本的bash,通读整个bash man page 学习vim 了解SSH,基本的无密码验证方式:   熟悉Bash中常用的任务管理命令 &,Ctrl-Z,Ctrl-C,jobs,fg,bg,kill 等.  基本的文件管理命令 ls, ls-l, less, head, tail, tail -f, ln, ln -s, chmod, chown, du, du -sk *, d