一、          
Linux系统用户和用户组相关文件

1、  /etc/passwd文件

这个passwd文件是Linux用户信息文件。文件格式说明如下:

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

……………………………………………..

……………………………………………..

hadoop:x:500:500::/home/hadoop:/bin/bash

文件中每一行是一个用户,各列以:分割,各列的含义如下:

l  第一个是用户名称

l  第二个是密码,但是这个字段现在已经不用了,密码存在在/etc/shadow文件中了,所以这里固定写x就是了。

l  第三个是UID,UID是用户的唯一标示。

UID

说明

0

是系统管理员的UID

1~499

是系统用户的UID

500 ~ 65535

是一般用户使用的UID,Linux 2.6.x内核可以支持最大UID为2^32-1

l  第四个是GID,是指用户所在的首选组的ID,和/etc/group文件里的组ID对应。

l  第五个是用户信息说明信息,默认是和用户名一样的值。

l  第六个是用户的Home目录路径。

l  第七个是用户默认的Shell路径,Linux的Shell类型很多,但是大多数是/bin/bash。

2、  /etc/shadow文件

这个shadow文件是用户密码信息文件,文件格式说明如下:

root:$6$QDRTibzVfjM.GBM7$AwsFKXFBGdKxHf7NzSN3Evu5NBtUoNSDt2bw/aXdcnQOK5N9kKJqPZ6uGFE3C9zasUl9UwrgJhzF7rAPJXkXl/:16981:0:99999:7:::

bin:*:15980:0:99999:7:::

daemon:*:15980:0:99999:7:::

hadoop:$6$MiYjLlgY$Oqrs15mLyzULRD.m4e2WmTEp9Aq.CziOhpCXW.U4LypK4wfQKww/RR6re3L0r.hOB2IZpc1zTyHGH9vpy9bKh1:16982:0:99999:7:::

文件中每行是一个用户,每行用:分割形成9个列。以下是各个列的说明:

l  第一列是用户名,用户名与/etc/passwd文件中的用户名对应。

l  第二列是密码。密码是经过加密过的,系统不同计算规则不同。

l  第三列是最后一次修改密码的日期,这里是16982,意思是从1970-01-01那天之后16982天的日期。

l  第四列是密码不可更新的天数,就是在设置密码后,N天之内不能再次修改,防止频繁修改密码,如果是0,就是随时可以修改密码。

l  第五列是密码必须修改的天数,就是在设置密码后,N天后必须修改密码,不然会变成过期状态。这里是一堆九,大约是273年。

l  第六列是密码更改必须修改前多少天发出警告,这里是7天。

l  第七列是密码过期后N天内还可以使用,不过过期后使用时会强制要去修改密码,如果在过期N天后还没有修改密码,那账号就不能再使用了。

l  第八列是账号失效时间,指定日期之后,就无法再使用了。

l   第九个是预留的列,暂时没用。

3、  /etc/group文件

这个group文件是记录用户组信息的,文件格式如下:

root:x:0:

bin:x:1:bin,daemon

daemon:x:2:bin,daemon

hadoop:x:500:

文件中一行是一个用户组,每行用:分割为四列:

l  第一列为组名称

l  第二列为组密码,组密码已经移动到/etc/gshadow文件中了,所以这个固定是x。

l  第三列是GID,是用户组的唯一ID,/etc/passwd用户信息中的第四个字段就对应于这里的GID。

l  第四列是这个用户组下的用户名称,多个用户名以逗号分割,如果想将某个用户添加到一个组中,就在目标组这一行,添加上这个用户名。

4、  Linux用户登录流程

当一个客户端使用用户名、密码登录Linux系统时,Linux系统会按照以下流程进行验证:

(1)   
寻找/etc/passwd文件中是否有此账号,没有就报错。

(2)   
如果有就读取这个用户对应的UID、GID、shell设置信息。

(3)   
然后拿着UID去/etc/shadow文件中验证密码。

(4)   
验证通过后,就进入对应的shell环境。

二、          
Linux用户管理、用户组管理

1、 添加用户

(1)   
useradd 用户名
是添加一个用户,用户的各个信息采用默认值。

(2)   
新用户的默认值可以用
useradd –D 命令来查看

[root@localhost ~]# useradd -D

GROUP=100     默认的用户最GID

HOME=/home 默认的Home目录路径

INACTIVE=-1    默认的密码失效日,为-1是永远不会失效

EXPIRE=   账号失效日

SHELL=/bin/bash   用户默认使用的shell

SKEL=/etc/skel  用户Home目录的内容模板目录

CREATE_MAIL_SPOOL=yes      是否主动创建邮箱

(3)   
useradd 用户名
命令执行后,没有指定密码,所以新用户状态是被封锁的,用户无法登陆,需要设置密码。

2、 设置密码

(1)   
passwd 用户名
是为指定用户修改密码,如果只有passwd,就是修改当前用户的密码。

