Linux中的用户及权限管理

用户及权限管理

Linux具有Muliti-task(多任务)Muliti-Users(多用户)的环境。

用户:为了保护所有使用计算机者的权益不受到损害,所以要实现资源的使用隔离机制,为了实现资源的使用隔离机制,就要标识每一个使用者,而这每一个使用者就是用户。

用户ID:每一个使用者的唯一标识,计算机用来识别使用者。

用户密码:用户的认证手段。Authenticationg(认证),Authorization(授权),Auditiong(审计) 3A

用户类别:分为管理员和普通用户,普通用户又分为系统用户和登录用户。

用户标识:UserID,简称UID。默认采用16bits二进制数字。采用范围:0-65535。管理员的UID为0,永远不变。普通用户:1-65535(60000),系统用户:1-499(CentOS6),1-999(CentOS7),登录用户:500-60000(CentOS6),1000-60000(CentOS7)。用户登录后自动转换为数字标识进行使用,用户登录系统后会有名称解析的过程来识别用户。

名称解析:简单来讲就是名称转换的过程,Username< - - >UID,根据名称解析库进行,这个库包含了用户的全名,家目录等全部信息,位于/etc/passwd。还额外保存了用户的其他附加信息。

:用户组,“盛放“用户的容器。单一的逻辑组件,便于实现权限的分配。

组类别:管理员组和普通用户组,类似于用户分类,普通用户组又分为系统组和登陆组。顾名思义,组也需要组标识。与用户的分类方式不同的是,组的分类更为细致。在用户的角度来看,用户组又可以分为用户的主组(基本组)和用户的附加组。根据组中包含的是一个用户还是多个用户,又可以将组分为私有组和公共组,顾名思义,私有组就是组名和用户名相同且只包含一个用户。组内包含了多个用户就是公共组。

组标识:GroupID,简称GID。管理员组:0普通用户组:1-65535(60000),系统用户组:1-499(CentOS6),1-999(CentOS7),登录用户组:500-60000(CentOS6),1000-60000(CentOS7)。组同样也需要名称解析。

名称解析:groupname,< - - >GID 解析库:/etc/group

认证信息:通过比对事先存储的,与登陆时提供的信息是否一致。

passwd:/etc/shadow    /etc/gshadow 。为了安全,密码采用字符串的形式存放在/etc/shadow    /etc/gshadow 密码库中,并采用单向加密(只能加密,不能解密;提取数据特征码)的机制。

密码的使用策略:1.使用随机密码;2.最短长度不要低于8位;3.应该使用大写字母,小写字母,数字和标点符号四类字符中至少三类;4.定期更换。

~密码的加密算法共有六种:md5,sha1,sha224,sha256,sha384,sha512。为了避免两个用户密码相同,在计算时加入salt添加随机数。

~用户信息库中各种数值从左至右所表达的含义:name:用户名,passwd:可以是加密的密码,也可以是占位符x;UID:用户的id号;GID:用户所属的主组的ID号;GECOS:注释信息;directory:用户的家目录;shell:用户的默认shell,登录时默认shell程序。如图:

~用户的密码从左至右各数值所表达的含义:用户名;加密的密码;最近一次修改密码的时间;最短使用期限;最长使用期限;警告期限;过期期限;保留字段;如图:

~组的信息库从左至右各数值表达的含义:组名;密码;GID;以此组为附加组的用户的用户列表。如图:




相关命令:


useradd:添加用户;useradd [OPTION] user_name;-u: 指定UID; -g:指定基本组ID,此组事先要存在;-c:指明注释信息;-G:指明用户所属的附加组,多个组之间用逗号隔开; -d:以指定的路径为用户的家目录,通过复制/etc/skel此目录并重命名来实现,指定的家目录如果事先存在,则不会为用户复制环境配置文件。-s:指定用户的默认shell,可用的shell列表存储在/etc/shells文件中; -r:创建系统用户。

useradd –D:显示创建用户的默认配置;

useradd –D 选项 :修改默认选项的值。也可编辑/etc/default/useradd来修改。

注:创建用户时产生的诸多默认设定配置文件为etc/login.defs

注:系统用户:为了能够让后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户,这类用户从不用登录系统。

usermod:修改用户属性:usermod [OPTION]  username;-u:修改用户的ID为指定的新UID; -g:修改用户的基本组;-G:修改附加组,原来的附加组会被覆盖;-a:追加附加组,与-G一同使用。-c:修改注释信息; -d:修改家目录,但用户信息不会移动;-m:与-d一同使用,保留原来家目录的内容; -l:修改用户名 ;-s:修改修改默认shell;-L:锁定用户密码禁止登录;-U:解锁用户密码。

groupadd:添加组;groupadd  [OPTION]group_name;-g:指定GID,默认为上一个组的GID+1 ; -r:创建系统组。

groupmod:修改组属性;groupmod  [OPTION] group_name;-g:修改GID; -n:修改组名。

userdel:删除用户; userdel [OPTION] username ; -r:删除用户时一并删除其家目录。

