资源分派:
Authentication: 认证
Authorization: 授权
Accouting: 审计
- Audition
- token, identity(username/password)
Linux 用户: Username/UID
管理员: root, 0
普通用户: 1-65535
系统用户: 1-499, 1-999
对守护进程获取资源进行权限分配;
登录用户: 500+, 1000+
交互式登录;
Linux 组: Groupname/GID
管理员组: root, 0
普通组:
系统组: 1-499, 1-999
普通组: 500+, 1000+
Linux 安全上下文:
运行中的程序: 进程 (process)
以进程发起者的身份运行:
- root: cat
- tom: cat
进程所能够访问的所有资源的权限取决于进程的发起者的身份;
Linux 组的类别:
用户的基本组 (主组):
组名同用户名, 且仅包含一个用户: 私有组
用户的附加组 (额外组):
Linux 用户和组相关的配置文件:
/etc/passwd: 用户及其属性信息 (名称, UID, 基本组 ID 等等);
/etc/group: 组及其属性信息;
/etc/shadow: 用户密码及其相关属性;
/etc/gshadow: 组密码及其相关属性;
- /etc/passwd:
- name:password:UID:GID:GECOS:directory:shell
用户名: 密码: UID:GID:GECOS: 主目录: 默认 shell
- /etc/group:
- group_name:password:GID:user_list
组名: 组密码: GID: 以当前组为附加组的用户列表 (分隔符为逗号)
/etc/shadow
用户名: 加密了的密码: 最近一次更改密码的日期: 密码的最小使用期限: 最大密码使用期限: 密码警告时间段: 密码禁用期: 账户过期日期: 保留字段
加密机制:
加密: 明文 --> 密文
解密: 密文 --> 明文
单向加密: 提取数据指纹
md5: message digest, 128bits
sha1: secure hash algorithm, 160bits
- sha224: 224bits
- sha256: 256bits
- sha384: 384bits
- sha512: 512bits
雪崩效应: 初始的条件的微小改变, 将会引起结果的巨大改变;
定长输出:
密码的复杂性策略:
1, 使用数字, 大写字母, 小写字母及特殊字符中至少 3 种;
2, 足够长;
3, 使用随机密码;
4, 定期更换; 不要使用最近曾经使用过的密码;
用户和组相关的管理命令:
用户创建: useradd
useradd [options] LOGIN
-u UID: [UID_MIN, UID_MAX], 定义在 / etc/login.defs
-g GID: 指明用户所属基本组, 可为组名, 也可以 GID;
-c "COMMENT": 用户的注释信息;
-d /PATH/TO/HOME_DIR: 以指定的路径为家目录;
-s SHELL: 指明用户的默认 shell 程序, 可用列表在 / etc/shells 文件中;
-G GROUP1[,GROUP2,...[,GROUPN]]]: 为用户指明附加组; 组必须事先存在;
-r: 创建系统用户
- CentOS 6: ID<500
- CentOS 7: ID<1000
默认值设定:/etc/default/useradd 文件中
- useradd -D
- -s SHELL
练习: 创建用户 gentoo, 附加组为 distro 和 linux, 默认 shell 为 / bin/csh, 注释信息为 "Gentoo Distribution";
组创建: groupadd
groupadd [OPTION]... group_name
-g GID: 指明 GID 号;[GID_MIN, GID_MAX]
-r: 创建系统组;
- CentOS 6: ID<500
- CentOS 7: ID<1000
查看用户相关的 ID 信息: id
- id [OPTION]... [USER]
- -u: UID
- -g: GID
- -G: Groups
- -n: Name
切换用户或以其他用户身份执行命令: su
su [options...] [-] [user [args...]]
切换用户的方式:
su UserName: 非登录式切换, 即不会读取目标用户的配置文件;
su - UserName: 登录式切换, 会读取目标用户的配置文件; 完全切换;
Note:root su 至其他用户无须密码; 非 root 用户切换时需要密码;
换个身份执行命令:
su [-] UserName -c 'COMMAND'
选项:
-l:"su -l UserName" 相当于 "su - UserName"
用户属性修改: usermod
usermod [OPTION] login
-u UID: 新 UID
-g GID: 新基本组
-G GROUP1[,GROUP2,...[,GROUPN]]]: 新附加组, 原来的附加组将会被覆盖; 若保留原有, 则要同时使用 - a 选项, 表示 append;
-s SHELL: 新的默认 SHELL;
-c 'COMMENT': 新的注释信息;
-d HOME: 新的家目录; 原有家目录中的文件不会同时移动至新的家目录; 若要移动, 则同时使用 - m 选项;
-l login_name: 新的名字;
-L: lock 指定用户
-U: unlock 指定用户
-e YYYY-MM-DD: 指明用户账号过期日期;
-f INACTIVE: 设定非活动期限;
给用户添加密码: passwd
passwd [OPTIONS] UserName: 修改指定用户的密码, 仅 root 用户权限
passwd: 修改自己的密码;
常用选项:
-l: 锁定指定用户
-u: 解锁指定用户
-n mindays: 指定最短使用期限
-x maxdays: 最大使用期限
-w warndays: 提前多少天开始警告
-i inactivedays: 非活动期限;
--stdin: 从标准输入接收用户密码;
- echo "PASSWORD" | passwd --stdin USERNAME
- Note: /dev/null, bit buckets
- /dev/zero,
删除用户: userdel
userdel [OPTION]... login
-r: 删除用户家目录;
组属性修改: groupmod
groupmod [OPTION]... group
-n group_name: 新名字
-g GID: 新的 GID;
组删除: groupdel
groupdel GROUP
组密码: gpasswd
gpasswd [OPTION] GROUP
-a user: 将 user 添加至指定组中;
-d user: 删除用户 user 的以当前组为组名的附加组
-A user1,user2,...: 设置有管理权限的用户列表
newgrp 命令: 临时切换基本组;
如果用户本不属于此组, 则需要组密码;
修改用户属性: chage
- chage [OPTION]... LOGIN
- -d LAST_DAY
- -E, --expiredate EXPIRE_DATE
- -I, --inactive INACTIVE
- -m, --mindays MIN_DAYS
- -M, --maxdays MAX_DAYS
- -W, --warndays WARN_DAYS
其它命令: chfn, chsh, finger
命令总结: useradd, groupadd, su, id, usermod, userdel, groupmod, groupdel, passwd, newgrp, pwck, gpasswd, chage, chsh, chfn, finger
权限管理:
文件的权限主要针对三类对象进行定义:
owner: 属主, u
group: 属组, g
other: 其他, o
每个文件针对每类访问者都定义了三种权限:
- r: Readable
- w: Writable
- x: eXcutable
文件:
r: 可使用文件查看类工具获取其内容;
w: 可修改其内容;
x: 可以把此文件提请内核启动为一个进程;
目录:
r: 可以使用 ls 查看此目录中文件列表;
w: 可在此目录中创建文件, 也可删除此目录中的文件;
x: 可以使用 ls -l 查看此目录中文件列表, 可以 cd 进入此目录;
- --- 000 0
- --x 001 1
- -w- 010 2
- -wx 011 3
- r-- 100 4
- r-x 101 5
- rw- 110 6
- rwx 111 7
例如:
- 640: rw-r-----
- rwxr-xr-x: 755
修改文件权限: chmod
chmod [OPTION]... OCTAL-MODE FILE...
-R: 递归修改权限
- chmod [OPTION]... MODE[,MODE]... FILE...
- MODE:
修改一类用户的所有权限:
- u=
- g=
- o=
- ug=
- a=
- u=,g=
修改一类用户某位或某些位权限
- u+
- u-
- chmod [OPTION]... --reference=RFILE FILE...
参考 RFILE 文件的权限, 将 FILE 的修改为同 RFILE;
修改文件的属主和属组:
仅 root 可用;
修改文件的属主: chown
chown [OPTION]... [OWNER][:[GROUP]] FILE...
用法:
- OWNER
- OWNER:GROUP
- :GROUP
Note: 命令中的冒号可用. 替换;
-R: 递归
chown [OPTION]... --reference=RFILE FILE...
修改文件的属组: chgrp
chgrp [OPTION]... GROUP FILE...
- chgrp [OPTION]... --reference=RFILE FILE...
- -R
文件或目录创建时的遮罩码: umask
FILE: 666-umask
Note: 如果某类的用户的权限减得的结果中存在 x 权限, 则将其权限 + 1
DIR: 777-umask
umask: 查看
umask #: 设定
命令总结: chmod, chown, chgrp, umask
来源: http://www.bubuko.com/infodetail-2622431.html