权限:资源或服务的访问能力,分三类:属主(u),属组(g),其他用户(o:other)a表示ALL
权限分三种,r,w,x
文件:r:可读,可以使用类似cat等命令查看文件内容
w:可写,可以编辑或删除此文件
x:可执行,executable,可以在命令提示符下当作命令提交给内核运行
目录:r:可以对此目录执行ls以列出内部的所有文件(但是仅此权限不能切换进此目录,也不能使用-l等命令)
w:可以在此目录中创建文件
x:可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息(无x只能ls,不能-l)(目录一般有x权限,文件一般默认没有,防止文件内有恶意命令被执行)
使用八进制表示三类用户权限,如 755 rwxr-xr-x 👇
0 000 --- 1 001 --x 2 010 -w-
3 011 -wx 4 100 r-- 5 101 r-x
6 110 rw- 7 111 rwx
进程运行模型/进程的安全上下文(security context):文件有属主和属组。进程也有属主和属组,以发起进程的用户身份运行。所以进程究竟能够访问哪些文件,取决于进程本身的权限和它访问的资源/文件的权限,这个过程的判断由系统资源的安全管理属性自动完成的。系统首先判断进程的属主和文件属主是否匹配,匹配则按第一组属主权限执行,不匹配判断进程属主是否与文件属组匹配,匹配则按第二组属组权限执行,否则按第三组其他用户权限执行。一个可执行文件本身无论属主和属组是谁,执行之后的进程属主永远是进程的发起者,执行的进程能访问哪些文件,取决于进程属主和访问文件的属主属组,而不是被执行文件的属主属组。
用户:UID,获取资源或服务的标识符 根据/etc/passwd(用户数据库文件)内的数据进行用户名和UID的转换(名称解析),/etc/passwd还定义了用户默认打开的shell种类,密码
/etc/passwd:每个用户有七个字段,分别定义了用户的7个属性,分别是:
account:登录名
passwd:密码占位符(密码存放在/etc/shadow中)
UID:
GID:基本组ID 额外组信息在/etc/group中
comment:用户的注释信息,有多个用逗号隔开,大多为空
HOME DIR:家目录,系统用户也有但它是不允许登录的,默认在/home下创建一个同名目录
SHELL:用户的默认shell,系统用户(/sbin/nologin)无,无法登录,非法shell也不能登录
/etc/shells:指定了当前系统可用的安全shell
如果想添加一个用户,可以用nano打开/etc/passwd文件添加一行信息,并在/etc/shadow和/etc/group文件中添加相应信息,并手动设置home目录等即可。
如何手动加密:openssl passwd -1 -salt 'nnnnnnn' 输入密码后会输出加密结果
用户组:GID,标识符,根据/etc/group(用户组数据库文件)规定哪一类用户的可使用权限,逻辑容器
影子口令(存放密码):用户:/etc/shadow 组:/etc/gshadow
/etc/shadow:字段含义:从左往右分别是:
account:登录名
encrypted password:加密的密码
加密方法:对称加密:加密和解密使用同一个密码
公钥加密:每个密码都成对儿出现,一个为私钥(secret key),一个为公钥(public key)
单向加密/散列加密/指纹加密:提取数据特征码(每一个数据都有一个唯一特征码)只能由明文得到密文,不能反向,即只能由数据得到特征码,不能由特征码得到数据。常用于数据完整性校验,确认数据有没有被改变。验证方式是比较数据特征码是否一致。
特性:1、雪崩效应:数据的微小改变将引起特征码的巨大变化,防暴力破解
2、定长输出
算法:MD5:Message Digest 5为版本号 128位定长输出
SHA1:Secure Hash Algorithm 160位定长输出(更安全)
md5sum:计算文件特征码
/etc/shadow的加密密码由$符分三段:$1表示加密方式为MD5,第二个$后8位表示杂质(salt),第三个$后为加密密码,即使密码相同,杂质也不同,加密后的密文也不同
此位是*/!!表示此用户为锁定的,不允许登录的。锁定一个用户,可以在它的密码位前加!!,清空密码用户也无法登录。不设置用户密码用户也无法直接登录,但是可以用管理员状态su过去。
自19700101之后到密码上一次被改变的时间
密码最短使用期限,0表示修改之后可立刻再修改
密码最长使用期限 99999表示终生
密码必须修改前的警告时间
非活动时间:用户被禁用前允许修改密码的宽限时间
过期时间:从19700101开始到账号禁用的时间(账号的使用期限)
保留字段,无意义
/etc/group:格式:
组名
密码占位符
GID
以此组为附加组的用户列表,多个用户用,隔开
用户类别:管理员:UID=0(内部生成的)
普通用户:UID=[1-65535] 2^16 超过就使用32位二进制标识
系统用户:1-499 专门运行后台进程(不需要跟用户关联)的用户,不允许登录系统,没有家目录
一般用户:500-60000 可以登录系统获取资源和服务
用户组类别:管理员组:
普通组:
系统组:
一般组:
或分为:私有组:创建用户时,如果没有为其指定所属的组,系统会自动为其创建一个与用户名同名的组,UID和GID一般相同,UID一般按passwd文件下最大的UID递增顺序添加
基本组:每一个用户的默认组(未必是私有组,但默认为私有组),用户创建的文件,属主是自身,属组是其默认组
附加组/额外组:默认组以外的其他组
添加用户:useradd = adduser
useradd USERNAME
passwd USERNAME:修改用户密码
创建用户时有些属性没有定义,系统会自动定义默认属性,默认属性设置在/etc/default/useradd中,可编辑,其他默认属性定义在/etc/login.defs配置文件中
添加组:groupadd GRPNAME
网友评论