passwd:passwd  [OPTION] [USERNAME](1)passwd 修改用户自己的密码; (2)passwd username修改指定用户的密码,但仅有root有此权限。-l  -u:锁定和解锁用户; -d:用户密码串; -e DAYS :过期期限,日期。-i  DAYS: 非活动期限; -n DAYS: 密码的最短期限; -x DAYS: 密码的最长使用权限; -w DAYS: 警告期限。

--stdin:echo“string” | passwd –stdin 用户名 (快捷添加用户密码)。

gpasswd:gpasswd [OPTION] group; -a:向组中添加用户。 -d:从组中移除用户

newgrp:newgroup [-] [group]临时切换指定的组为基本组,id查看,exit退回原来基本组。

-: 会模拟用户重新登录以实现重新初始化其工作环境。

chage:更改密码过期信息。chage [OPTION] 登录名。-d:修改密码修改期限; -E:修改过期日期; -m:修改最短使用期限; -M:修改最长使用期限。

id:显示用户的真实和有效ID信息。id [OPTION] ….[USER].-u:仅显示有效的UID; -g:仅显示用户的基本组ID; -G: 仅显示用户所属的所有组ID; -n:显示名字而非ID;-r:显示用户真实的ID。

suswitch user切换用户。分为登录式切换:会通过重新读取用户的配置文件来重新初始化。su – USERNAME;su -l USERNAME

非登录式切换:不会读取目标用户的配置文件进行初始化

-c:su – 目标用户 –c ‘COMMAND’不切换用户,仅以指定用户的身份运行此处指定的目录。

注:管理员可无密码切换至其他任何用户,非管理员切换至其他用户许给出目标用户密码。

权限管理:

进程的安全上下文:进程以其发起者的身份运行;进程对文件的访问权限取决于发起此进程的用户的权限。

权限:r:读; w:写  x:执行。采用ls –l [FILE]..命令查看文件权限等信息。如图:

   文件信息从左至右第一位表示文件类型,左边三位表示文件属主的rwx权限,中间三位表示文件属组的rwx权限,右边三位表示其他用户rwx权限。

权限应用模型:发起进程的用户如果是文件属主,则应用左三位文件属主权限,如果发起进程的用户不是文件的属主,而属于该文件的属组,则应用中三位属组权限,否则既不属于属主,又不属于属组,则应用右三位其他权限。

文件:r:可获取文件的数据; w: 可修改文件的数据;x:可将此文件运行为进程.

目录:r :可使用ls命令获取其下的所有文件列表;w:可修改此目录下的文件列表,即创建或删除文件;x:可cd至次目录中,且可使用ls –l来获取所有文件的详细属性信息。

mode模型:rwxrwxrwx:左三位定义user(owner)的权限,中三位定义group的权限,右三位:定义other的权限。

owenership:user,group

权限组合机制:--- 000 0

--x 001 1

-w- 010 2

-wx 011 3

r-- 100 4

r-x 101 5

rw- 110 6

rwx 111 7

权限管理命令

chmod命令:(1)chmod [OPTION]... MODE[,MODE]...FILE...

(2)chmod [OPTION]... OCTAL-MODE FILE...

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

三类用户:u:属主; g:属组; o:其他; a:所有

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

MODE表示法:赋权表示法:直接操作一类用户的所有权限位rwx  u=;g=;o=;a=。授权表示法:直接操作一类用户的一个权限位u+ u-;g+ g-;o+ o-; a+ a-;

(2)       chmod[OPTION]... OCTAL-MODE FILE...

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

选项:-R:递归修改。

注:用户只能修改属主为自己的那些文件的权限。

从属关系管理命令:chmod,chgrp。

chown:(1)chnown [OPTION]…[OWENR][:[GROUP]] FILE…

( 2 )chown [OPTION] …--reference=RFILE FILE……

选项:-R递归修改

chgrp:(1)chgrp [OPTION]... GROUP FILE...

(2)chgrp [OPTION]... --reference=RFILEFILE...

注:仅管理员可修改文件的属主和属组;

umask:文件的权限反向掩码;遮罩码;  文件:666 – umask;目录:777 – umask

注:之所以文件用666去减,表示文件默认不能拥有执行权限,如果减得的结果中有执行权限,则需要将其加1;

umask:023;   666-023=644  777-023=754

  umask命令:umask 查看当前umask ;umask MASK :设置umask。

学习心得:在linux系统中采用的多用户机制会让用户操作起来更方便,更加便于管理,更加安全。用户就像是进入系统的一把钥匙,而用户组就像是一把钥匙串,系统就像是这所房子。这把钥匙串上有多个钥匙,有的钥匙能打开房屋的所有门,有的只能打开个别门。而这些门就像是对用户的权限,有了这把钥匙就可以进入屋内进行想要的操作,顾名思义就是对系统进行规定允许范围内的事情,而权限管理机制又给每个用户设定了对文件的各种权限,在linux系统中一切皆文件,用户有了相应的操作文件的权限就等于有了操作系统的各种权限,要注意的是尽量避免使用管理员的身份操作文件,因为管理员权限太大,防止我们在一些失误操作时造成不必要的损失。

时间: 2024-08-01 10:45:01

Linux中的用户及权限管理的相关文章

Linux中的用户和权限管理

