15.4 序言
我们之前已经了解了关于用户管理的一些基础命令,本章节我们就来了解一下关于文件权限的一些小知识以及基于某些文件来手动创建一个用户,话不多说,我们开始吧!
15.5 文件权限
在linux中,文件都是通过查看属主,属组和其他用户的权限来进行运行,查看或修改的,而在这里就涉及到文件权限的问题了,而我们在上篇文章已经说过了文件权限的属性问题,在这里就不重新赘述了,我们在这里着重了解一下文件的权限,我们可以通过ls -l 命令来查看文件属性,自然也可以查看文件权限了,还是老规矩,我们通过举例来说明一切问题!
我们查看etc下的passwd文件的属性及权限,查看命令如下:
ls -l /etc/passwd
执行结果如下图
如上图,开头的十个字符就是文件的属性位及权限位我们在上篇文章已经讲过了, "."前面的依次为文件属性,之后为文件属主的权限,文件属组的权限以及其他用户对于该文件的权限,
常见的文件表示类型:
- -:一般文件
- d:目录文件
- l:链接文件
具体文件权限有以下分类
文件权限分类:
- r:可以执行cat、head、tail等命令读取文件中的内容
- w:可以用vi/vim或者重定向等操作向文件中写入内容或着修改内容
- x:可以执行文件
如果文件为目录文件的话,则
目录权限分类:
- r:可以执行ls命令,来查看目录下有哪些文件
- w:可以在目录执行文件创建和删除等操作
- x:可以执行cd等命令
注意:
- 每一类用户的权限顺序都是:读、写、执行
- 如果相对应的权限,就会出现字符,没有就会显示
而后面的两个root则代表用户属主及属组,(这里我们在上一篇文章中已经了解过了,这里不多做赘述,仅说明用户角色简写)
用户角色简写如下:
- 属主用户(u)
- 属组用户(g)
- 其他用户(o)
- 全部用户(a)
文件属性就暂且到这里,接下来我们来了解一些相关命令吧!
15.6 文件属性相关命令
15.6.1 chown
作用:修改文件的属主格式:
chown 文件属主.文件属组 [-R] 文件名称
选项:
- -R:在修改目录的时候,将目录的目录中的文件一并修改
举例:
修改文件/passwd文件属主及属组均为ch230
chown ch230.ch230 passwd
看结果
chmod 赋权 文件名
ok,下一个
15.6.2 chgrp
作用:修改文件的属组格式:chgrp 用户名 [-R] 文件名
选项:
- -R:在修改目录的时候,将目录的目录中的文件一并修改
用法跟上述chown用法一样,这里不做举例!
15.6.3 chmod
作用:修改文件的权限
格式:chmod 赋权 文件名
值得一提的是,这里有两种赋权方法,
方法一:(通过用户身份简称对文件进行赋权)
- +:增加权限(在原有的基础上修改)
- 例子:chmod o+w 11.txt 给其他用户增加写的权限
- -:去除权限(在原有的基础上修改)
- 例子:chmod g-r 11.txt
- =:将权限修改位指定的权限(和原权限无关)
- 例子:chmod u=rwx,g=rw,o=r 11.txt
方法二:(通过数组对文件进行赋权)
数字表示权限:
- 0 :无权限
- 1 :执行;
- 2 :写;
- 3.:写执行;
- 4 :读;
- 5: 读执行;
- 6:读写;
- 7:读写执行;
(这里要注意,用数字方法会将文件本身重新赋权,因此要提前了解文件本身权限方便进行赋权!!!!)
例子:将/passwd文件属主修改为读写执行,其他属性不变chmod 744 passwd
看结果
这里需要注意:
- 如果是一个数字修改的是其他用户
- 如果是俩个数字修改的是其他用户和属组
- 三个就属主、属组、其他用户
ok,接下来我们来了解创建用户的相关文件
15.7 创建用户的相关文件:
/etc/passwd<<<用户存放位置 /etc/shadow<<<用户密码存放位置 /etc/group<<<用户组存放位置 /etc/skel <<< 用户家目录模板 /etc/login.defs <<<控制新建用户的默认属性 /var/spool/mail/ <<<用户邮箱存放位置
passwd文件我们在上一篇博文已经讲过了,接下来我们针对其他五个相关文件来进行逐一讲解,话不多说直接开搞:
15.7.1 /etc/shadow文件
我们已经知道了,该文件是存放用户密码的文件,因此安全性相对而言会比/etc/passwd的安全性要高,两者的文件权限对比如下:
- /etc/passwd文件权限位:
- /etc/shadow文件权限位:
可以看到,/etc/passwd文件所用用户均可读取,而/etc/shadow文件所有用户均不可操作,因此,/etc/shadow文件的安全性会比/etc/passwd文件安全性要高,但是这里需要注意的是:root可以无视文件用户权限对文件进行修改和操作,因此需要防止有用户通过root身份对敏感文件进行更改!!!
接下来我们来看etc/shadow文件内容:
文件内容如下:
这里我们发现格式似乎与/etc/passwd文件的格式大差不差,但是区别还是有的,接下来我们提取出一行进行逐一分析:
如下图
这里我们需要知道,该文件通过冒号对文件内容进行分割,我们通过冒号对文件内容进行逐一分析:
字段 含义 用户名(账户) 用户登录系统时所使用的用户名 加密后的密码 经过SHA512加密后的密码,(默认经过SHA512方法进行加密,也可以通过md5,db5等加密方法进行加密!!) 最后一次修改时间 距离1970年1月1日到现在的天数,可通过date -d "1970-01-01 15775 days" 命令来查看到现在的总天数,空子段表示密码年龄被禁用 最小修改时间间隔 修改密码之间的时间间隔,空子段或0表示无限制! 密码使用有效期 到期后用户必须修改密码,在经过这些天后,密码仍然可用,但是下次登陆会强制修改密码! 密码需要变更前的警告天数 密码国企前几天进行警告,孔子段表示没有强制密码过期 密码过期后的宽限时间 密码过期后,依然接受此密码的天数,空最短表示没有强制密码过期 失效时间 密码失效的绝对天数,可以在不删除用户的情况下锁定用户,不让其登录,也是从1970年一月一日开始计算,若到期,则账号失效,一般用在商业版中! 标志 目前没有功能,等待新功能加入!!
这里需要注意的是,该文件对任何用户没有任何权限,因此我们需要去用root权限对文件进行修改,再修改过程中,我们在保存退出时需要进入两次末行模式才可以退出该文件!!!
15.7.2 /etc/group文件
该文件是存放用户组的文件,文件与/etc/passwd文件有些相似,具体格式如下图:
我们来截取一条记录对该文件进行分析:
与/etc/passwd文件类似的点是,都是通过冒号进行分隔,分为 4 个字段,每个字段对应的含义为: 组名:密码占位符:GID:该用户组中的用户列表我们来一个一个进行分析
组名 用户组的名称,有字母或数字构成。同 /etc/passwd 中的用户名一样,组名也不能重复。一般用字母,不用纯数字。
密码占位符, 和 /etc/passwd 文件一样,这里的 “x” 仅仅是密码标识,真正加密后的组密码默认保存在 /etc/gshadow 文件中。 组id(GID) 群组的 ID 号,Linux 系统就是通过 GID 来区分用户组的,同用户名一样,组名也只是为了便于管理员记忆 用户组的用户列表 此字段列出每个群组包含的所有用户。需要注意的是,如果该用户组是这个用户的初始组,则该用户不会写入这个字段,可以这么理解,该字段显示的用户都是这个用户组的附加用户 这里需要注意:
每个用户都可以加入多个附加组,但是只能属于一个初始组(主组)。所以我们在实际中,如果需要把用户加入其他组,则需要以附加组的形式添加。
15.7.3 /etc/skel
该文件位用户家目录模板,
我们要知道,在我们船舰新用户的时候,系统会将该文件复制到指定的家目录下,修改目录名称,属主,属主及文件权限,从而生成一个用户家目录,具体操作如下:
新用户的家目录生成步骤如下:
- 将/etc/skel目录复制到home'下,改名位和用户名相同
- 将这个目录的属主、属组改为该用户
- 将目录的权限改位700
- 假设用户tom
- cp -r /etc/skel /home/tom
- chown -R tom.tom /home/tom
- chmod -R 700 /home/tom
这里我们了解,接下来我们在进行手动创建用户名称时候再来进行详细解释!!
15.7.4 /etc/login.defs
该文件主要控制新建用户的默认属性,一般不常用,我们可以进去看一下
可以看到,该文件很多都是通过#来进行注释的,这个文件看起来也很多,这里我们就看一些我们比较常用的几个关键字段,(似乎该文件并不常用)具体如下代码框:
#QMAIL_DIR /var/spool/mail 指定新用户的邮箱位置 PASS_MAX_DAYS 99999 新用户密码最长有效期 PASS_MIN_DAYS 0 新用户修改密码最短时间 PASS_MIN_LEN 5 用户密码最短长度 PASS_WARN_AGE 7 密码到期前警告时间长度 UID_MIN 新建普通用户的默认uid最小值 UID_MAX 新建普通用户的默认uid最大值 CREATE_HOME 默认创建家目录 USERGROUPS_ENAB 当前用户组中没有用户,是否删除用户组 ENCRYPT_METHOD SHA512 指定加密算法
这个文件我们进做了解,不赘述,如有详细了解请通过其他博文进行了解,还请各位读者见谅!
15.7.5 /var/spool/mail/
该文件一般用来存储用户邮件,用户邮件是该目录与用户同名的目录!目前来讲对我们用处不大,但是在创建用户的时候最好创建该目录!这里我们同样不过多赘述,如需了解请查看其他相关博文!!
我们今天的内容就到这里了,如有错误还请大佬在评论区进行指点,感谢各位观看,我们下期再见0..0