Linux用户、组和权限

用户、组和权限

一:概念

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。由于安全需要,「用户管理」应运而生,以加以明确限制各个用户账户的权限。

Linux支持用户组,用户组就是具有相同特征的用户的集合。一个组可以包含多个用户,每个用户也可以属于不同的组。用户组在Linux中扮演着重要的角色,方便管理员对用户进行集中管理。

在Linux中,有三种用户:

Root 用户:也称为超级用户,对系统拥有至高无上的控制权限。

系统用户:系统用户是仅用于运行服务程序

普通用户:一般用户都是普通用户,这些用户对系统文件的访问受限,不能执行全部Linux命令。

二:用户和组

用户标识:

通常计算机识别用户为UID,而人们用username更易识别,并且可以通过名称解析进行相对应的名称转换。解析库:/etc/passwd。

可以来看一下/etc/passwd文件的结构:#cat /etc/passwd

root:x:0:0:Superuser:/:

sam:x:200:50:Sam san:/usr/sam:/bin/sh

可以看到,/etc/passwd文件中一行记录对应着一个用户,每行记录又被冒号分隔为7个字段,其格式和具体含义如下所示:

对应的格式:用户名(登录名,不用大写):密码占位符:UID:GID(主组ID号):注释信息(家庭住址电话等):家目录路径:默认shell程序文件路径。

用户类别:

UID范围是16位2进制减,也就是0-65535有效ID

用户又分为两种:管理员,普通用户包括系统用户、普通用户

管理员为0;

普通用户又包括系统用户和普通用户。

系统用户Centos6可用ID范围1-499;Centos7可用范围1-999。

普通用户: Centos6可用ID范围500-60000,Centos7可用ID范围1000-6000。

用户命令:

添加用户:useradd [选项] 登录名

-c comment 指定一段注释性描述。

-d 目录指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。

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

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

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

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

EXAMPLE:

添加用户且指定的UID

[[email protected] ~]# useradd -u3000 linux

验证查看/etc/passwd

[[email protected] ~]# tail -1/etc/passwd

linux:x:3000:3000::/home/linux:/bin/bash

添加指定的UID用户和指定的组(组必须事先存在,组添加命令稍后详解)

[[email protected] ~]# useradd -u2000 -g 5000 black

验证查看/etc/passwd

[[email protected] ~]# tail -1 /etc/passwd

black:x:2000:5000::/home/black:/bin/bash

usermod命令:修改账号信息

-c, --comment  COMMENT

-d, --home  HOME_DIR:修改家目录为新的位置,但一般应该同时使用-m选项以保证原家目录中的文件会移动到新目录中;

-g, --gid GROUP

-G, --groups  GROUP1[,GROUP2,...[,GROUPN]]]:修改时会覆盖原有的附加组;一同使用-a选项,表示为用户添加新的附加组;

-l, --login  NEW_LOGIN:修改当前用户的用户名;

-s, --shell  SHELL

-u, --uid  UID

-L, --lock:锁定用户的密码。这会在用户加密的密码之前放置一个“!”

-U, --unlock:解锁用户的密码。这将移除加密的密码之前的“!”

EXAMPLE:

修改用户的UID,原black UID为2000,现修改为1500

[[email protected] ~]# usermod -u1500 black

验证查看/etc/passwd

[[email protected] ~]# tail -1/etc/passwd

black:x:1500:5000::/home/black:/bin/bash

userdel命令:删除用户账号

userdel [选项]  登录名

-r, --remove:用户主目录中的文件将随用户主目录和用户邮箱一起删除

EXAMPLE:

删除black用户,方法很简单,userdel USERNAME

[[email protected] ~]# userdelblack

默认不会删除账号、家目录、邮箱,需要删加–r

[[email protected] ~]#userdel –rblack

组标识:GroupID, GIDGID

组解析库:/etc/group

打开后的结构 GRPNAME:x:GID:user1,user2, ...

组名:密码点位符:GID:以此组为附加组的用户列表,以逗号分隔

组类别:

UID范围是16位2进制减,也就是0-65535有效ID

用户又分为两种:管理员,普通用户包括系统用户、普通用户

管理员为0;

普通用户又包括系统用户和普通用户。

系统用户Centos6可用ID范围1-499;Centos7可用范围1-999。

普通用户: Centos6可用ID范围500-60000,Centos7可用ID范围1000-6000。

组类别:以用户为核心

用户的主组:基本组;

用户的附加组:额外组;