(2)   
关于密码长度和复杂度要求,root可以设置任何长度和复杂度的密码,但是用其他账号是不允许设置短密码和低复杂度的密码的。

3、 修改用户

修改用户信息用usermod命令,各个参数如下:

-c  :后面接用户的说明,即 /etc/passwd 第五列的说明列,可以加入一些用户的说明。

-d  :后面接用户的Home目录,即修改 /etc/passwd 的第六列;

-e  :后面接日期,格式是 YYYY-MM-DD 也就是在
/etc/shadow 内的第八列!

-f  :后面接天数,为 shadow 的第七列。

-g  :后面接初始用户组,修改 /etc/passwd 的第四个列,即是 GID 的列!

-G  :后面接次要用户组,修改这个使用者能够支援的用户组,修改的是 /etc/group

-a  :与 -G 合用,可‘增加次要用户组的支援’而非‘设定’!

-l  :后面接用户名称。是修改用户名称, /etc/passwd 的第一列!

-s  :后面接 Shell 的实际档案,例如
/bin/bash 或 /bin/csh 等等。

-u  :后面接 UID 数字!即
/etc/passwd 第三列的资料;

-L  :暂时将使用者的密码冻结,让他无法登入。其实仅改 /etc/shadow 的密码列。

-U 
:将 /etc/shadow 密码列的

4、 删除用户

userdel命令是用来删除用户。

userdel –r 用户名
是将用户和用户相关的所有数据全部删除。

三、          
Linux文件权限管理

1、 Linux中文件权限划分

Linux系统中的目录和文件的访问身份分为三类:owner、group、others,分别简写为:o、g、o

l  owner是文件的所有者。

l  group是文件所有者所在组的其他成员。

l  others就是不在所有者的所在组的其他用户。

每个身份对文件的权限又分为:read、write、execute。分别简写为:r、w、x,数字表示分别为:4,2,1

2、 ls –s 命令显示的信息

[root@localhost
~]# ls -l

total
104

drwxr-xr-x.
2 root root  4096 Jun 30 01:55
Downloads

-rw-r--r--. 1 root root 50010 Jun
30 01:40 install.log

显示的结果信息,一行是一个目录或者一个文件,每行用空格分隔为七列:

l  第一列是权限信息:这部分的类似于 drwxr-xr-x 可以分为四部分:

(1)   
第一个字符是表示文件类型,可以为以下几种类型

字符

含义

字符

含义

-

文件

b

存储设备,如硬盘

d

目录

c

串口设备,如键盘、鼠标

l

链接文件

(2)   
剩下的9个字符,可以平均分为三组,每组三个字符,字符由rwx-是个字符组成,分别代表是否有读取、写入、执行、无任何权限。

(3)   
第一组定义了文件所有者对文件所拥有的权限

(4)   
第二组为同用户组的用户对文件所拥有的权限

(5)   
第三组为其他组用户对文件所拥有的权限

l  第二列是连接信息

l  第三列是所有者是哪个用户

l  第四列是文件所属用户组,一个所有者用户可能会属于多个组,这个属性是表面文件属于哪个组。

l  第五列是文件大小,单位默认是Byte。

l  第六列是最后修改日期,如要显示完整的时间格式,ls命令可以用参数 –l –full-time

l  第七列是目录名或者文件名。如果名字前面有个.就说明这个是一个隐藏文件。

3、 修改文件的权限

(1)   
修改文件的权限用命令chmod来执行,有两种权限定义方式:数据方式和符号方式。

(2)   
数字方式修改文件权限

像上面说说的,用三组rwx字符就可以表述出文件的owner、group、others三种身份的用户所拥有的权限信息。

而read用4表示,writer用2表示,execute用1表示;rwx可以用[4+2+1]=7表示。r-x可以用[4+1]=5表示。

那么某一个文件的三个身份的权限信息就可以用三个数字表示。

例如:要将1.sh文件的权限设置为所有者可读可写可以执行,同组可读可执行不可写,其他组的用户没有权限。

chmod    750   
1.sh

(3)   
符号类型修改文件权限

chmod

u

g

o

a

+  (增加)

-       
(减去)


(设置)

r

w

x

文件或者目录

例如:要将1.sh文件的的其他组用户添加可读权限:chmod    o+r 1.sh

例如:要将1.sh文件的的所有用户添加可执行限:chmod    a+x  1.sh

4、 修改文件的所有者

(1)   
修改文件的所有者用命令
chown 用户名  文件/目录

(2)   
修改文件的所属组命令chgrp 用户组   文件/目录

(3)   
修改文件的所有者和所属组用命令  chown  用户名:用户组    文件/目录

5、 目录权限和子文件权限关系

附件列表

