任何完整的系统都应该具备有某种形式的安全性。必须用过某种机制来保护文件不被未授权的用户查看或修改;Linux系统遵循了Unix的文件权限的方法,来根据用户与用户组授权,实现文件安全访问。

1、Linux安全性

Linux系统的安全核心是用户账户。访问Linux系统的每个人都拥有自己的分配的、唯一的账户。基于账户来进行安全处理。使用用户ID(UID)来跟踪用户权限。

1.1、/etc/passwd文件

存放用户名的文件--/etc/passwd;

首先看到的是根用户,它的UID始终未0。它被称为系统账户。通常情况下,每个用户都是通过普通用户登录到Linux操作系统,普通用户不能直接获取对整个系统的访问权限。这样就保证了系统的安全性;

500以下的UID保留作为系统账户。一些服务甚至特定的UID才能使用这些UID号。普通用户的UID一般为500开始往后。

/etc/passwd的内容如下:

1、登录用户名

2、用户的密码【x表示密码替代符,真正的密码存放于/etc/shadow中】

3、用户账户的ID号

4、用户账户的数值用户组ID

5、用户账户的文本描述(注释字段)

6、用户的HOME目录位置

7、用户的默认shell

需要添加删除用户的话,可以直接在该文件下面进行操作;

1.2、/etc/shadow文件

/etc/shadow文件是提供了密码存放的地方。只有根用户才能访问这个文件。这比/etc/passwd文件更加安全;

与/etc/shadow文件记录中有9个字段:

1、与/etc/passwd文件中的登录名对应的登录名;

2、经过加密的密码

3、密码上次修改时间距离1970年1月1日的天数;

4、距能够修改密码时的最少天数

5、距必须修改密码是的天数

6、距离密码逾期并警告用户修改密码的天数

7、从密码逾期开始到账户被禁用的天数

8、用户账户已被禁用的天数(存储为自1970年1月1日开始的天数)

9、保留供未来使用的字段

1.3、添加新的用户

useradd用来添加用户。

useradd -D  #查看Linux系统使用的系统默认值

INACTIVE=-1  #密码逾期不被停用

SKEL=/etc/skel  #系统会将/etc/skel目录中的内容复制到用户的HOME目录

CREATE_MAIL_SPOOL=yes  #系统将在邮件目录中的内容复制到用户的HOME目录中;

useradd常用参数:

-c  #添加注释

-d  #指定家目录名称

-e  #指定账户逾期的日期,格式为YYYY-MM-DD

-f  #表示账户逾期后,账户被禁用需要的天数。值0表示密码逾期时立即禁止账户;值为-1表示禁止此功能

-g  #指定用户登录组的用户组名称或GID

-G  #指定用户属于的一个或过个补充的用户组

-k  #将/etc/skel目录的内容复制到用户HOME目录

-m  #创建用户的HOME目录,与-k一起使用

-M  #不创建家目录

-n  #使用与用户登录名相同名称的创建一个新的用户组

-r  #创建一个系统账户

-p  #为用户指定一个默认密码

-s  #指定默认登录shell

-u  #指定账户的唯一的UID

useradd还可以更改默认参数值

-b  #修改默认的HOME目录被创建的位置

-e  #修改新账户逾期的时间

-f  #修改从密码逾期到账户被禁用的天数

-g  #修改默认使用的用户组名称或GID

-s  #修改默认登录的shell

例如:useradd -D -s /bin/tsch

1.4、删除用户

userdel命令,用来删除用户。

例如:userdel -r test  #-r带着默认家目录一块删

1.5、修改用户

常用的修改工具:

usermod  编辑用户的账户字段,以及制定主要和次要的用户组成员

-l  #用于修改用户账户的登录名

-L  #用于锁定账户,使用户无法登录

-p  #用于修改账户的密码

-U  #用于接触账户锁定,使用户能够登录

passwd  修改已有的用户密码

passwd修改自身密码,passwd test修改test用户密码;

-e   #选项用于前置用户下次登录时修改密码;

chpasswd  读取登录名和密码对文件,并更新密码

用于大量修改用户密码,从标准输入读取登录名和密码对应的列表(由冒号分开)

chage  修改密码的逾期时间

