Linux文件权限

一、Linux的安全性

  1. 用户权限是通过创建用户时分配的用户ID(User ID,通常缩写为UID)来跟踪的。UID是数值,每个用户都有唯一的UID
  2. 在登录系统时用的不是UID,而是登录名。登录名是用户用来登录系统的最长八字符的字符串,同时会关联一个对应的密码。

1.1 /etc/passwd文件

  1. Linux系统会为各种各样的功能创建不同的用户账户,而这些账户并不是真的用户。这些账户叫作系统账户,是系统上运行的各种服务进程访问资源用的特殊账户。所有运行在后台的服务都需要用一个系统用户账户登录到Linux系统上。
  2. 部分内容tom:x:1000:1000:tom:/home/tom:/bin/bash
    • 登陆用户名
    • 用户账户的密码
    • 用户账户的UID
    • 用户账户的组ID
    • 用户账户的文本描述
    • 用户HOME目录的位置
    • 用户的默认shell

1.2 /etc/shadow文件

  1. 存放密码,只有root才能访问。
  2. 部分内容tom:$6$aZy8xbx7$8HAo8zJQUmuT3b3roXKSbQgzAApDzUJO/xxsJ9v/n1mNjYNpCZ.FOx31kRRqB0vbpXjQq1a0E/33biL.Uw4aD1:19722:0:99999:7:::
    • 登录名
    • 加密后的密码
    • 自上次修改密码过去的天数(从1970/1/1开始计算)
    • 多少天后才能修改密码
    • 多少天后必须修改密码:99999
    • 密码过期前多少天提醒用户更改密码:7
    • 密码过期后多少天禁用用户账户
    • 用户账户被禁用的日期(从1970/1/1开始计算)
    • 预留字段

1.3 添加用户

  1. useradd -D,显示添加用户时的默认值

    • GROUP=100            # 新用户会被添加到GID为100的公共组  但是现代都是“用户私有组” 这个没用
      HOME=/home           # 新用户的HOME目录在/home/用户名
      INACTIVE=-1          # 新用户的密码过期后不会被禁用
      EXPIRE=              # 新用户未被设置过期日期
      SHELL=/bin/bash      # 默认shell
      SKEL=/etc/skel       # 系统会将/etc/skel的内容复制到用户HOME目录下
      CREATE_MAIL_SPOOL=yes # 系统会为用户在mail目录下创建一个用于接收邮件的文件
      
  2. useradd 用户名

  3. -m:创建用户的HOME目录,默认是不会创建的

  4. -g:指定用户登录的GID

  5. -d home_dir:为主目录指定一个名字

  6. -u uid:为账户指定唯一的UID

  7. -p passwd:为账户指定默认密码

1.4 删除用户

  1. userdel test
  2. -r :删除用户的HOME目录以及邮件目录。

1.5 修改用户

  1. usermod
    • -l修改用户账户的登录名。
    • -L锁定账户,使用户无法登录。
    • -p修改账户的密码。
    • -U解除锁定,使用户能够登录。
    • -g修改默认组
    • -G指定用户除登录组之外所属的一个或多个附加组
  2. passwd test修改用户密码,只有root才能给其他用户修改密码
  3. chsh -s /bin/csh test:修改用户的默认登录shell,必须用绝对路径

二、Linux组

  1. 组权限允许多个用户对系统中的对象(比如文件、目录或设备等)共享一组共用的权限。

2.1 /etc/group文件

  1. 存放着每个组的信息
  2. 部分内容tom:x:1000:tom
    • 组名
    • 组密码:允许非组内成员通过密码临时成为该组成员。
    • GID
    • 属于该组的用户列表:当一个用户在/etc/passwd文件中指定某个组作为默认组时,用户账户不会作为该组成员再出现在/etc/group文件中
  3. 不能通过直接修改/etc/group文件来添加用户到一个组。

2.2 创建新组

  1. groupadd new_group,创建新组后,没有用户被添加进来

2.3 修改组

  1. groupmod
    • -n修改组名
    • -g修改GID

三、文件权限

3.1文件权限符

  1. rwx:读、写、执行
    • 对于文件就是这样
    • 目录:读:ls;写:添加/删除 文件或子目录;执行:进入目录
  2. ls -l内容-rw-rw-r--. 1 tom tom 1159 11月 20 10:46 tmp.py
    • 第一个-代表文件
      • -代表文件
      • d代表目录
      • l代表链接
      • c代表字符型设备
      • b代表块设备
      • n代表网络设备
    • 接下来三位表示用户所有者权限
    • 在接下来就是用户所属组权限
    • 最后是其他组权限

3.2 默认文件权限

  1. umask是创建文件和目录的默认权限
  2. umask,显示umask
    • 内容如:0002
    • 第一位是“粘着位”
    • 第二位是所属者
    • 第三位是所属组
    • 第四位是其他组
  3. umask 026设置umask值
  4. umask的意思是掩码,会屏蔽掉不想授予该安全级别的权限。
  5. 文件的全权限是666,目录是777,全权限减去umask的值,就是真正的权限。

3.3 改变权限

  1. chmod 760 file
    • 将权限改成760
  2. chmod o+r file:将其他组权限加读权限
    • u:所属者
    • g:所属组
    • o:其他组
    • +:加权限
    • -:减权限
    • =:等于权限
  3. -R递归作用到文件和子目录中。

3.4 改变所属关系

  1. chown 所属者.所属组 file同时改变所属主和所属组
  2. -R递归改变子目录和文件的所属关系
  3. chgrp 所属组 file改变组
posted @ 2024-11-21 10:01  ouyangxx  阅读(1)  评论(0编辑  收藏  举报