ls -l
第一列的后九位对应,属主、属组、其他组,的权限。
- 用户组:可理解为是关联某些权限的容器,用于方便地指派权限。
- 权限包括:r, w, x(读,写,执行)没有则“-”
- 对于文件而言:
- r:可读,可以使用类似cat等命令查看文件内容;
- w:可写,可以编辑或删除此文件;
- x: 可执行,eXacutable,可以命令提示符下当作命令提交给内核运行;
- 对于目录而言:
- r: 可以对此目录执行ls以列出内部的所有文件;
- w: 可以在此目录创建文件;
- x: 可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息;(目录建议默认有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 |
如 755 表示:rwxr-xr-x
- 用户:UID,/etc/passwd (用户的信息库)
- 组:GID,/etc/group
- 影子口令:(存放密码)
- 用户:/etc/shadow
- 组:/etc/gshadow
- 用户信息文件分析(每项用
:
隔开):
例如:jack:X:503:504:::/home/jack/:/bin/bash
jack //用户名
X // x 表示占位符,密码存放于 /etc/shadow
503 //用户id(0代表root、普通新建用户从500开始)
504 //基本组ID,额外组等信息在 /etc/group
: //描述
/home/jack/ //用户主目录
/bin/bash //用户缺省Shell, 当前系统所有合法shell存放于:/etc/shells
- 组信息文件分析:
例如:jack:$!$:???:13801:0:99999:7:*:*:
jack //组名
$!$ //被加密的口令
13801 //创建日期与今天相隔的天数
0 //口令最短位数
99999 //用户口令
7 //到7天时提醒
* //禁用天数
* //过期天数
- /etc/shadow
account: 登录名
encrypted password: 加密的密码
-
加密方法:
- 对称加密:加密和解密使用同一个密码
- 公钥加密:每个密码都成对儿出现,一个为私钥(secret key),一个为公钥(public key)
- 单向加密,散列加密:提取数据特征码,常用于数据完整性校验
- 不可逆
- 雪崩效应,一个字符的不一样,特征码就有很大不同,防破解
- 定长输出 MD5:Message Digest(信息摘要), 128位定长输出 SHA1:Secure Hash Algorithm(安全哈希算法), 160位定长输出
-
密码显示 !!或 * 表示该用户是锁定的(不允许登录)
- 管理员(有所有权限):0
- 普通用户: 1-65535
- 系统用户(不允许登录的,以运行后台进程):1-499
- 一般用户:500-60000 后面的很少使用了
- 可分为管理员组,普通组(系统组;一般组)
- 用户组类别更常分为:
- 私有组:创建用户时,如果没有为其指定所属的组,系统会自动为其创建一个与用户名同名的组
- 基本组:用户的默认组
- 附加组,额外组:默认组以外的其它组
-
SUID:运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者;比如
/usr/bin/passed
有此权限chmod u+s FILE chmod u-s FILE # 如果FILE本身原来就有执行权限,则SUID显示为s;否则显示S; # 执行此命令风险很大!
-
SGID:运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者所属的基本组;
chmod g+s FILE chmod g-s FILE develop team, hadoop, hbase, hive /tmp/project/ develop
-
Sticky:在一个公共目录,每个人都可以创建文件,删除自己的文件,但不能删除别人的文件;
chmod o+t DIR chmod o-t DIR
以上三种特殊权限也能用以下方式表示:
- 000:(0)三种都没有
- 001:(1)有Sticky
- 110:(6)有SUID和SGID ...
如:第一位即特殊权限
chmod 5755 /backup/test
# 因此,umask 有四位,如:umask 0222