Linux是多用户,多任务操作系统:多用户是指多个用户可以同时使用系统资源,而多任务指同时运行多个进程. 用户是能够获取系统资源的权限的集合,Linux通过用户实现资源分隔. 用户组是具有相同特征用户的逻辑集合,是用户的容器. 1.用户: (1)用户类别 管理员:root 普通用户: 系统用户:仅仅用于用于启动服务进程. 登录用户:用于使用者交互使用,是系统资源的使用者 (2)用户在操作系统中用UID来标识: UID是16bits的二进制数字,如此范围为:0-65535.Linux 系统对用户U

Linux中的账号和权限管理(理论讲解部分)

小伙伴们本次给大家带来的是Linux中的账号和权限管理,这里我们首先要明确的就是这个权限是文件或者目录的权限.接下来我们会从以下几个部分进行了解: 用户账号和组账号概述 用户账号和组账号管理 查询账号信息 查看目录或文件的属性 设置目录或文件的权限 设置目录或文件的归属 用户账号和组账号概述Linux基于用户身份对资源访问进行控制1.用户账号:? 超级用户? 普通用户? 匿名用户(everyone)? 程序用户(人为不可使用,单独管理系统中某个应用程序存在的服务)2.组账号:组是系统用户权限的集

Linux 中的用户组与权限管理

Linux中的用户以令牌token,identity为标识符号,每一个用户都拥有一个 Username和UID,root用户比较特殊,他的的UID为0.普通用户的UID由系统在1-60000范围内自动分配,系统用户的UID默认取值范围为1-499,Centos7之后范围扩大至1-999,登录用户的UID取值范围为500-60000,Centos7后调整为1 000-60000. 拥有相同权限的用户可以组成一个组,用户必须属于一个且只有一个主组,且组名同用户名,且仅包含一个用户.一个用户可以属于零

浅析Linux系统下用户与权限管理

Linux作为一种多用户多任务操作系统,在日常的使用中不可避免地要划分出一个角色的概念来管理和使用计算机,这个角色与每一个计算机使用者关联,在Linux中称这种角色为用户.而在每一个用户使用计算机的过程中,又必然存在对有限计算机资源使用的限制性,那么操作系统就必须提供一种途径来保证每个用户独立.合理的使用计算机. 一.用户和用户组管理   (一)用户及用户组相关基本概念  用户:泛指计算机的使用者.用计算机可识别的用户ID(UID,user id)标识. 用户组:用户容器,用来将多个用户合并为一

linux ftp 添加用户及权限管理

Linux下创建用户是很easy的事情了,只不过不经常去做这些操作,时间久了就容易忘记,顺便配置一下FTP.声明:使用Linux版本release 5.6,并以超级管理员root身份运行. 1.创建用户,并指定分组和主目录 useradd -d /home/lch -g root lch 还可以增加其他参数,比如指定用户使用shell等,具体的google一下 2.设定密码 passwd lch 3.查看.改变.添加用户分组 [[email protected] ~]# groups lch l

浅析mysql主从复制中复制用户的权限管理

在用复制账号对mysql salve管理过程中,使用哪些权限合适?首先看一下mysql官方提供的权限表: 权限 列 上下文 CREATE Create_priv 数据库.表或索引 DROP Drop_priv 数据库或表 GRANT OPTION Grant_priv 数据库.表或保存的程序 REFERENCES References_priv 数据库或表 ALTER Alter_priv 表 DELETE Delete_priv 表 INDEX Index_priv 表 INSERT Inse

linux中的用户与权限

Linux是一款支持多用户多进程的操作系统,为了实现对系统中资源的有效管理及配置,使用了登陆账户与对应账户权限的方式来限制每一个登陆系统的使用者. 使用者在登陆Linux系统时,会先对使用者进行身份认证(authentication),通过系统账号和密码来实现.用户登陆成功时,则会按照之前设定好的账户权限为使用者授权,规定了其可以访问.使用系统中的哪些资源(authorization).同时,为了防止已登陆的使用者恶意在系统上操作,影响其他用户的利益,还需要对所有登陆用户进行使用行为的监控(au

Linux中的用户丶组管理

主要以命令进行: 组:groupadd,  groupmod, groupdel 用户:useradd, usermod, userdel 认证:passwd 组解析库文件:/etc/group GRPNAME:x:GID:user1, user2, ... 组名:密码点位符:GID:以此组为附加组的用户列表,以逗号分隔 groupadd命令:添加组 groupadd  [选项]  group -g  GID:指明GID: -r, --system:系统组: groupmod命令:修改组信息 g

Linux常用命令-用户,权限管理

ssh:远程登录 ssh [email protected] ssh 用户名@ip (1)whoami:查看当前用户名 whoami该命令用户查看当前系统当前账号的用户名.可通过cat /etc/passwd查看系统用户信息. (2)who:查看登录用户 who:查看当前登录的用户信息 (3)exit:退出登录 如果是图形界面,退出当前终端: 如果是使用ssh远程登录,退出登陆账户: 如果是切换后的登陆用户,退出则返回上一个登陆账号. (4)useradd:添加用户账号 useradd 新的用户