Linux文件权限
一、Linux的安全性
- 用户权限是通过创建用户时分配的用户ID(User ID,通常缩写为UID)来跟踪的。UID是数值,每个用户都有唯一的UID
- 在登录系统时用的不是UID,而是登录名。登录名是用户用来登录系统的最长八字符的字符串,同时会关联一个对应的密码。
1.1 /etc/passwd文件
- Linux系统会为各种各样的功能创建不同的用户账户,而这些账户并不是真的用户。这些账户叫作系统账户,是系统上运行的各种服务进程访问资源用的特殊账户。所有运行在后台的服务都需要用一个系统用户账户登录到Linux系统上。
- 部分内容
tom:x:1000:1000:tom:/home/tom:/bin/bash
- 登陆用户名
- 用户账户的密码
- 用户账户的UID
- 用户账户的组ID
- 用户账户的文本描述
- 用户HOME目录的位置
- 用户的默认shell
1.2 /etc/shadow文件
- 存放密码,只有root才能访问。
- 部分内容
tom:$6$aZy8xbx7$8HAo8zJQUmuT3b3roXKSbQgzAApDzUJO/xxsJ9v/n1mNjYNpCZ.FOx31kRRqB0vbpXjQq1a0E/33biL.Uw4aD1:19722:0:99999:7:::
- 登录名
- 加密后的密码
- 自上次修改密码过去的天数(从1970/1/1开始计算)
- 多少天后才能修改密码
- 多少天后必须修改密码:
99999
- 密码过期前多少天提醒用户更改密码:
7
- 密码过期后多少天禁用用户账户
- 用户账户被禁用的日期(从1970/1/1开始计算)
- 预留字段
1.3 添加用户
-
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目录下创建一个用于接收邮件的文件
-
-
useradd 用户名
-
-m
:创建用户的HOME目录,默认是不会创建的 -
-g
:指定用户登录的GID -
-d home_dir
:为主目录指定一个名字 -
-u uid
:为账户指定唯一的UID -
-p passwd
:为账户指定默认密码
1.4 删除用户
userdel test
-r
:删除用户的HOME目录以及邮件目录。
1.5 修改用户
usermod
-l
修改用户账户的登录名。-L
锁定账户,使用户无法登录。-p
修改账户的密码。-U
解除锁定,使用户能够登录。-g
修改默认组-G
指定用户除登录组之外所属的一个或多个附加组
passwd test
修改用户密码,只有root才能给其他用户修改密码chsh -s /bin/csh test
:修改用户的默认登录shell,必须用绝对路径
二、Linux组
- 组权限允许多个用户对系统中的对象(比如文件、目录或设备等)共享一组共用的权限。
2.1 /etc/group文件
- 存放着每个组的信息
- 部分内容
tom:x:1000:tom
- 组名
- 组密码:允许非组内成员通过密码临时成为该组成员。
- GID
- 属于该组的用户列表:当一个用户在/etc/passwd文件中指定某个组作为默认组时,用户账户不会作为该组成员再出现在/etc/group文件中
- 不能通过直接修改/etc/group文件来添加用户到一个组。
2.2 创建新组
groupadd new_group
,创建新组后,没有用户被添加进来
2.3 修改组
groupmod
-n
修改组名-g
修改GID
三、文件权限
3.1文件权限符
- rwx:读、写、执行
- 对于文件就是这样
- 目录:读:ls;写:添加/删除 文件或子目录;执行:进入目录
ls -l
内容-rw-rw-r--. 1 tom tom 1159 11月 20 10:46 tmp.py
- 第一个
-
代表文件-
代表文件d
代表目录l
代表链接c
代表字符型设备b
代表块设备n
代表网络设备
- 接下来三位表示用户所有者权限
- 在接下来就是用户所属组权限
- 最后是其他组权限
- 第一个
3.2 默认文件权限
- umask是创建文件和目录的默认权限
umask
,显示umask- 内容如:
0002
- 第一位是“粘着位”
- 第二位是所属者
- 第三位是所属组
- 第四位是其他组
- 内容如:
umask 026
设置umask值- umask的意思是掩码,会屏蔽掉不想授予该安全级别的权限。
- 文件的全权限是666,目录是777,全权限减去umask的值,就是真正的权限。
3.3 改变权限
chmod 760 file
- 将权限改成760
chmod o+r file
:将其他组权限加读权限u
:所属者g
:所属组o
:其他组+
:加权限-
:减权限=
:等于权限
-R
递归作用到文件和子目录中。
3.4 改变所属关系
chown 所属者.所属组 file
同时改变所属主和所属组-R
递归改变子目录和文件的所属关系chgrp 所属组 file
改变组