用户管理
用户:资源获取标识符,资源分配,安全权限模型的核心要素之一
密码:来实现用户认证的
信息库:用户 密码
名称解析:User IDentifier UID
容器:能够容纳很多用户的容器,可以分配权限 组(group),角色(role)
组名:Group IDentifier GID
解析:在数据库中按搜索码查找到对应的条目,并找到与之对应额外其他数据的过程
数据库有以下内容
文本文件:
SQL数据库
ldap数据库
/etc/passwd:
加密方法:
对称加密:如果加密、解密使用相同的密码称之为对称加密
DES,3DES,AES
非对称加密:DSA,RSA
单向加密:雪崩效应,定长输出,不可逆
MD5:信息摘要 128bit定长输出16个字符
SHA1:安全的哈希算法 160bit
SHA256:
SHA512:
CRC32:循环冗余校验码
密码数据库:/etc/shadow
密文格式:$加密算法$8位盐$乱码
6 sha512
1 MD5
[root@node1 ~]# head -n 1 /etc/shadow
root:$6$kFIhu5OBppuTx.YY$l/T4SGfnWYsp8xD2Q0/KM7phu6bBelMNFbyy6emVvXimzG15q06HaJogjJqufhWGiy.Cov8yzQmmbPTN863Qb.:16596:0:99999:7:::
例如:
openssl passwd -l -salt 12345678
组:用户容器,角色
/etc/group
密码:/etc/gshadow
安全上下文:
运行中的进程有其属主和属组:取决于进程的属组和属主
用户生成的属性信息
/etc/passwd:
[root@node1 ~]# head /etc/passwd
root:x:0:0:root:/root:/bin/bash
用户名:密码占位符:UID:GUID(基本组ID):用户备注信息(多个以,隔开):家目录:默认shell
[root@node1 ~]# head -n 2 /etc/group
bin:x:1:bin,daemon
组名:密码占位符:GID:用户列表
/etc/default/useradd:定义useradd默认参数
/etc/shells:当前系统的安全shell列表
useradd:adduser
-u UID:指定UID
-g GID:指定GID,即用户的基本组,但GID要事先存在
-G GID:指定用户的额外组,但GID要事先存在
-d 目录: 指定家目录
-c 备注:备注
-s:shell:指定默认shell,应该指定使用/etc/shells文件中出现的shell
-m:创建用户时,强制给用户创建家目录
-M:创建用户时,但不创建家目录
-D: 改变其默认shell
-r: 创建系统用户 特点:id 1-499 不会为用户创建家目录 默认shell为/sbin/nologin
id Username :显示用户的id号
userdel:删除用户,默认会保留家目录
userdel UserName
-r:一并删除家目录
groupadd GrpName
-g GID:创建组并为其指定GID
用户类别:
管理员:0
普通用户:1-65535
系统用户:1-499
登陆用户:500+
用户组:
管理员组:
普通组:
以用户为视角,组可以分为两类:
基本组:显示在/etc/passwd中GID字
段组,为用户的基本组
额外组:附加组:/etc/group
passwd设定用户密码:
普通用户:passwd
管理员:
改自己密码:passwd
改其他用户密码:passwd UserName
-l:锁用户 用户密码前加两个!
-u:解锁
[root@node1 ~]# passwd -l user1
[root@node1 ~]# passwd -u user1
密码安全性策略:足够复杂
够长、交叉应用数字、大写字母、小写字母和特殊字符中的至少三种
尽量避免使用易猜测的密码:
定期更换:
/etc/shadow文件格式:
[root@node1 ~]# head /etc/shadow
root:$6$kFIhu5OBppuTx.YY$l/T4SGfnWYsp8xD2Q0/KM7phu6bBelMNFbyy6emVvXimzG15q06HaJogjJqufhWGiy.Cov8yzQmmbPTN863Qb.:16596:0:99999:7:::
登陆名:加密密码:最近一次的密码修改时间(距离1970-1-1的时间):最短使用期限:最长使用期限:警告区间:非活动区间(登陆就要修改密码):账号的过期期限:预留段
gpasswd GroupName:设定组密码
chsh:修改默认的shell
[root@node1 ~]# chsh user1
Changing shell for user1.
New shell [/bin/bash]: /bin/bash
Shell not changed.
chfn:修改用户注释
[root@node1 ~]# chfn user1
Changing finger information for user1.
Name []: User1 Black
Office []: New York
Office Phone []: 110
Home Phone []: 120
Finger information changed.
finger:查看用户信息
usermod:跟useradd命令使用方法类似
-u UID:
-g GID:
-G GID:默认会覆盖原有的附加组,如果要是添加,可以同时使用-a选项
-c string
-d new home 默认不会迁移用户的家目录,如果要迁移,同时使用-m选项
-s SHELL:
-l New_login_name:修改用户登录名称
-e 过期期限
-f 非活动期限
-L:锁定用户账号
-U:解锁
[root@node1 ~]# id user1
uid=1000(user1) gid=1000(user1) groups=1000(user1)
[root@node1 ~]# usermod -a -G distro user1
[root@node1 ~]# id user1
uid=1000(user1) gid=1000(user1) groups=1000(user1),5003(distro)
[root@node1 ~]# usermod -u 4004 -g linux -G distro,fedora mandriva
chage:修改用户的日期属性
-E:距离1970-1-1号的时间天数,过了这个时间,账号不可访问
-I: 设置活动天数
-m:修改密码最小使用时间
-M:修改密码最长使用时间
-W:警告时间
id:查看用户的相关信息
-n 显示名称
-u 显示UID
-g:显示基本组ID
-G:显示所有组ID
who 显示当前登录用户
whoami:显示当前终端登录的用户
su:Swith User
-l:登陆式切换
-c:不切换用户,直接执行命令
权限管理:
owner,group,other
属主,属组,其他
权限:read write execute
r w x
文件:
r:可以使用内容查看类的命令来显示其相关内容
w: 可以使用编辑器修改其内容
x:可以将其发起一个进程
目录:
r:可以使用ls命令查看目录内容的文件信息
w:可以创建、删除文件
x:可以使用ls -l命令来查看目录内容的文件信息,并且可以使用cd命令切换此目录为工作目录:
用户的不拥有某位权限,则使用-占位
r-x:读和执行的权限
r--:只读权限
rw-:读写权限
使用8位数来表示
r:4
w:2
x:1
保存到元数据的属性中的
chown:修改文件的属主,仅管理员可执行。
格式:chown [options] UserName[{:|.}GroupName] FILE...
-R:递归
--reference 引用其他文件的权限
chmod:修改文件权限:
格式:
操作三类用户的权限:使用8进制形式
chmod [-R] OCTAL-MODE(8进制)file ...
chmod --reference=参照文件名 文件名
对链接文件无效,左侧以0补齐
操作指定类别用户的权限:使用u,g,o,a来赋权,基于=或者+/—来进行
u:属主
g:属组
o:其他
a:所有
=:操作指定类型用户的权限
+/—:操作置顶类型用户的单个权限
参照其他文件的权限为当前文件来赋权
chgrp:修改文件的属组,仅管理员可执行。
umask:
创建文件:666-umask
文件默认决不允许出现执行权限:
创建目录:777-umask
root:022
如果用户名和基本组名一致:002,否则为022
权限应用模型:
进程的属主,是否与文件的属主相同,如果相同,进程则以文件属主的权限来访问文件:否则
进程的属主所属的组,是否其中之一与文件的属性相同:如果相同,进程则以文件属组的权限来访问文件:否则
进程则以文件的其他用户的权限来访问文件。
阅读(1269) | 评论(0) | 转发(0) |