chfn    修改账户的注释信息

将信息存储于/etc/passwd的注释字段中。

finger 命令可以查找关于Linux系统上的用户信息;

chsh    修改用户账户的默认shell

chsh -s /bin/csh test  #test用户的shell程序改为/bin/csh

2、使用Linux用户组

在个人账户控制上,当个用户可以满足,在资源共享方面则有所欠缺。为此我们使用用户组的概念来实现;

每个用户组都有一个唯一的GID。与UDI类似是系统上独一无二的数值。

2.1、/etc/group文件

/etc/group文件用来存放系统中用户组的信息;

与UID类似,500一下的GID为系统用户的用户组信息,而500以及500以上的才是普通用户的用户组信息;

1、用户组名称

2、用户组密码

3、GID

4、属于用户组的用户账户列表

usermod 命令可以帮助我们将用户添加到特定的用户组中;

2.2、创建新的用户组

例如:groupadd shared

tail -1 /etc/group

这时候是没有用户属于这个组的,我们需要使用usermod命令来将用户添加到该组;

usermod -G shared rich

usermod -G shared test

tail -1 /etc/group  #此时,用户rich和test用户就添加到了shared组中;

2.3、修改用户组

groupmod 命令可用来修改组的相关信息;

例如:groupmod -n sharing shared  #-n将shared名字改为sharing;

-g  #可以修改用户组的GID

3、解码文件权限

了解 ll 查看到的文件权限

3.1、使用文件权限符号

rwx-读写执行,同时可以用8进制数来表示

3.2、默认文件权限

遮罩码--umask,定义了文件的默认权限;

文件权限可以使用代码来表示,如下图:

文件的完整权限是666,而目录的完整权限是777;因此在实例中,文件初始权限在去掉umask后为644,而目录的为755;

通过umask命令可以修改默认遮罩码,但是不建议这么做;

4、修改安全设置

4.1、修改权限

chmod用来修改文件权限,格式如下:

chmod options mode file

例如:chmod 760 newfile

也可以使用符号的模式指定文件的权限:

[ugoa...] [ -=] [rwxXstugo...]

u  表示用户

g  表示用户组

o  表示其他

a  表示上述所有

添加对应权限

-  去掉对应权限

=  为权限赋值

x  用于指定执行权限

s  用于设置正在执行的UID或者GID

t  用于保存程序文本

u  用于将权限设置为所有者的权限

g  用于将权限设置为用户组的权限

o  用于将权限设置为其他人的权限

例如:

4.2、修改所有者

chown可以方便的修改文件所有者;

chown options owner [.group] file

例如:chown dan newfile

chown .dan newfile

chown dan. newfile

chown dan.dan newfile

也可以使用 chgrp 直接来修改用户组即可;

例如:chgrp shared newfile  #只修改用户组,类似与chown .dan newfile

5、共享文件

有时候,我们需要将文件共享给所有的用户,我们需要临时调用文件所有者权限,这时候,Linux系统为我们提供了三个额外的信息为,它们分别是:

1、set user id (SUID)  当文件由用户执行时,程序将在文件所有者的权限下运行

2、set group id (SGID)  对于文件,程序将在文件用户组的权限下运行,对于目录,目录中创建的所有新文件使用目录用户组作为默认用户组

3、粘着位  进程结束后,文件仍然保留(粘着)在内存中

chmod命令可以修改设置这三位的信息,权限如下图:

来源:http://www.icode9.com/content-3-175101.html