Linux用户体系和文件权限总结的更多相关文章

  1. linux用户管理和文件权限

    linux用户管理和文件权限 新建用户:useradd ftpuser      useradd -g gxx userxx修改密码:passwd ftpuser新增用户组:# groupadd gr ...

  2. Linux - 用户管理与文件权限

    目录 Linux - 用户管理与文件权限 创建普通用户 切换用户 userdel删除用户 sudo 命令 文件与目录权限 Linux权限的解读 目录权限 查看用户权限的命令 文件权限 修改权限的命令 ...

  3. Linux 用户管理 与 文件权限

    Linux 用户管理 与 文件权限 用户组操作 1.groupadd命令 groupadd [-g -o] gid group 各个选项具体含义如下: -g:指定新建用户组的GID号,该GID号必须唯 ...

  4. linux用户身份和文件权限

    1.用户身份与能力 root管理员是linux 的超级用户,他拥有系统的所有权,能够管理系统的各项功能,如添加/删除用户,启动/关闭服务进程,开启/禁用硬件设备…… "Linux系统中的管理 ...

  5. Linux用户身份与文件权限学习笔记

    用户身份 管理员UID为0:系统的管理员用户 系统用户UID为1~999:服务程序会有独立的系统用户负责运行:防止被黑客入侵进行提权,并有效控制被破坏的范围 普通用户UID从1000开始:是由管理员创 ...

  6. linux用户身份与文件权限

    用户 useradd [ 参数 ] 用户名 添加用户 sudo useradd -d /home/test -u 1001 -s /bin/bash name usermod [选项] 用户名 更改用 ...

  7. Linux学习之用户身份与文件权限

    Linux学习之用户身份与文件权限 1 用户身份及能力 Linux系统的管理员之所以是root,并不是因为其名叫root,而是该用户身份号码数值(UID)为0. 管理员UID为0:系统的管理员用户 系 ...

  8. 网卡配置文件详解 用户管理与文件权限篇 文件与目录权限 软连接 tar解压命令 killall命令 linux防火墙 dns解析设置 计划任务crond服务 软件包安装 阿里云 yum源 安装

    Linux系统基础优化及常用命令 Linux基础系统优化 引言没有,只有一张图. Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. ...

  9. Linux常用命令--用户管理,文件权限,打包命令等

    幕布链接 Linux常用命令--用户管理,文件权限,打包命令等

随机推荐

  1. 谈谈一些有趣的CSS题目(十)-- 结构性伪类选择器

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  2. 关于Visual Studio 未能加载各种Package包的解决方案

    问题: 打开Visual Studio 的时候,总提示未能加载相应的Package包,有时候还无法打开项目,各种提示 解决方案: 进入用户目录 C:\Users\用户名\AppData\Local\M ...

  3. Oracle第一步

    Oracle 启动数据库 Startup [NOMOUNT|MOUNT|OPEN|FORCE] [restrict] [pfile=filename] 启动实例,加载数据库,启动数据库 oRACLE关 ...

  4. 【干货分享】流程DEMO-借款申请

    流程名: 借款申请   业务描述: 当员工个人在工作中需要进行借款时,通过此项流程提交借款申请,审批通过后,财务部进行款项支付.   流程相关文件: 流程包.xml WebService业务服务.xm ...

  5. 手机游戏渠道SDK接入工具项目分享(二)万事开头难

    一般接到任务后程序员们通常都开始着手进行技术调研了,但我这活是项目负责人.还有一大堆事情要先期准备,没人能帮忙. 一.人力配置 考虑的之前已经有一波人搞了大半年,但没有起色,先期也没有太大人力需求,所 ...

  6. Microsoft Visual Studio 2015 下载、注册、安装过程、功能列表、问题解决

    PS:请看看回复.可能会有文章里没有提到的问题.也许会对你有帮助哦~ 先上一张最终的截图吧: VS2015正式版出了,虽然没有Ultimate旗舰版,不过也是好激动的说.哈哈.可能有的小伙伴,由于工作 ...

  7. 在Linux虚拟机下配置jdk的环境变量

    1.到Oracle公司的官网里下载好jdk,网址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133 ...

  8. PHP 数组浅析

    PHP的数组具有如下特点:1.数组初始化时无需指定长度:2.数组中的元素无需相同类型:3.数组的长度可变4.可使用var_dump(参数)或者print_r(  参数) 函数查看数组变量.5.数组内的 ...

  9. 让 ASP.NET vNext 在 Mac OS 中飞呀飞。。。

    写在前面 阅读目录: 娓娓道来 Install ASP.NET vNext Command Line Tools 安装 Homebrew 使用 Homebrew,安装 KVM Install Subl ...

  10. ES6+ 现在就用系列(一):为什么使用ES6+

    系列目录 ES6+ 现在就用系列(一):为什么使用ES6+ ES6+ 现在就用系列(二):let 命令 ES6+ 现在就用系列(三):const 命令 ES6+ 现在就用系列(四):箭头函数 => ...