Linux文件权限

Linux的安全性

用户权限是通过创建用户时分配的用户id(UserId,通常缩写为UID)来跟踪的。UID是数值,每个用户都有唯一的UID,但在登录系统时用的不是UID,而是登录名。
Linux系统使用特定的文件和工具来跟踪和管理系统上的用户账户。

/etc/passwd文件

Linux系统使用一个专门的文件来将用户的登录名与UID值进行匹配。这个文件就是/etc/passwd文件,它包含了一些与用户有关的信息。
Linux为系统账户预留了500以下的uid值。为普通用户创建账户时,大多数Linux系统会从500开始,将第一个可用UID分配给这个账户。
/etc/passwd文件的字段包含了如下信息:

  • 登录用户名
  • 用户密码
  • 用户账户的UID(数字形式)
  • 用户账户的组ID(GID)数字形式
  • 用户账户的文本描述(称为备注字段)
  • 用户HOME目录的位置
  • 用户的默认Shell
    在这里插入图片描述
    目前,绝大多数的Linux系统都将用户密码保存在另一个单独的文件中(叫做shadow文件,位置在/etc/shadow)。

/etc/shadow文件

/etc/shadow文件对Linux系统的密码管理提供了更多的控制。
在/etc/passwd文件中的每条记录都有9个字段:

  • 与/etc/passwd文件中的登录名字段对应的登录名
  • 加密后的密码
  • 自上次修改密码后过去的天数
  • 多少天后才能更改密码
  • 多少天后必须更改密码
  • 密码过期前提前多少天提醒用户更改密码
  • 密码过期后多少天禁用用户账户
  • 用户账户被禁用的日期(用自1970年1月1日到当天的天数表示)
  • 预留字段给将来使用

添加新用户

  • useradd -m test
    默认情况下,useradd不会创建HOME目录,但是-m命令行选项会使其创建HOME目录。

删除用户

默认情况下,userdel只会删除/etc/passwd文件中的用户信息,而不会删除系统中属于该账户的任何文件。
如果加上-r参数,userdel会删除用户的HOME目录以及邮件目录。

  • /usr/sbin/userdel -r test

修改用户

命令描述
usermod修改用户账户的字段,还可以指定主要组以及附加组的所属关系
passwd修改已有用户的密码
chpasswd从文件中读取登录名密码对,并更新密码
chage修改密码的过期日期
chfn修改用户账户的备注信息
chsh修改用户账户的默认登录shell

/etc/group文件

与用户账户类似,组信息也保存在系统的一个文件中。/etc/group文件包含系统上用到的每个组的信息。
在这里插入图片描述
上图中,系统账户用的组通常会分配低于500的GID值,而用户组的GID则会从500开始分配。
/etc/group文件有4个字段:

  • 组名
  • 组密码
  • GID
  • 属于该组的用户列表

创建新组

  • /usr/sbin/groupadd shared
    执行此命令后,可以看到/etc/group文件最后增加了shared组
  • /usr/sbin/usermod -G shared test
    通过执行上面的命令,将test用户增加到shared组中

修改组

  • /usr/sbin/groupmod -n sharing shared
    执行上面的命令,使得组名从shared转变成sharing

默认文件权限

umask 命令用来设置所创建文件和目录的默认权限

$ umask
0022
$

umask第一位代表特别的安全特性,叫做粘着位,后面的3位表示文件或目录对应的umask八进制值。
umask值只是个掩码,它会屏蔽掉不想授予该安全级别的权限。
要把umask值从对象的全权限值中减掉。对文件来说,全权限的值是666(所有用户都有读写权限),而对目录来说,则是777(所有用户都有读,写,执行权限)
文件一开始的权限是666,减去umask值022之后,剩下的权限就成了644.
同样道理,对于新创建的目录,则是用777减去022,即755的权限。

改变权限

1.使用八进制模式进行安全性设置
chmod命令用来改变文件和目录的安全性设置,格式如下:
chmod options mode file
如chmod 760 newFile
2.使用符号模式进行安全性设置
[ugoa…][+ - =][rwxXstugo…]
第一个括号:

  • u代表用户
  • g代表组
  • o代表其他
  • a代表所有
    第二个括号:
  • 增加权限(+)
  • 移除权限(-)
  • 权限设置成后面的值(=)
    第三个括号:
  • X:如果对象是目录或者它已有执行权限,赋予执行权限
  • s :运行时重新设置UID或GID
  • t :保留文件或目录
  • u:将权限设置为跟属主一样
  • g:将权限设置为跟属组一样
  • o:将权限设置为跟其他用户一样
    如:chmod o+r newfile 给其他用户加上读的权限
    chmod u-x newfile 移除属主已有的执行权限

改变所属关系

Linux提供了两个命令来实现这个功能:
chown命令用来改变文件的属主
chgrp命令用来改变文件的默认属组
chown命令的格式如下:
chown options owner[.group] file
如:
可用登录名或UID指定文件的新属主

chown dan newfile

同时改变文件的属主和属组

chown dan.shared  newfile

chgrp 命令可以更改文件或目录的默认属组

chgrp shared  newfile
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值