组类别:根据组内容纳的用户来划分

私有组:与用户名相同,且只有一个此用户;

公共组:组内包含了多个用户;

groupadd命令:添加组

groupadd  [选项]  group

-g  GID:指明GID;

-r, --system:系统组;

EXAMPLE:

添加指明GID的组

[[email protected] ~]# group -g1234 work

验证/etc/group

[[email protected] ~]# tail -1/etc/group

work:x:1234:

groupmod命令:修改组信息

groupmod [选项] GROUP

-g  GID

-n NEW_NAME:修改组名;

EXAMPLE:

Linux用户GID为1500,修改它的GID为1200

linux:x:1200:3000::/home/linux:/bin/bash

[[email protected] ~]# groupmod -g1200 linux

[[email protected] ~]# tail -1 /etc/passwd

linux:x:1200:1200::/home/linux:/bin/bash

groupdel命令:删除组

groupdel [选项] GROUP

EXAMPLE:

直接加上组名即可

[[email protected] ~]# groupdelwork

认证

认证机制:验正用户的确是他所声称的人;

通过对比事先存储的,与登录时所提供的信息是否一致;

存储于何处:

用户的认证信息库:/etc/shadow

组的认证信息库:/etc/gshadow

影子口令文件:/etc/shadow

密码:加密存放,使用单向加密机制;

单向加密:仅能加密,不能解密;提取数据特征码;

特征:

数据相同:加密结果相同;

定长输出:单向加密后的密码位数固定

雪崩效应:内容更改一个字节,特征码几乎全变

算法:

1:md5: message digest, 128bits

2:sha1: secure hash algorithm,160bits

3:sha224

4:sha256

5:sha384

6:sha512

添加salt:取随机数;

随机数:

熵池:

/dev/random:仅从熵池返回随机数,随机数耗尽时会阻塞进程;

伪随机数:软件模拟产生;

/dev/urandom:先从熵池返回随机数,熵池耗尽时,则从伪随机数生成器返回随机数;

passwd命令:密码管理命令

passwd   [-l] [-u  [-f]]  [-d] [-e] [-n mindays] [-x maxdays] [-wwarndays] [-i inactivedays] [--stdin] [username]

(1) passwd:修改自己的密码;

[[email protected] ~]# passwd

New password:输入密码

Retype new password:确认密码

(2) passwd  username:修改其它用户的密码,仅root有此权限;

[[email protected] ~]# passwd test

PS:root可直接更改任何用户密码,用户自己也可以是简单密码;普通用户改自己密码前必须有密码,如没有,root需先给用户添加密码

密码复杂度:

(1) 不能少于8个字符;

(2) 不能使用与过去的密码太相似的密码;

(3) 应该使用四类字符中的至少三类;

选项:

-l:锁定密码

-u:解锁解密

-d:清除密码

--stdin:从标准输入接收密码;

echo "PASSWORD" |passwd  --stdin

EXAMPLE: echo"10011adbc" | passwd --stdin test

gpasswd命令:为组添加密码

组密码文件:/etc/gshadow

gpasswd [选项] group

-a USERNAME:把用户添加至组中;

-d USERNAME:从此组中移除此用户;

id命令:查看用户相关的id信息;

id  [OPTION]... [USER]

-u:仅查看uid

-g:仅查看gid

-G:查看所属的所有组的ID;

-n:显示名称,而非ID;

su命令:switch user

切换用户时:

(1) 不读取目标用户的配置文件(非登录式切换,半切换);

su  USERNAME

(2) 读取目标用户的配置文件(登录式切换,完全切换);

su  -l USERNAME

su  - USERNAME

-c command, --command=command:仅以指定的用户的身份运行此处指定的命令,而不执行真正的身份切换操作;

EXAMPLE: su - test -c ‘echo$HOME‘

注意:root切换至任何其它用户无须认证密码;普通用户切换至其它用户,都需要密码;

三:权限管理

进程安全上下文:

进程:运行一个程序文件而产生,通常由一个用户发起;进程则以发起者的身份运行;

判断进程的发起者是否与文件属主相同,如果是,则以属主的身份来访问,从而应用属主权限;否则

判断进程的发起者是否属于文件的属组,如果是,则应用属组权限;否则

应用“其它”权限

文件:

r:可获取文件的数据;

w:可修改文件的数据;

x:可将此文件运行为进程;

目录:

r:可使用ls命令获取其下的所有文件列表;但不可以使用“ls -l”去获取详细信息,也不可以cd至此目录中;

