用户与用户组相关概念
我们装完虚拟机后会创建一个账号,那个账号我们可以理解为用户,也就是操作系统的人,我们叫做用户。Linux是一个多任务多用户的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统,我们的系统账号一定有唯一的用户名,就比如我们的手机号码对应唯一的身份证号码,那么在我们的Linux系统里,每个用户都有唯一的用户名和各自独有的口令。
用户 我们的用户分为三类:超级用户,普通用户,虚拟用户。 在linux系统中,超级用户就是具有最高的管理权限,就好比安卓手机我们经常说的root一下,就是为了获取最高的管理权限,那么在linux系统里,我们的超级用户的代表符号也是root。 我们的普通用户只能对自己目录下的文件进行访问和修改,具有登录到系统的权限,就比如下图,我们装虚拟机时创建了xiaolang这个用户,这个用户就是普通用户,那么我们在root用户的家目录下就无法创建文本,它提醒我们权限不够。 虚拟用户的话其实也就是在linux系统里那些软件所拥有的用户,他们并不能登陆系统,主要的作用只是方便管理系统,如: bin、adm、nobody用户等等。
用户组 用户组其实就是具有相同权限系统的一组用户,就好像是具有特征用户的一个集合,就好比我们日常的学习小组。 linux将用户进行分组管理,更大程度上简化了工作。 用户与用户组的关系: 1.一对一 : 一个用户可以存在一个组中,是组中的唯一成员 2.一对多∶一个用户可以存在多个用户组中,此用户具有多个组的共同权限 3.多对一∶ 多个用户可以存放在一个组中,这些用户具有和组相同的权限 4.多对多∶多个用户可以存在多个组中,即以上3种关系的扩展 参考链接:http://c.biancheng.net/view/3038.html
主要组和附属组: 用户可以同时属于多个组,其中一个主要组,多个附属组 我们可以这样想,主要组可以看作你面前拥有的电脑,那么附属组,相当于你在网吧租的电脑,只要你有钱想租多少都行,也就是说你的用户(test)可以有很多个附属组,所有的这些都归你本人也就是User用户使用。
linux相关文件配置
/etc/passwd存储当前系统中所有用户的信息(密码除外) 我们在终端输入:vim /etc/passwd(若没有安装vim编辑器先安装,安装教程:https://blog.51cto.com/u_14413105/2434434,或者使用cat命令也可)
我们可以发现这一堆用 “ :” 隔开的东西,这里每个小块就代表一个用户的配置信息,基本信息格式都是一样的 我们由上图可以知道,第一个字段:用户名 第二个字段(×) :加密后的密码 第三个字段(数字1):用户ID 第四个字段(数字0):用户组ID 第五个字段(第二个root ) :用户的描述信息,默认用户的全名或空值 第六个字段(/root ) :用户的主目录 第七个字段(/bin/bash ):登录shell,字段/sbin/nologin表示禁止登录
每个字段的意义如下所示: 我们创建的普通用户格式(下图)也可以通过上图分析出来。
在终端输入bin/bash命令,可以发现下图:
/etc/shadow存储当前系统中所有用户的密码信息 普通用户表示形式: /etc/group存储当前系统中所有用户组信息 第一个字段( root ) :用户组组名 第二个字段(×):加密后的用户组密码 第三个字段(0)∶用户组ID 第四个字段(空值):用户组的成员列表,多个组成员用逗号分隔
/etc/gshadow储存用户组密码的一类信息
第一个字段:用户组名称 第二个字段:加密后的用户组密码,如果是空或 ! 代表没有密码 第三个字段:用户组管理员,空值代表没有组管理员 第四个字段:用户组的成员列表,空值代表无成员列表
上图显示了他们彼此的关系。
用户命令
useradd 用户名: 创建用户,同时创建与用户名同名的组 useradd -g 组名 用户名: 创建用户并指定用户组 useradd 用户名 -s xxx: 创建用户并指定用户登录后所使用的shell,如果值为/sbin/nologin或者/bin/false时,表示禁止该用户登录 usermod -g 用户组 用户名: 修改用户所在的用户组 usermode -l 新用户名 用户名: 修改用户名 userdel 用户名: 删除用户,不删除用户的家目录( - r 参数同时删除家目录)
比如如下图,当我们创建了一个dog的新用户时,系统会给我们整一个叫dog的用户组,里面创建一个叫dog的用户。 修改密码 普通用户直接输入passwd命令修改自己的密码。 普通用户设置密码必须符合密码原则,root用户可以任意设置
passwd 用户名: 修改用户密码(如果是新创建用户即为设置密码) gpasswd 用户组: 修改/设置用户组密码 用户管理其他命令 su 用户名: 切换用户身份,如果不带参数,则切换为root身份 id 用户名: 显示指定用户信息,包括用户编号、用户名,组编号、组名 whoami: 显示当前登录用户名
下图显示了,创建了一个dog的用户,然后我们又用 userdel -r dog的命令删除此用户
passwd dog我们给dog的用户创建密码,这里系统可能会提示你的密码强度不够之类的提示,我们可以暂时忽略。 我们注销当前登录账号后,就会发现我们的系统又多了一个我们所创建的新的用户。
id命令 whoami: 显示当前登录用户名
linux权限控制
在生产服务器上,如果要让普通用户登录,就要给他分配合理的权限,在服务器上需要为用户严格定义权限等级,否则如果所有人都是root权限,权限过高容易导致出现误操作、盗取账号等风险,所以要进行权限控制。
Linux文件属性说明 使用指令:ls -lih
使用指令 ls -l、ls -lh
文件权限
我们也可以使用数字来表示权限
注意: 1.root账户不受文件权限的读写限制,执行权限受到限制 2.用户获取文件权限的顺序︰先看是否为所有者,如果是,则后面权限不看;再看是否为所属组,如果是,则后面权限不看 3.缺省创建的文件(系统默认的文件,缺省就是默认的意思)不可授予可执行的权限,基于最基本的安全机制,防止病毒等
我们上述的权限对于文件和目录又有着不同的意义: 针对文件而言: r∶读取文件内容,如cat、more、tail、head等 w∶修改文件内容,如vim、echo等 x∶执行权限,如命令、脚本等,对除二进制程序以外的文件没什么意义
针对目录而言: r : 查看目录下的文件列表如ls w : 删除和创建目录下的文件,如 touch、mkdir、rm x : 可以cd进入目录,能查看目录中文件的详细属性,能访问目录下文件内容(基础权限)
[root@localhost ~]# chmod[选项]模式文件名 选项:-R表示递归 权限字母表示法:[ugoa][±=][rwx] (u表示user是使用者的意思,g是group是组的意思,o是other是其他用户的意思,a是all是全部的意思。+ 是增加权限的意思,- 是剔除权限的意思,= 是赋予新的权限的意思) 权限数字表示法:[mode=421] 权限数字: r - 4 , w - 2 , x - 1,无权限 - 0 (我们的权限一定是针对于文件所有者,文件所有组,其他用户三者而言,所以会出现下面的各种数字组合,权限的数字之和其实就是所具有的权限,比如数字 7 是4+2+1,也就是说包括了r、w、x三种权限之和) 常用组合: 777 最高权限, 644 普通文件权限, 755 执行权限
举例: 为文件的所有者附加执行权限∶ [root@localhost ~]# chmod u+x test.txt为所有者赋予所有权限 [root@localhost ~]# chmod u=rwx test.txt为所有人(所有者、所属组、其他人)赋予所有权限 [root@localhost ~]# chmod a=rwx test.txt为文件赋予执行权限:rwxr-xr-x [root@localhost~]# chmod 755 test.txt
改变文件或者目录所有者
[root@localhost ~]# chown用户名文件名#修改文件所有者 [root@localhost ~]# chown所有者:所属组文件名#同时改变所有者和所属组
选项:-R表示递归,处理指定目录及其子目录下的所有文件
举例: 将test文件的所有者修改为icq [root@localhost ~]# chown icq test 修改test文件的所有者和所有组修改为: icq、icqtest [root@localhost ~]# chown icq:icqtest test
改变文件或者目录所有组 [root@localhost ~]# chgrp用户组文件或目录#改变文件或目录的所属组
注意:能更改文件或目录的所有者和所有组的用户是root
举例: 将test.txt文件的所属组由root更改为icqtest [root@localhost ~]#chgrp icqtest test
显示、设置文件的默认权限 [root@localhost ~]# umask [-S]# 显示、设置文件的默认权限 参数说明:-S以rwx形式显示新建文件的默认权限 命令说明:对于windows而言默认权限是从上级目录继承而来的,而linux则是通过umask权限设定的·对于root用户而言,文件的默认权限为644,目录的默认权限为755 对于普通用户而言,文件的默认权限是666,目录的默认权限是755 举例: 查看默认权限 [root@localhost ~]#umask 将新创建的文件权限设置为rwxr-xr-- ,可以用777减去754,得到203 [root@localhost~]#umask 023
补充: Linux中chmod -R 递归修改文件权限操作 :https://blog.csdn.net/fly_wt/article/details/82986504
Linux umask详解:令新建文件和目录拥有默认权限 : http://c.biancheng.net/view/764.html
“我是个沉默不语的靠着墙壁晒太阳的过客。”
|