linux内存中的文件权限,理解Linux文件权限
任何完整的系统都应该具备有某种形式的安全性。必须用过某种机制来保护文件不被未授权的用户查看或修改;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文件权限相关推荐
- linux内存利用率多少合适,如何理解linux服务器中的内存使用率和平均负载
我使用的是具有128GB内存和24个内核的 Linux服务器.我使用top来查看它的使用量.它的输出粘贴在帖子的末尾.这是两个问题: (1)我看到每个正在运行的进程占用很小的内存百分比(%MEM不超过 ...
- linux内存管理与设计,深入理解Linux内存管理机制(一)
通过本文,您即可以: 1. 存储器硬件结构: 2.分段以及对应的组织方式: 3.分页以及对应的组织方式. 注1:本文以Linux内核2.6.32.59本版为例,其对应的代码可以在http://www. ...
- linux 内存中建立文件,linux函数深入探索——open函数打开文件是否将文件内容加载到内存空间...
转自:https://blog.csdn.net/qq_17019203/article/details/85051627 问题:open(2)函数打开文件是否将文件内容加载到内存空间 首先,文件打开 ...
- Linux内存中的 buffer 和 cache
Linux内存中的 buffer 和 cache 到底是个什么东东? Linux 中的 free 命令,会输出: total 总量 used 已使用 free 空闲 shared 共享内存 buff ...
- Linux 内存中的Cache
您真的了解Linux的free命令么? Linux上的free命令详解 解释一下Linux上free命令的输出. 下面是free的运行结果,一共有4行.为了方便说明,我加上了列号.这样可以把free的 ...
- linux shell bin sh,linux shell中#bin/sh的理解
摘要 腾兴网为您分享:linux shell中#bin/sh的理解,支付旭尊,小熊到家,天天美剧,淘金宝等软件知识,以及维棠flv视频软件,usb抓包工具,红警2无敌,ucbug造梦西游4,壁纸工作室 ...
- Linux内存中的Cache真的能被回收么?
官方网站 www.itilzj.com 资料文档: wenku.itilzj.com 前言 在Linux系统中,我们经常用free命令来查看系统内存的使用状态.在一个RHEL6的系统上,free命令 ...
- 宋宝华:linux内存中 swappiness=0究竟意味着什么?
本文解释linux内存中swappiness的作用,以及linux内存中swappiness=0究竟意味着什么. 内存回收 我们都知道,Linux一个进程使用的内存分为2种: file-backed ...
- Linux使用命令移动文件夹,linux虚拟机中如何用命令来移动文件夹
对于新手来说,经常会碰到如何移动linux系统中的文件夹之类的问题,这些命令都很简单,关键在于熟能生巧,接下来跟着小编一起学习一下如何在装有linux的虚拟机中进行文件夹的移动. linux虚拟机中如 ...
- Linux Polkit 中的pkexec 组件存在的本地权限提升漏洞(CVE-2021-4034)修复方法及centos6和centos7的安装包
近日安全监测发现Linux Polkit 中的pkexec 组件存在的本地权限提升漏洞(CVE-2021-4034),pkexec应用程序为 Linux 系统预装工具,漏洞影响Ubuntu.Debia ...
最新文章
- DTCC:数据库安全重点在数据拷贝过程中
- PHP中使用cURL实现Get和Post请求的方法
- java debug体系为什么不能debug到jdk里所有的代码
- 005 NsPack 1.4 之附加数据初探
- 吴恩达 ML作业提交:Grader sent no response
- 计算bom的准确用量
- STM32 - CubeMX 的使用实例详细(01)- STM32F103的配置 - GPIO设定
- SpringBoot 2.1.5(36)---整合Mybatis
- 编程之美-程序理解和时间分析
- 图像的放大与缩小——双线性插值放大与均值缩小
- 青州市2021年高考成绩查询,2021年青州市高考状元名单资料,今年青州市高考状元多少分...
- Node:项目文件使用async报错var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _calle
- Rpm另类用法加固Linux安全
- 为微信小程序扩展自定义babel编译功能
- 用户增长——Cohort Analysis 留存分析(三)
- Your build settings specify a provisioning profile with the UUID, no provisioning profile was
- 看图学习VMWare以及常见问题答疑(转)
- Qt完整工程创建和项目文件概述
- 1000:Calculate A + B
- Ubuntu下N卡配置无法保存的解决办法