w:可修改此目录下的文件列表, 即可以在此目录下创建或删除文件;

x:可以使用"ls -l“命令来获取其下的文件的详细属性信息,也可cd至此目录中;

rwxrwxrwx:

owner: rwx

group: rwx

other: rwx

权限组合机制:

以owner为例:

--- 000 0

--x 001 1

-w- 010 2

-wx 011 3

r-- 100 4

r-x 101 5

rw- 110 6

rwx 111 7

ownership: 仅管理员有权限。更改文件的属主、属组

改属主:chow

改属组:chgrp

mode(permission):仅属主。改文件中属主、组、other的权限,只是权限。

chmod命令:

作用:change file mode bits

chmod [OPTION]... MODE[,MODE]...FILE...

chmod [OPTION]... OCTAL-MODEFILE...

chmod [OPTION]...--reference=RFILE FILE...

(1)    chmod [OPTION]...MODE[,MODE]... FILE...

赋权表示法:直接操作一类用户的所有权限位rwx;

u=

g=

o=

a=

两类用户权限相同:ug=, go=

EXAMPLE:

[[email protected] test]# chmod go=rfstab

[[email protected] test]# ll

-rw-r--r-- 1 5002 mageedu 595Jun 12 23:28 fstab

不同类的用户权限不同:u=,g=,o=

EXAMPLE:

[[email protected] test]# chmodu=rwx,g=rw,o= fstab

[[email protected] test]# ll

-rwxrw---- 1 5002 mageedu 595Jun 12 23:28 fstab

授权表示法:操作一类用户一位或多位权限;

u+, u-

g+, g-

o+, o-

a+, a-

两类用户权限收授机制相同:ug+, ug-, ...

[[email protected] test]# chmodgo+w fstab

[[email protected] test]# ll

-rw-rw--w- 1 5002 mageedu 595Jun 12 23:28 fstab

不同类的用户权限不同:u+,g+,o+

(2)    chmod [OPTION]... OCTAL-MODEFILE...

使用八进制数字后跟文件

EXAMPLE:

[[email protected] test]# chmod 700fstab

[[email protected] test]# ll

-rwx------ 1 test test 595 Jun12 23:28 fstab

(3) chmod [OPTION]...--reference=RFILE FILE...

参考文件的路径需要被设置权限文件

常用选项:

-R, --recursive:递归修改;

chmod 仅更改文件或目录 需要将目录内的所有文件都修改全权限是用 -R

chown命令:

改变文件的属主,也可同时修改的文件的属组

chown [OPTION]...[OWNER][:[GROUP]] FILE...

[[email protected] test]# chowntest:test fstab

[[email protected] test]# ll

-rw-rw--w- 1 test test 595 Jun12 23:28 fstab

chown [OPTION]...--reference=RFILE  FILE...

基于参考文件的属主、组来更改文件的主、组

常用选项:

-R, --recursive:递归修改;

基于参考文件的属主、组来更改文件的主组

chgrp命令:

作用:改变属组

chgrp [OPTION]... GROUP FILE...

chgrp [OPTION]...--reference=RFILE FILE...

umask:显示或设定文件模式掩码

umask默认值是 002

文件:

666-umask

目录:

777-umask

注意:之所以文件用666去减,表示文件默认不能有执行权限;如果减得的结果中,u,g或o有执行权限时,则需要加1;

显示:umask

设定:umask MASK

注意:此设定仅对当前shell进程有效;

时间: 2024-10-18 01:18:14

Linux用户、组和权限的相关文章

Linux用户,组和权限管理

用户,组,权限 一.了解什么是用户,组和权限 1.对于linux系统来说,简单明了的特点就是多用户,多任务,也就是说一台linux系统的主机上面可以同时允许多个用户登录,当通过多个终端登录时可以同时使用这台linux的系统,然而对于linux习题来说,一切皆文件,别人和自己的工作任务都是以文件的形式存在的,不同的用户之间岂不是没有隐私或者安全而言,其实在linux上不是这样的,我们可以理解linux把每一个用户分配一间屋子,没有钥匙即权限我们是进不去浏览以及修改文件的,但是既然是一间屋子,那当然

linux 用户 组 和权限管理

