当前位置: 首页 > Linux

linux用户和权限管理看完就会用上

时间:2023-04-06 02:04:11 Linux

前言光头才能变强快期末考试了,半个月没写文章了。本文主要梳理一下Linux下用户和权限的知识点。那么接下来开始吧,文章有什么错误还请大家多多包涵,评论区指正也不要吝啬~1.Linux下的用户Linux是多用户系统,我们可以登录到linux同时有多个用户~账号的本质以上是一个用户在系统上的标识。Linux中的账户包括用户账户普通用户账户:系统的任务是执行普通的工作超级用户账户(或管理员账户):系统的任务是管理普通用户和整个系统。群组账号(群组是用户的集合)标准群组:一个标准群组可以容纳多个用户私有群组:只有私有群组中的用户当一个用户属于多个群组时,这些群组就是主群组(初始群组):登录系统时的用户组。附加组:登录后可以切换的其他组。如前所述,账户的本质是用户在系统上的身份标识。这些标识保存在文件中:用户名和UID保存在/etc/passwd文件中,文件权限(-rw-r--r--)组和GID保存在/etc/group文件中,和文件权限(-r--------)用户密码(passwords)保存在/etc/中的shadow文件中,文件权限(-rw-r--r--)组密码保存在/etc/gshadow文件,文件权限(-r--------)的意思是:我们创建了User,用户的信息保存在不同的文件中。有了以上知识点,我简单描述一下创建用户时会发生什么:用户名和UID保存在/etc/passwd文件中,用户的密码通常用影子密码保护。当用户登录时,他们被分配了一个主目录和一个正在运行的程序(通常是一个shell)。如果不指定他所属的组,RHEL/CentOS会创建一个与该用户同名的私有组,并将该用户分配到这个私有组中。我们再回顾一下:账户的本质是用户在系统上的标识,这些标识保存在文件中。也就是说:我们可以直接编辑修改系统账号文件来维护账号。但不建议这样做。如果要这样做,最好使用命令检查自己编辑的语法是否有问题:pwck:验证用户账户文件和认证信息的完整性。此命令检查文件“/etc/passwd”和“/etc/shadow”中每一行字段的格式和值是否正确grpck:验证组帐户文件和认证信息的完整性。此命令检查文件“/etc/group”和“/etc/gshadow”中每一行字段的格式和值是否正确。既然不建议我们直接编辑文件来管理用户,Linux肯定有现成的命令供我们使用:1.1管理Linux用户的命令用户管理:useraddusermoduserdel组管理:groupaddgroupmodgroupdel批量管理用户:batchAdd/更新一组账号:newusers批量更新用户密码:chpasswd组成员管理:添加用户到标准组gpasswd-a<用户账号名><组账号名>usermod-G<组账号名><用户账号名name>从标准组中删除用户gpasswd-d<用户帐户名><组帐户名>密码维护(禁用、恢复和删除用户密码):设置用户密码:passwd[<用户帐户名>]禁用用户帐户密码passwd-l<用户账户名>查看用户账户密码状态passwd-S<用户账户名>恢复用户账户密码passwd-u<用户账户名>清除用户账户密码passwd-d<用户账户名>密码老化设置:修改/相关配置etc/login.defs中的参数设置现有用户的密码时效:chage命令用户切换命令:su直接切换到超级用户sudo直接执行带有sudo命令前缀的系统管理命令。执行系统管理命令时不需要知道超级用户的密码,可以使用普通用户的密码。区别用户相关命令:id:显示用户当前的uid、gid,以及用户所属的组列表groups:显示指定用户所属的组列表whoami:显示当前用户w/who的名称:显示登录用户及相关信息newgrp:用于将用户当前所属组转换为指定组账号。用户必须属于该组才能正确执行该命令。1.2Linux用户练习使用cat命令观察以下文件:/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow;显示useradd命令默认值添加用户参数创建linux账号jkXX(XX为学号后两位),要求用户组为users,并设置密码;观察/etc/passwd和/etc/shadow文件变化;退出root账户,使用jkXX账户登录,在其主目录下创建myfirst文件,将myfirst文件以长格式列出,即可使用root账户登录;添加组jsj;设置用户jkXX为jkXX组用户,观察/etc/passwd、/etc/group和/etc/gshadow文件变化添加新用户airXX(XX为学号后两位),观察用户id和组id新用户airXX;然后删除用户,注意不要在命令中添加选项,观察用户文件和组文件的变化;观察airXX用户的目录是否存在;影子文件中的密码是*和!!代表什么?答:*表示该账号已被禁用;!!表示密码锁。airXX用户组的id是多少?这个群是什么类型的群?这样做有什么好处?答:air08用户组id为501,属于私有组。每个没有指定组的用户都会创建一个同名的组。这样的组称为私有组。只有一个用户,有利于防止信息泄露和不合理授权。总之,有利于安全管理。默认删除用户但保留用户的主目录有什么好处?答:保留用户目录,防止用户目录下有价值的数据被误删。使用cat命令观察文件/etc/passwd;模仿passwd文件的格式,用vi编辑一个新文件,文件名为userXX(XX为学号后两位),文件包含3条记录,用户名为jkXX(XX为最后一位)学号的两位数),peter,jason,他们的userid大于1000,他们的groupid大于1000,要求peter和jason在同一个组;使用命令newusers根据文件userXX的内容批量生成用户;观察/etc/passwd文件的变化。使用cat命令观察文件/etc/shadow;使用vi编辑一个新文件,文件名为mimaXX(XX为学号后两位),文件包含3条记录,每条记录的用户名与上一步要求的相同,密码是自己设置的,用户名和密码用冒号隔开:;使用命令chpasswd根据文件mimaXX的内容批量生成密码;观察文件/etc/shadow的变化;再次使用命令chpasswd-m批量生成密码,观察文件/etc/shadow的变化;注销root账号,使用jkXX账号登录。注销jkXX账号,返回root账号,观察/etc/shadow文件;使用passwd命令锁定用户jkXX,观察/etc/shadow文件的变化;然后退出root账号,用jkXX账号登录,是否成功?使用chage命令查看peter账号的时间设置;重置peter账号的时间,要求密码2天内不能修改,密码最长有效期为90天,密码到期前5天通知用户,密码到期7天无效;使用chage命令再次查看peter账号的时间设置;使用root账户登录;使用su切换到jason帐户;使用cd进入用户主目录;新建文件abc,以长格式列出abc文件;观察用户和文件的用户组属性锁定账户后影子文件会发生什么变化?答:被锁定的账号密码前会有一个被锁定的标志!!su切换用户后,新建的文件属于哪个用户?A:新文件属于切换后的用户。两次执行chpasswd命令结果一样吗?md5和sha512哪个加密算法更安全?答:两次执行chpasswd命令的结果是不一样的。默认使用sha512加密算法;当使用-m选项时,使用md5加密算法;sha512更安全,因为加密信息长度更长,破解计算量大。创建三个普通用户账号,要求如下:用户名为jkXX(XX为学号后两位)、peter、jason,其中jkXX和jason为同一普通组成员;观察/etc/passwd文件中的更改。为jkXX账号添加根组;分别练习id、groups、whoami、who命令显示当前账号信息;使用su命令切换到jkXX账号,分别练习id、groups、whoami、who命令显示当前账号信息。使用newgrp切换jkXX账号组,分别练习id、groups、whoami、who命令,显示当前账号信息。2、权限管理Linux是一个多用户操作系统,允许多个用户同时登录并在系统上工作。为了保证系统和用户的安全,Linux自然有自己的一套权限管理机制!相信用过linux的同学,在调取文件夹文件的时候,经常会用到ls-l命令,一大串数据就出来了。你能读懂数据吗?比如:drwxr-xr-x3osmondosmond409605-1613:32nobp其实很简单:其实我们在看权限的时候,就是看drwxr-xr-x这样的一系列东西。看似复杂,其实不然,一键搞定明白了。我们来分解一下:这9个字符分成3组,组成3组权限控制。第一组控制文件所有者的访问权限。第二组控制所有者用户组的其他成员的访问权限。第三套控制系统其他用户访问权限rwx的含义分别:看这里,如果你看懂了前面的,那我想你就很容易理解drwxr-xr-x这一系列的东西了:d是一个文件夹,而后面也有9个字母,每个字母分成3个一组,-号表示没有。那么这个文件夹的权限就是:当前用户可读可写可执行,同组用户可读可执行,其他用户可读可执行,是不是很简单??r-读,w-写,x-执行,很好理解。为方便起见,可以将这些rwx命令替换为八进制数据。相信看完下面的demo,你就会知道是这样的:权限的优先顺序:如果UID匹配,则用户拥有者(user)权限,否则,如果GID匹配,则组(group)权限应用。如果它们都不匹配,则将应用其他用户(other)权限。超级用户root拥有所有权限,无需特别说明。chown更改文件或目录的所有者(owner)chgrp更改文件或目录所属的组:默认构建掩码告诉系统在创建文件或目录时不应授予其哪些权限。默认的umask值是022,我们看下面的例子应该就能理解了:除了上面提到的权限,Linux还提供了三种特殊的权限:SUID:使用拥有命令运行的用户的权限,而不是命令执行者的权限SGID:使用命令的组权限运行。Sticky-bit:目录中的文件只能被拥有该文件的用户和root用户删除。它们是这样表示的:SUID和SGID用s表示;Sticky-bit用t表示;SUID占用owner的x位置表示SGID占用group的x位置表示sticky-bit占用其他人的x位置例如:drwxrwxrwt5rootroot409606-1801:01/tmpithassticky-位许可。-rwsr-xr-x1rootroot234202010-08-11/usr/bin/passwd有SUID权限SUID,SGID,sticky-bit也有数字表示法:使用例子:linux中有很多security内核功能。EXT2/3/4文件系统的扩展属性(ExtendedAttributes)可以在一定程度上保护系统的安全常用扩展属性:A(Atime):告诉系统不要修改这个文件的最后访问时间。使用A属性可以提高某些性能。S(Sync):一旦应用程序写入该文件,系统立即将修改后的结果写入磁盘。使用S属性可以最大化文件的完整性。a(AppendOnly):系统只允许在该文件后追加数据,不允许任何进程覆盖或截断该文件。如果目录具有该属性,系统将只允许在该目录下创建和修改文件,而不能删除任何文件。i(Immutable):系统不允许对该文件进行任何修改。如果目录有这个属性,那么任何进程都只能修改目录下的文件,不允许创建和删除文件。a属性和i属性对于提高文件系统的安全性和保证文件系统的完整性有很大的好处。常用命令:显示扩展属性:lsattr[-adR][file|directory]??修改扩展属性:chattr[-R][[-+=][attribute]]2.3权限管理练习使用root账号,创建文件aaaXX(XX为学生学号后两位),查看文件权限长格式;使用chmod命令,文本设置方式,对同一组aaaXX文件添加write属性,观察结果;使用chmod命令,数字设置一般情况下,将aaaXX文件的权限设置为766,观察结果;切换到peter账号,查看当前umask,观察结果;创建目录foldXX(XX为学号后两位),查看其权限;创建一个新文件bbb,检查其权限;将unmask改为066,新建一个文件ccc,检查其权限并切换到jkXX帐户;创建文件myfile,观察其属性;使用chgrp将文件myfile组属性更改为root;尝试更改文件myfile的主要属性是root,可以吗?切换到root账户,将文件myfile的main属性修改为root,观察到的结果编号设置为766,说明文件权限是多少?答:766表示文件权限为rwx-rw-rw-为什么用jkXX账号更改文件myfile的属主失败?答:因为只有root账号才能使用chown,那么umask对新建文件属性的影响是否和022、066一样?为什么?答:影响当然不同。umask定义默认情况下不应获得的权限。066转成二进制后,多了两个限制位。用root账号登录,将/usr/bin/dir文件复制到用户家目录下,以长格式列出,将文件的suid和sguid设置为1,以长格式列出;切换账号为jkXX,运行复制的文件dir(注意当前路径下的文件要带路径运行,如./dir);切换到jkXX账号,进入/tmp目录,创建文件夹myfold,设置文件夹myfold权限为777,设置sgid和sticky-bit为1,长格式列表,观察myfold属性;进入myfold,新建文件aaa,设置属性为任何人可读可写,并以长格式列出;切换到jason账号,进入/tmp/myfold目录,删除aaa文件,能删除吗?root帐号,进入用户家目录;创建文件bbb文件,检查文件的扩展属性;将扩展属性i添加到文件bbb中,然后尝试删除文件,是否成功,如何删除;创建一个ccc文件,给文件ccc添加扩展属性a,使用long格式列出/bin目录并将输出重定向到ccc文件,观察ccc文件长度的变化,使用long格式列出/etc目录,并重定向输出到ccc文件,是否成功切换到jkXX账户,在/tmp目录下创建目录myshare,使用getfacl查看myshare目录的文件访问控制表;将myshare文件夹设置为jason用户权限的rwx,查看文件访问控制表的变化;切换到jason账号,进入myshare文件创建文件yyy,是否成功;切换到peter账号,进入myshare文件创建zzz文件,是否成功,为什么?myfold目录下,为什么jason账号不能删除一个任何人都可以读写的文件?答:因为文件所在的文件夹myfold被其所有者jk08设置了stickybit位,所以该文件夹下的所有文件只有文件所有者和root用户才能删除。为什么peter账号无法在myshare文件夹中创建文件?答:因为myshare文件夹属于jk08用户,所以只有jk08有这个目录的rwx权限。另外,使用FACL方式,将目录的rwx访问权限开放给jason用户;peter既不是文件夹的所有者,也不是FACL中的rwx权限;根据权限设置,peter只有文件夹的rx权限。因此,无法创建该文件。添加扩展属性a后,使用重定向将内容输出到ccc文件可能会失败。怎么才能输出成功呢?答:重定向>>应该用在追加方式,可以在文件末尾追加内容,以符合文件扩展名属性a的安全规定。3.小结本文主要总结了linux下操作用户和权限的知识~~~这两个知识点在linux下也是很重要的。它们是学习Linux的基础~继续完善之前的思维导图:如果文章有不对的地方欢迎指正,大家互相交流。习惯微信看技术文章,想获取更多Java资源的同学可以关注微信公众号:Java3y。为了大家方便,我刚刚建了一个qq群:742919422,大家也可以去交流。感谢您的支持!希望多介绍给其他有需要的朋友。文章目录导航:https://zhongfucheng.bitcron.com/post/shou-ji/wen-zhang-dao-hang