linux内存中的文件权限,理解Linux文件权限相关推荐

  1. linux内存利用率多少合适,如何理解linux服务器中的内存使用率和平均负载

    我使用的是具有128GB内存和24个内核的 Linux服务器.我使用top来查看它的使用量.它的输出粘贴在帖子的末尾.这是两个问题: (1)我看到每个正在运行的进程占用很小的内存百分比(%MEM不超过 ...

  2. linux内存管理与设计,深入理解Linux内存管理机制(一)

    通过本文,您即可以: 1. 存储器硬件结构: 2.分段以及对应的组织方式: 3.分页以及对应的组织方式. 注1:本文以Linux内核2.6.32.59本版为例,其对应的代码可以在http://www. ...

  3. linux 内存中建立文件,linux函数深入探索——open函数打开文件是否将文件内容加载到内存空间...

    转自:https://blog.csdn.net/qq_17019203/article/details/85051627 问题:open(2)函数打开文件是否将文件内容加载到内存空间 首先,文件打开 ...

  4. Linux内存中的 buffer 和 cache

    Linux内存中的 buffer 和 cache 到底是个什么东东? Linux 中的 free 命令,会输出: total 总量 used  已使用 free 空闲 shared 共享内存 buff ...

  5. Linux 内存中的Cache

    您真的了解Linux的free命令么? Linux上的free命令详解 解释一下Linux上free命令的输出. 下面是free的运行结果,一共有4行.为了方便说明,我加上了列号.这样可以把free的 ...

  6. linux shell bin sh,linux shell中#bin/sh的理解

    摘要 腾兴网为您分享:linux shell中#bin/sh的理解,支付旭尊,小熊到家,天天美剧,淘金宝等软件知识,以及维棠flv视频软件,usb抓包工具,红警2无敌,ucbug造梦西游4,壁纸工作室 ...

  7. Linux内存中的Cache真的能被回收么?

    官方网站 www.itilzj.com 资料文档: wenku.itilzj.com  前言 在Linux系统中,我们经常用free命令来查看系统内存的使用状态.在一个RHEL6的系统上,free命令 ...

  8. 宋宝华:linux内存中 swappiness=0究竟意味着什么?

    本文解释linux内存中swappiness的作用,以及linux内存中swappiness=0究竟意味着什么. 内存回收 我们都知道,Linux一个进程使用的内存分为2种: file-backed ...

  9. Linux使用命令移动文件夹,linux虚拟机中如何用命令来移动文件夹

    对于新手来说,经常会碰到如何移动linux系统中的文件夹之类的问题,这些命令都很简单,关键在于熟能生巧,接下来跟着小编一起学习一下如何在装有linux的虚拟机中进行文件夹的移动. linux虚拟机中如 ...

  10. Linux Polkit 中的pkexec 组件存在的本地权限提升漏洞(CVE-2021-4034)修复方法及centos6和centos7的安装包

    近日安全监测发现Linux Polkit 中的pkexec 组件存在的本地权限提升漏洞(CVE-2021-4034),pkexec应用程序为 Linux 系统预装工具,漏洞影响Ubuntu.Debia ...

最新文章

  1. DTCC:数据库安全重点在数据拷贝过程中
  2. PHP中使用cURL实现Get和Post请求的方法
  3. java debug体系为什么不能debug到jdk里所有的代码
  4. 005 NsPack 1.4 之附加数据初探
  5. 吴恩达 ML作业提交:Grader sent no response
  6. 计算bom的准确用量
  7. STM32 - CubeMX 的使用实例详细(01)- STM32F103的配置 - GPIO设定
  8. SpringBoot 2.1.5(36)---整合Mybatis
  9. 编程之美-程序理解和时间分析
  10. 图像的放大与缩小——双线性插值放大与均值缩小
  11. 青州市2021年高考成绩查询,2021年青州市高考状元名单资料,今年青州市高考状元多少分...
  12. Node:项目文件使用async报错var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _calle
  13. Rpm另类用法加固Linux安全
  14. 为微信小程序扩展自定义babel编译功能
  15. 用户增长——Cohort Analysis 留存分析(三)
  16. Your build settings specify a provisioning profile with the UUID, no provisioning profile was
  17. 看图学习VMWare以及常见问题答疑(转)
  18. Qt完整工程创建和项目文件概述
  19. 1000:Calculate A + B
  20. Ubuntu下N卡配置无法保存的解决办法

热门文章

  1. 《C语言及程序设计》程序阅读——参数传递方式:传值与传地址
  2. ubuntu openStack icehouse dashboard theme自定义
  3. MFC对COM接口编写的支持分析
  4. 17. 维基百科的高性能架构设计分析
  5. hbase 二进制数据写入_HBase总结
  6. 几种常用 css3 选择器解释
  7. iOS UIView视图的图层控制
  8. 1、java 的安装及资料下载
  9. Set和Map的区别 (@es6)
  10. 【学习笔记】深入理解js原型和闭包(15)——闭包