Multi-task  Multi-Users 每个使用者: 用户标识 . 密码: Authentication(认证机制): Authorization  (授权机制): Account / Audition (审计): 组:用户组,用户容器 用户类别: 管理 普通用户 系统用户 登录用户 用户标识: UserIo ,UID 16bits 二进制数字:0-65535 管理员:0 普通用户: 1-65635 系统用户   1-499(Centos6)    1-1000(CentOS7) 登录用

Linux学习笔记(二)——Linux用户管理和权限管理

Linux系统的权限管理 Linux系统是一个多用户多任务的操作系统,多用户是指系统资源可以被不同用户各自拥有,即每个用户对自己的资源有特定的权限,用户之间互不影响.Linux系统有一套权限管理机制,文件不允许非授权用户访问或修改.这种机制的实现是通过用户和组的形式实现的. 5.1           Linux安全机制 账户管理是Linux安全机制的核心部分.登录Linux系统的用户都会被分配一个的用户账户.用户对系统上文件的访问权限取决于他们登录系统时使用的账户.每个用户的权限是通过创建用户

用户 组 和权限 以及权限的 分类

关于文件的安全我们要从3A验证 说起 1  Authentication:认证 2  Authorization:授权 3  Accouting|Audition:审计 由于系统文件的用户太多为了便于管理 我们便把系统的用户 进行分类 赋予权限 合理地分配资源 所以今天介绍的是 系统用户 用户组 的一些权限的 分配 修改 和文件的 权限修改 和赋权 以及一些特殊权限的用法 用户的分类 管理员:root 0 普通用户:1-65535 系统用户:1-499(CENTOS6) 1-999 对守护进程获

Linux用户及文件权限管理

用户及文件权限管理 一.实验介绍 1.1 实验内容 Linux 中创建.删除用户,及用户组等操作. Linux 中的文件权限设置. 1.2 实验知识点 Linux 用户管理 Linux 权限管理 二.Linux 用户管理 通过第一节课程的学习,你应该已经知道,Linux 是一个可以实现多用户登陆的操作系统,比如"李雷"和"韩梅梅"都可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件.但实际上他们的文件都是放在同一个物理磁

linux文件组、权限等

文件所有者.所在组合其他组  --改变用户所在组    组和在oa系统中的组差不多,用户代表的好像是个体,组有点像角色的意思.不过权限的话并不是个体从组中获得,组仅仅是一个机制,进行部分文件控制与共享,管理权限的机制,有点类似一个容器.            如何在linux中添加组    groupadd policeman       在添加用户时,指定将某个用户添加到哪个组中    useradd -g 组名 用户名 root权限改变某个用户所在的组:    usermod -g 组名 用

Linux用户与“最小权限”原则

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 作为一个Linux用户来说,我们并不需要特别关心下面的机制.但是,当我们去编写一个Linux应用程序的时候,就要注意在程序中实现以下切换(有必要的前提下),以便让我们的程序符合"最小权限"的原则,不给系统留下可能的安全隐患.给你的程序过度的权限的话,就像是吃下去下面的汉堡: 容易让人吃伤的汉堡: 过度的"权限" Linux的用户在登录(login)之

linux用户及管理权限

linux用户大体分为两种:一是:管理员用户:二是普通用户,普通用户又可以分为系统用户和登录用户.因为linux是一个多用户多任务的系统,所以每一个要使用系统资源的用户,都要向管理员申请一个账号,使用这个账号登录到系统.每个用户都拥有一个自己的名字和密码,以登录到用户. 每个用户都有唯一的用户标识(userid,UID),是以16bits二进制数字来表示0-65535.以CentOS为例管理员用户的UID是0:普通用户的UID为1-65535,其中系统用户的UID在centos6及早些版本为1-

linux 用户及文件权限管理

Linux 是一个可以实现多用户登陆的操作系统,比如"李雷"和"韩梅梅"都可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件.但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于 Linux 的 用户管理 和 权限机制,不同用户不可以轻易地查看.修改彼此的文件. 下面我们就来学习一下 Linux 下的账户管理的基础知识. 1.首先查看用户的指令: who am i/whoami 输出的第一列

用户,组和权限

一级标题 二级标题 1.Linux的安全模型 资源分派: Authentication:认证,验证用户身份 Authorization:授权,不同的用户设置不同权限 Accouting|Audition:审计 当用户登录成功时,系统会自动分配令牌token,包括:用户标识和组成员等信息 用户 管理员:root, 0 普通用户:1-60000 自动分配 系统用户:1-499 (CentOS 6以前), 1-999 (CentOS 7以后) 对守护进程获取资源进行权限分配 登录用户:500+ (Ce