Skip to content

Latest commit

 

History

History
130 lines (114 loc) · 4.49 KB

Linux用户权限.md

File metadata and controls

130 lines (114 loc) · 4.49 KB

Linux用户权限

权限:

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)
    • 单向加密,散列加密:提取数据特征码,常用于数据完整性校验
      1. 不可逆
      2. 雪崩效应,一个字符的不一样,特征码就有很大不同,防破解
      3. 定长输出 MD5:Message Digest(信息摘要), 128位定长输出 SHA1:Secure Hash Algorithm(安全哈希算法), 160位定长输出
  • 密码显示 !!或 * 表示该用户是锁定的(不允许登录)

用户类别:16位二进制共65536个

  • 管理员(有所有权限):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