命令混剪
2018-04-09 本文已影响7人
不排版
用户和组:
用户是什么?
多用户:
用户和组:实现资源分派的核心要素
容器: 用户
权限
用户两类:
管理员
普通用户
User ID = UID
名称解析
文本文件
关系型数据库
NIS
LDAP
Group ID = GID
authentication
密码:口令
生物识别:
电子口令卡:
authorization:
授权
audit:
审计
权限:
一切皆文件:
用户所访问资源都是文件
用户类别:
管理员:0
系统用户:1-499
运行后台程序(daemon)
普通用户:500+
登录:交互式访问
组类别:
管理员组:0
系统组:1-499
用户组:500+
权限:
r
w
x
文件:
r: 查看文件内容
w: 修改文件内容
x: 把此文件启动为一个运行的程序(进程)
目录:
r: 可使用ls命令查看目录中的文件名列表
w: 可以在目录中创建或删除文件
x: 可以cd到此目录中,以及使用ls -l显示目录中文件的元数据信息
用户访问文件时的权限匹配模型:
1、检查运行此程序的的属主是否与其正在访问的文件的属主相同?
如果相同,则以属主的权限访问;
否则:
2、查检运行此进程的属主是否属于此文件的属组
如果是,则以属组的权限访问;
否则:
3、以其它用户的身份访问
用户管理:
Linux:
/etc/passwd: 用户的帐号信息
/etc/shadow: 用户密码和相关的帐户设定
/etc/group: 组的帐号信息
/etc/gshaow: 组的密码信息
/etc/passwd文件:
account:password:UID:GID:GECOS:directory:shell
登录名:密码点位符:UID:GID:注释信息:家目录:用户的默认shell
用户可以加入不止一个组:
基本组
额外组,附加组
/etc/group文件:
组名:组密码点位符:GID:以逗号分隔属于此组(以之做为额外组)的用户列表
useradd命令:
-u UID
-g GID: 所属的基本组
-G GID: 所属的附加组
-c 'COMMENT':注释信息
-d /path/to/somewhere: 如果此目录事先存在,会有警告信息;
-s SHELL: SHELL必须是/etc/shells文件中存在的shell
-m:强制给用户创建家目录
-M:不给用户创建家目录
-r: 创建系统用户
groupadd命令:
-g GID:指定GID
-r: 系统组
passwd:
普通用户仅能修改自己的密码
管理员:
passwd [username]
密码复杂度策略:
数字、小写、大写和特殊字符至少三类
最短长度5位
不要使用易猜测的密码
定期修改,且不要使用最近曾经使用过的密码
加密方式:
对称加密:加密和解密使用同一个密钥;
密钥分发困难
公钥加密:加密和解密使用一对儿密钥
公钥:公开的
私钥:保密的
CA:证书颁发机构
Bob <-- Alice
PKI:
单向加密:提取数据的惟一的特征码
1、定长输出;
2、不可逆;
3、雪崩效应
md5: 128bits
sha1: 160bits
Bob --> data, fingerprint --> data,
数字签名
passwd
--stdin
-l: lock
-u: unlock
/etc/shadow文件格式
用户名:加密的密码:最近一次修改密码的时间:密码最短使用期限:密码最长使用期限:密码过期警告区间:密码非活动期限:帐号过期期限:保留区域
# man 5 shadow
userdel:
userdel [options] USERNAME
-r: 一并删除用户及其家目录
groupdel:
groupdel GRPNAME
usermod:
usermod [options] USERNAME
-u UID
-g GID: 修改用户的基本组
-G GID,...:修改用户的附加组; 此选项通过跟-a一起使用以追加方式修改附加组
-c COMMENT:
-d /path/to/somewhere: 修改家目录的位置;同时使用-m选项可保证创建家目录,并将用户原有的文件移动至新的家目录中;
-s SHELL:
-l LOGIN_NAME: 修改用户名
-L: 锁定用户
-U:解锁用户
chsh USERNAME
chfn USERNAME
chage:
chage [options] USERNAME
查看用户信息:
id USERNAME
-g
-G
-n
-u
who
whoami
finger
切换用户:
su: switch user
su [option] USERNAME
-l: 完全切换,l可省略
-c 'COMMAND': 仅以指定用户运行命令,并取回结果
修改组:
groupmod
-g GID
-n NEW_GRP_NAME
给组设定密码:
gpasswd
命令总结:useradd, userdel, passwd, usermod, chage, chsh, chfn, who, id, finger, groupadd, groupdel, groupmod, gpasswd, newgrp, su, w
练习:
1、创建用户mandriva, 其ID为2200, 基本组为distro,组ID为3300, 附加组为peguin;
# groupadd -g 3300 distro
# groupadd peguin
# useradd -u 2200 -g distro -G peguin mandriva
2、创建用户gentoo,其全名为“Gentoo”,默认shell为/bin/tcsh;
# useradd -c "Gentoo" -s /bin/tcsh gentoo
3、修改mandriva的UID为4400, 基本组为linux, 附加组为distro和gentoo;
# usermod -u 4400 -g linux -a -G distro,gentoo mandriva
4、给gentoo添加密码,并设定其密码最短使用期限为2天,最长为60天,警告为3天,非活动期限为7天;
# echo 'gentoo' | passwd --stdin gentoo
# chage
image.png
image.png
image.png
image.png
image.png