Linux 学习笔记(四)文件存储与权限操作
Linux文件和目录的权限

Linux初探>Linux文件和目录的权限几个基本概念:·文件所有者(用户)owner·用户组group·其他人others·root文件属性:ls -al 查看文件及属性第一列:文件类型和权限第1个字符代表文件类型(文件、目录或链接文件等)第234个字符表示文件所有者对文件/目录的权限第567个字符表示文件所有者所在用户组对文件/目录的权限第890个字符表示文件所有者所在用户组之外的用户对文件/目录的权限权限用固定的rwx序列表示,有该权限则写相应字符,无权限则写-root拥有最高权限第二列表示有多少个文件名连接到此节点(i-node)第三列表示这个文件/目录的“所有者”账号第四列表示这个文件所属的用户组第五列为这个文件的大小,默认单位B第六列为这个文件的创建或修改日期。
中文日期为乱码可以使用“LANG=en_US”修改语言第七列为文件名,前面为“.”则为隐藏文件改变文件属性与权限:1.chgrp改变文件所属用户组语法:chgrp [-R] groupname dirname/filename参数:-R 递归,同时改变目录及其下所有子目录、文件的权限要求:groupname存在问题:能否改变用户组为文件所有者不支持的用户组。
如果可以,会是什么情况。
2.chown改变文件所有者语法:chown [-R] username dirname/filename要求:必须是存在的用户问题:改变文件所有者或,所属用户组是否随之改变。
3.chmod改变文件/目录权限数字法:用421分别表示rwx的权值,用权值和表示权限,如5代表权限r-x,7代表rwx。
用三位数表示完整权限,如755代表rwxr-xr-x。
字符法:第一组字符:u(user)文件所有者、g(group)用户组、o(others)其他人。
a (all)所有人第二组字符:+ 添加权限、- 去掉权限、=赋予权限第三组字符:r读 w写 x执行语法:chmod [-R] 权限 dirname/filename例:chmod 755 .bashrcchmod u=rwx,go=rx .bashrcchmod a+w .bashrc目录与文件的权限意义:文件:r:可读取此文件的实际内容,如读取文本文件的文字内容。
Linux命令高级技巧使用chmod和chown命令修改文件权限和所有者

Linux命令高级技巧使用chmod和chown命令修改文件权限和所有者Linux命令高级技巧使用 chmod 和 chown 命令修改文件权限和所有者在 Linux 操作系统中,拥有高级技巧的使用者可以通过命令来修改文件权限和所有者。
这对于确保系统安全和管理文件非常重要。
本文将介绍 chmod 和 chown 命令的使用方法,以帮助您达到这些目的。
一、使用 chmod 命令修改文件权限1. 修改文件权限的概念文件权限决定了用户对文件的读、写和执行操作权限。
在Linux 中,文件权限可以分为三个类别:用户(user)、组(group)和其他人(others)。
每个类别都有三种权限:读(r)、写(w)和执行(x)。
2. 查看文件权限在使用 chmod 命令修改文件权限之前,您可能需要先查看文件的当前权限。
使用 ls -l 命令可以显示文件的详细信息,其中包括权限。
```shell$ ls -l file.txt-rw-r--r-- 1 user group 0 Jan 1 00:00 file.txt```上述输出将显示文件 file.txt 的权限。
第一列的 "rw-r--r--" 表示用户具有读写权限,组和其他人只有读权限。
3. 修改文件权限使用 chmod 命令来修改文件权限。
以下是常用的修改权限的方式:- 添加权限:使用 + 号,例如添加用户执行权限 `chmod u+x file.txt`。
- 移除权限:使用 - 号,例如移除其他人的写权限 `chmod o-wfile.txt`。
- 设置权限:使用 = 号,例如设置用户只有读权限 `chmod u=rfile.txt`。
备注:u 代表用户,g 代表组,o 代表其他人。
r、w 和 x 分别代表读、写和执行权限。
二、使用 chown 命令修改文件所有者1. 修改文件所有者的概念文件所有者指的是文件的创建者或者拥有者,在 Linux 中只有所有者和超级用户可以修改文件的所有者。
linux管理文件权限实训

linux管理文件权限实训
Linux 文件权限管理是非常重要的,它涉及到文件和目录的访
问控制。
在 Linux 中,每个文件和目录都有一组权限,这些权限决
定了谁能够访问文件或目录以及他们能够做什么。
下面是一些实践
中常见的文件权限管理任务:
1. 查看文件权限,使用 ls -l 命令可以列出文件的详细信息,包括文件权限。
2. 修改文件权限,使用 chmod 命令可以修改文件的权限。
例如,chmod u+r file.txt 可以给文件所有者添加读权限。
3. 修改文件所有者和所属组,使用 chown 和 chgrp 命令可以
修改文件的所有者和所属组。
4. 理解权限表示法,文件权限可以用数字或符号表示。
例如,rwxr-xr-可以用 755 或 u=rwx,g=rx,o=r 来表示。
在实践中,您可以创建一些测试文件和目录,然后尝试使用上
述命令来管理它们的权限。
您可以尝试不同的权限设置,并验证不
同用户对这些文件的访问情况。
这样可以帮助您更好地理解和掌握Linux 文件权限管理的技能。
linux操作系统管理文件和权限的实训总结

linux操作系统管理文件和权限的实训总结1. 引言1.1 概述Linux操作系统是一款广泛应用于服务器和个人计算机的开源操作系统。
其强大的文件管理和权限设置功能使得用户能够更好地控制和保护文件的安全性。
本篇长文将总结在实训中所学到的Linux操作系统管理文件和权限的相关知识和技巧。
1.2 文章结构本文分为四个部分:引言、Linux操作系统管理文件和权限的实训总结、实训心得与体会以及结论。
在本部分(引言)中,将对文章进行简要介绍,并概括说明后续内容。
1.3 目的本文旨在通过对Linux操作系统管理文件和权限的实际操作实训进行总结,加深对文件管理和权限设置的理解,提高对Linux命令行工具使用技巧的掌握,并探讨在实际应用中遇到的问题及其解决方案。
最终目标是能够提供有价值且实用性强的思考和建议,以便读者能够更好地理解和运用Linux操作系统中关于文件管理和权限设置方面的知识。
2. linux操作系统管理文件和权限的实训总结2.1 实训背景:在Linux操作系统中,文件的管理和权限设置是非常重要的操作。
正确地管理文件可以提高工作效率和数据安全性。
本次实训旨在通过学习Linux命令行工具,并运用所学知识进行实践来掌握文件管理和权限设置的方法和技巧。
2.2 文件管理:2.2.1 创建和删除文件:创建文件是日常工作中常见的任务。
我们可以使用touch命令来创建空白文件,例如:touch file.txt。
而删除文件则可以使用rm命令,如:rm file.txt。
- 在实践过程中,我学会了如何快速地创建空白文件,并且了解到rm命令可以搭配一些参数来批量删除不需要的文件。
2.2.2 复制和移动文件:复制或移动文件是进行整理与备份时常见的操作。
cp命令用于复制文件,例如:cp file.txt newfile.txt 将file.txt复制为newfile.txt。
而mv命令用于移动或重命名文件,例如:mv file.txt /path/to/newdirectory/ 或mv oldfile.txt newfile.txt。
Linuxchmod命令修改文件与文件夹权限使用教程

Linux chmod命令修改文件与文件夹权限使用教程Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
在linux中要修改一个文件夹或文件的权限我们需要用到linux chmod命令来做,具体怎么使用呢?下面我写了几个简单的实例大家可参考一下方法步骤语法:chmod [who] [+ | - | =] [mode] 文件名命令中各选项的含义为u 表示“用户(user)”,即文件或目录的所有者。
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
o 表示“其他(others)用户”。
a 表示“所有(all)用户”。
它是系统默认值。
操作符号可以是:+ 添加某个权限。
- 取消某个权限。
= 赋予给定权限并取消其他所有权限(如果有的话)。
设置mode所表示的权限可用下述字母的任意组合:r 可读。
w 可写。
x 可执行。
X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。
s 在文件执行时把进程的属主或组ID置为该文件的文件属主。
方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
t 保存程序的文本到交换设备上。
u 与文件属主拥有一样的权限。
g 与和文件属主同组的用户拥有一样的权限。
o 与其他用户拥有一样的权限。
实例修改文件可读写属性的方法例如:把index.html 文件修改为可写可读可执行:复制代码代码如下:chmod 777 index.html要修改目录下所有文件属性可写可读可执行:复制代码代码如下:chmod 777 *.*把文件夹名称与后缀名用*来代替就可以了。
比如:修改所有htm文件的属性:复制代码代码如下:chmod 777 *.htm修改文件夹属性的方法把目录 /images/xiao 修改为可写可读可执行复制代码代码如下:chmod 777 /images/xiao修改目录下所有的文件夹属性复制代码代码如下:chmod 777 *把文件夹名称用*来代替就可以了要修改文件夹内所有的文件和文件夹及子文件夹属性为可写可读可执行复制代码代码如下:chmod -R 777 /upload补充:Linux基本命令1.ls命令:格式::ls [选项] [目录或文件]功能:对于目录,列出该目录下的所有子目录与文件;对于文件,列出文件名以及其他信息。
linux命令操作手册

linux命令操作手册一、文件操作1.1 创建文件:使用touch命令可以创建一个空文件,语法为“touch 文件名”。
1.2 编辑文件:使用文本编辑器(如vi、nano等)可以编辑文件,语法为“编辑器文件名”。
1.3 复制文件:使用cp命令可以复制文件,语法为“cp 源文件目标文件”。
1.4 移动文件:使用mv命令可以移动文件,语法为“mv 源文件目标目录”。
1.5 删除文件:使用rm命令可以删除文件,语法为“rm 文件名”。
二、目录操作2.1 创建目录:使用mkdir命令可以创建目录,语法为“mkdir 目录名”。
2.2 删除目录:使用rmdir命令可以删除目录,语法为“rmdir 目录名”。
2.3 移动目录:使用mv命令可以移动目录,语法为“mv 目录名目标目录”。
2.4 复制目录:使用cp命令可以复制目录,语法为“cp -r 源目录目标目录”。
三、文本操作3.1 查看文件内容:使用cat命令可以查看文件内容,语法为“cat 文件名”。
3.2 编辑文件内容:使用文本编辑器(如vi、nano等)可以编辑文件内容。
3.3 查找文本:使用grep命令可以查找文本,语法为“grep '查找内容' 文件名”。
3.4 替换文本:使用sed命令可以替换文本,语法为“sed 's/查找内容/替换内容/g' 文件名”。
四、压缩与解压4.1 压缩文件:使用tar命令可以压缩文件,语法为“tar -czvf 压缩文件名.tar.gz 源文件或目录名”。
4.2 解压文件:使用tar命令可以解压文件,语法为“tar -xzf 压缩文件名.tar.gz”。
五、文件查找5.1 查找文件:使用find命令可以查找文件,语法为“find 查找路径-name '文件名'”。
5.2 查找目录:使用find命令可以查找目录,语法为“find 查找路径-type d -name '目录名'”。
Linux文件权限脚本使用Python设置和管理文件权限

Linux文件权限脚本使用Python设置和管理文件权限在Linux系统中,文件权限是一种重要的安全措施,它可以确保只有授权用户才能对文件进行读、写和执行等操作。
本文将介绍如何使用Python编写脚本来设置和管理Linux文件的权限。
一、理解Linux文件权限在Linux系统中,每个文件和目录都有自己的权限。
权限分为三类:所有者(Owner)、所属组(Group)和其他用户(Others)。
每一类用户都可以有读(r)、写(w)和执行(x)权限。
文件权限用数字表示,r对应4,w对应2,x对应1。
比如,读写权限就是4+2=6,读写执行权限是4+2+1=7,没有权限为0。
二、使用Python设置文件权限首先,我们需要导入Python的os模块,该模块提供了许多与操作系统交互的函数。
```pythonimport os```接下来,我们可以使用以下代码来设置文件的权限:```pythonos.chmod('/path/to/file', 0o755)```以上代码将文件`/path/to/file`的权限设置为755,即所有者具有读写执行权限,所属组和其他用户具有读和执行权限。
如果你想保留文件已有的权限,可以使用以下代码:```pythonold_permissions = os.stat('/path/to/file').st_modeos.chmod('/path/to/file', old_permissions | stat.S_IRWXU |stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH) ```以上代码会将权限设置为与原文件相同。
三、使用Python管理文件权限除了设置文件权限,我们还可以使用Python脚本来管理文件权限,例如检查文件权限、更改文件权限等。
1. 检查文件权限```pythondef check_permissions(filepath):permissions = os.stat(filepath).st_modecheck_owner = permissions & stat.S_IRWXU == permissionscheck_group = permissions & stat.S_IRWXG == permissions check_others = permissions & stat.S_IRWXO == permissions if check_owner and check_group and check_others:print("该文件对所有用户可读写执行")elif check_owner and check_group:print("该文件对所有用户可读写,其他用户只能执行") elif check_owner:print("该文件只对所有者可读写执行")else:print("其他权限设置")```以上代码会根据文件的权限输出相应的提示信息。
青蛙学Linux—用户、组、权限和文件属性

青蛙学Linux—⽤户、组、权限和⽂件属性1、⽤户和组1.1、⽤户⾓⾊在Linux下有以下三种⾓⾊⽤户:1. 超级⽤户:拥有对系统的最⾼管理权限的⽤户,默认⽤户名为root。
需要注意的是,与Windows下的超级管理员Administrator不同,root⽤户在Linux下拥有最⾼的权限,你可以使⽤root⽤户运⾏rm –rf /*命令删除整个系统,⽽Administrator⽤户不允许删除系统⽂件(其实Windows下的最⾼权限⽤户为System,只是Windows限制了使⽤System⽤户登录的⾏为)。
2. 普通⽤户:只能操作⾃⼰⽬录下的⽂件或者经过授权的⽂件,能够登录操作系统。
3. 虚拟⽤户:也叫伪⽤户,⽆法登录操作系统。
这类⽤户的存在主要是为了系统管理的⽅便,满⾜相应的系统进程对于⽂件属主(即权限)的要求。
这类⽤户指向的shell为/sbin/nologin,使⽤该shell的⽤户⽆法登录系统且⽆法通过su命令切换到该⽤户。
1.2、⽤户和组之间的关系在Linux系统下,当⼀个⽤户被创建时,系统将创建⼀个与⽤户同名的组,该⽤户为该组中的唯⼀⽤户。
当然,⼀个⽤户也可以加⼊其他的组。
⽤户和组具有以下⼏种关系:⼀对⼀:即⼀个⽤户可以存在⼀个组中,同时也是该组中的唯⼀成员⼀对多:即⼀个⽤户可以存在多个⽤户组中,那么此⽤户具有多个组的共同权限多对⼀:多个⽤户可以存在⼀个组中,这些⽤户具有和组相同的权限多对多:多个⽤户可以存在多个组中,其实就是上⾯三个对应关系的扩展1.3、⽤户和组的相关配置⽂件1.3.1、/etc/passwd该⽂件是系统的⽤户配置⽂件,是⽤户管理中最重要的⼀个⽂件。
记录了系统中每个⽤户的基本属性,对所有⽤户可读,但只有root⽤户可写。
以下来分析下该⽂件的内容(仅截取⽂件的⼀部分):⽂件中的每⾏内容以冒号分隔,每个字段表⽰的具体含义如下:①:⽤户名②:密码,但是⽤户真正的密码不是保存在这⾥,⽽是在另外⼀个⽂件③:UID,⽤户ID④:GID,⽤户所属的组的ID⑤:⽤户注释⑥:⽤户家⽬录⑦:⽤户的默认shell1.3.2、/etc/shadow该⽂件可以称为/etc/passwd的影⼦⽂件,存储的就是经过加密的⽤户密码。
Linux-权限管理(文件权限)

Linux-权限管理(⽂件权限)Linux - 权限管理(⽂件权限)⼀:基本权限1.基本权限介绍基本权限类型类型全拼释义权限位r read可读4w write可写2x execute可执⾏1权限的归属归属字母属主u属组g其他⽤户o2.设置权限修改属主、属组# 修改⽂件:1.txt的属主为:darker 属组为:human[root@localhost ~]# chown darker.human 1.txt# 修改⽂件:1.txt的属主为:darker[root@localhost ~]# chown darker 1.txt# 修改⽂件:1.txt的属组为:human[root@localhost ~]# chown .human 1.txt# 递归修改⽬录:file1的属主为:darker 属组为:human[root@localhost ~]# chown -R darker.human file1修改u、g、o对应的权限# 加减法# 修改⽂件:1.txt的权限为:属主为u 属组为w[root@localhost ~]# chmod u+x,g-w 1.txt# 赋值法# 修改⽂件:1.txt的权限为:所有⽤户为rwx[root@localhost ~]# chmod a=rwx 1.txt# 修改⽂件:1.txt的权限为:-[root@localhost ~]# chmod a=- 1.txt# 修改⽂件:1.txt的权限为:属主属组为rw 其他⽤户为r[root@localhost ~]# chmod ug=rw,o=r 1.txt# 数字# 修改⽂件:1.txt的权限为:所有⽤户的权限为rwx[root@localhost ~]# chmod 7771.txt# 递归修改⽬录:file1的权限为:所有⽤户的权限为rwx[root@localhost ~]# chmod 777 file1注意:把某⼀个⾮属主⽤户添加到⽂件的属组⾥,他就拥有了该组的权限,⽽不再是其他⼈权限对⽂件/⽬录的意义⽂件:ls -l ⽂件名权限释义r可以cat读取⽂件内容w可以修改⽂件x 可以执⾏⽂件代码,如果该⽂件的代码是编译好的结果那么只有x权限即可执⾏但如果该⽂件的代码是⼀个解释型的脚本程序则需要配合r权限才可执⾏⽬录:ls -dl ⽂件名权限释义r可以ls浏览⽂件下的内容w可以在⽬录下创建新⽂件or⽬录x 可以执⾏⽬录下的程序,除了对⽬录有执⾏权限外,还要对程序⽂件有执⾏权限才⾏可以正常cd切换到⽬录下涉及到多层⽬录如/a/b/c,需要对每⼀级都有x权限才可以正常⾛到下⼀级对⽂件夹的操作(不操作⽂件内容),需要当前⽤户具备的权限对沿途所有⽂件夹有x权限对⽬标⽂件夹有r或w权限权限释义r可以浏览w可以创建、删除、移动⼦⽂件和⼦⽬录对⽂件的操作(操作⽂件内容),需要当前⽤户具备的权限对沿途所有⽂件夹有x权限对⽬标⽂件有r或w权限权限释义r可以读取⽂件内容w可以修改⽂件内容注意点:vim修改的原理是将原⽂件删掉,然后再将内容的内容覆盖写⼊了新⽂件,新⽂件名重命名为原⽂件名验证vim修改的原理# (root⽤户)切换到/usr/local⽬录[root@localhost local]# cd /usr/local# (root⽤户)递归创建test01/dir1⽬录[root@localhost local]# mkdir -p test01/dir1# (root⽤户)递归修改⽬录test01权限为733[root@localhost local]# chmod -R 733 test01# (root⽤户)在test01⽬录下创建1.txt并写⼊内容“123”[root@localhost local]# echo "123" > test01/1.txt# (root⽤户)查看1.txt的内容[root@localhost local]# cat test01/1.txt123# (root⽤户)查看test01⽬录下的⽂件1.txt的详情信息:其他⽤户只有(r)读的权限[root@localhost local]# ll test01/1.txt-rw-r--r--. 1 root root 4 Nov 2510:02 test01/1.txt# (root⽤户)查看test01⽬录下的⽂件1.txt的iNode信息[root@localhost local]# stat test01/1.txtFile: ‘test01/1.txt’Size: 4 Blocks: 8 IO Block: 4096 regular fileDevice: fd00h/64768d Inode: 23609 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Context: unconfined_u:object_r:usr_t:s0Access: 2020-11-2510:02:58.471562017 -0500Modify: 2020-11-2510:02:58.471562017 -0500Change: 2020-11-2510:02:58.471562017 -0500Birth: -# 切换到其他⽤户/⽤其他⽤户登录PS C:\Users\Darker> ssh darker@192.168.50.101darker@192.168.50.101's password:[darker@localhost ~]$ whoamidarker# (普通⽤户)⽤vim打开/usr/local/test01⽬录下的1.txt[darker@localhost ~]$ vim /usr/local/test01/1.txt123~~~"/usr/local/test01/1.txt" [readonly] 1L, 4C 1,1 All # [readonly] 只读# 按i进⼊插⼊模式-- INSERT -- W10: Warning: Changing a readonly file# (普通⽤户)修改1.txt的内容,强制保存并退出456Esc:wq!# 回到原来的root⽤户的窗⼝# (root⽤户)查看1.txt的内容[root@localhost local]# cat test01/1.txt456# (root⽤户)查看test01⽬录下的⽂件1.txt的详情信息:属主和属主变了[root@localhost local]# ll test01/1.txt-rw-r--r--. 1 darker darker 4 Nov 2510:21 test01/1.txt# (root⽤户)查看test01⽬录下的⽂件1.txt的iNode信息[root@localhost local]# stat test01/1.txtFile: ‘test01/1.txt’Size: 4 Blocks: 8 IO Block: 4096 regular fileDevice: fd00h/64768d Inode: 23609 Links: 1Access: (0644/-rw-r--r--) Uid: ( 1000/ darker) Gid: ( 1000/ darker)Context: unconfined_u:object_r:usr_t:s0Access: 2020-11-2510:30:54.822530748 -0500Modify: 2020-11-2510:21:17.823541511 -0500Change: 2020-11-2510:21:17.824541511 -0500Birth: -结论vim修改⽂件时:会将原⽂件删除,⽣成新的⽂件,属主和主组会变成修改的那个⽤户和⽤户所在的组⼆:特殊权限权限权限位SUID4SGID2权限权限位SBIT1SUID1.疑问普通⽤户既不是root也不属于root组,因此它对/etc/shadow⽂件没有任何权限(全是---)# 查看/etc/shadow信息[darker@localhost ~]# ll /etc/shadow----------. 1 root root 970 Nov 2407:29 /etc/shadow但是:普通⽤户为何可以⽤passwd直接修改密码?并且修改的是/etc/shadow⽂件,如何实现的?[darker@localhost ~]$ ll `which passwd`-rwsr-xr-x. 1 root root 27832 Jun 102014 /usr/bin/passwd这⾥可以看到,本应为rwx的第三个x变成了s,这就是s权限2.s权限的特殊之处SUID权限仅对⼆进制可执⾏⽂件有效(对⽬录⽆效)如果执⾏者对于该⼆进制可执⾏⽂件具有x的权限,执⾏者将具有该⽂件的所有者的权限本权限仅在执⾏该⼆进制可执⾏⽂件的过程中有效3.权限设定的⽅法字母表⽰法chmod u+s 可执⾏⽂件 # 给属主添加s权限chmod u-s 可执⾏⽂件 # 删除属主的s权限数字表⽰法(第1位4表⽰SUID,后3位表⽰普通权限 rwx)chmod 4755可执⾏⽂件 # 添加SUID权限到⼆进制可执⾏⽂件chmod 0xxx ... # 可以删除⽂件的SUID(但是⽆法删除⽬录的SUID)4.实例# (root⽤户)查看which cat[root@localhost ~]# ll `which cat`-rwxr-xr-x. 1 root root 54048 Nov 202015 /usr/bin/cat# (普通⽤户)查看/etc/shadow:没有权限(普通⽤户虽然是r-x,但是⽆法直接查看)[darker@localhost local]$ cat /etc/shadowcat: /etc/shadow: Permission denied# (root⽤户)修改 which cat 权限[root@localhost ~]# chmod u+s `which cat` # 或者 chmod 4755 `which cat`#(root⽤户)再次查看which cat[root@localhost ~]# ll `which cat`-rwsr-xr-x. 1 root root 54048 Nov 202015 /usr/bin/cat# (普通⽤户)查看/etc/shadow:有权限了[darker@localhost local]$ cat /etc/shadowroot:$6$Jvw3z/jmU1ASO4P1$vpTJ5OGEtfBOmIpjyK55k87iQPHXCC3.kKOFW9jkyslqC2DMdN7SZdT/zYRfmQ4hBAQXG6CQ4kKdRQ8eFqChf.::0:99999:7::: bin:*:16659:0:99999:7:::daemon:*:16659:0:99999:7:::adm:*:16659:0:99999:7:::lp:*:16659:0:99999:7:::...5.上例的⼯作原理环境前提:Linux中有1个⼆进制程序:cat,属组属组都是rootLinux中有⼀个系统⽂件:/etc/shadow,属组属组是: root:root有⼀个普通⽤户:darker普通⽤户:darker 属于其他⽤户,对⼆进制程序:cat 有执⾏(x)的权限普通⽤户:darker 对系统⽂件:/etc/shadow 没有任何权限默认情况下:普通⽤户:darker 执⾏⼆进制程序:cat系统会创建1个:cat进程该进程的属主属组是该程序的发起者:darker,也就是: darker:darkercat进程访问系统⽂件:/etc/shadowcat进程的属主和属主:darker:darker /etc/shadow⽂件的属主和属主:root:root⼆者的属主属组不匹配,所以被拒绝访问了:Permission denied给⼆进制程序:cat 设置SUID之后:普通⽤户:darker 执⾏⼆进制程序:cat系统会创建1个:cat进程执⾏者对于该⼆进制可执⾏⽂件具有 x 的权限,执⾏者将拥有该⽂件的属组的权限该进程属主是程序的发起者:darker,属组是cat原来的:root,属主属组就是:darker:rootcat进程访问系统⽂件:/etc/shadowcat进程的属主和属主:root:darker /etc/shadow⽂件的属主和属主:root:root⼆者的属主匹配,可以正常访问SGID1.权限设定的⽅法字母表⽰法chmod g+s ⽂件/⽬录 # 给⽂件/⽬录的属组添加s权限chmod g-s ⽂件/⽬录 # 删除⽂件/⽬录的属组的s权限数字表⽰法(第1位2表⽰SGID,后3位表⽰普通权限 rwx)chmod 2755⽂件/⽬录 # 给⽂件/⽬录的属组添加s权限chmod 0755⽂件/⽬录 # 删除⽂件/⽬录的属组的s权限chmod 755⽂件/⽬录 # 同上2.⽂件权限位的表⽰[root@localhost ~]# ll 1.txt-rwxr-sr-x. 1 root root 3243 Nov 2515:411.txt3.SGID相关说明作⽤在⼆进制可执⾏⽂件上时:执⾏有SGID权限的程序时,该⽤户将继承该程序的属组权限作⽤在⽬录上时:该⽬录下所有⽤户新建的⽂件都会⾃动继承该⽬录的属组当⼀个⽤户对某⼀⽬录有写和执⾏权限时,该⽤户就可以在该⽬录下建⽴⽂件如果该⽬录同时⽤SGID修饰,则该⽤户在这个⽬录下建⽴的⽂件都是属于这个⽬录的属组4.实例# (root⽤户)切换到/usr/loca/⽬录并创建⽬录:test02[root@localhost ~]# cd /usr/local[root@localhost local]# mkdir test02# (root⽤户)查看⽬录:test02 的信息[root@localhost local]# ls -dl test02/drwxr-xr-x. 2 root root 6 Nov 2514:19 test02/# !测试(root⽤户)在⽬录:test02 下创建⽂件:1.txt 并查看该⽂件的信息[root@localhost local]# touch /usr/local/test02/1.txt[root@localhost local]# ll /usr/local/test02/1.txt-rw-r--r--. 1 root root 0 Nov 2514:19 /usr/local/test02/1.txt# !测试(普通⽤户)在⽬录:test02 下创建⽂件:2.txt 并查看该⽂件的信息[darker@localhost ~]$ touch /usr/local/test02/2.txt[darker@localhost ~]$ ll /usr/local/test02/2.txt-rw-rw-r--. 1 darker darker 0 Nov 2514:20 /usr/local/test02/2.txt# (root⽤户)修改⽬录:test02 的权限[root@localhost local]# chmod 2773 test02# (root⽤户)再次查看⽬录:test02 的信息[root@localhost local]# ls -dl test02/drwxr-sr-x. 2 root root 6 Nov 2514:20 test02/# !测试(root⽤户)在⽬录:test02 下创建⽂件:3.txt 并查看该⽂件的信息[root@localhost local]# touch /usr/local/test02/3.txt[root@localhost local]# ll /usr/local/test02/3.txt-rw-r--r--. 1 root root 0 Nov 2514:21 /usr/local/test02/3.txt# !测试(普通⽤户)在⽬录:test02 下创建⽂件:4.txt 并查看该⽂件的信息[darker@localhost ~]$ touch /usr/local/test02/4.txt[darker@localhost ~]$ ll /usr/local/test02/4.txt-rw-rw-r--. 1 darker root 0 Nov 2514:21 /usr/local/test02/4.txtSBITSBIT 是the restricted deletion flag or sticky bit的简称,有时也称为Sticky,粘滞位SBIT 与 SUID 和 SGID 的关系并不⼤1.权限设定的⽅法字母表⽰法chmod o+t ⽂件/⽬录 # 给⽂件/⽬录的其他⽤户设置Stickychmod o-t ⽂件/⽬录 # 删除⽂件/⽬录的其他⽤户的Sticky数字表⽰法(第1位1表⽰添加Sticky位,后3位表⽰普通权限 rwx)chmod 1755⽂件/⽬录 # 给⽂件/⽬录的其他⽤户设置Stickychmod 0755⽂件/⽬录 # 删除⽂件/⽬录的其他⽤户的Stickychmod 755⽂件/⽬录 # 同上2.⽂件权限位的表⽰⽂件other位有x权限,并且⽤t代替了,表⽰被设置了Sticky如果other位没有x权限,会显⽰为⼤写T,表⽰有故障(权限⽆效)[root@localhost local]# ls -dl test03drwxr-xr-t. 2 root root 18 Nov 2514:34 dir013.相关说明对于⼀个多⼈可写的⽬录,如果设置了sticky,则每个⽤户仅能删除和改名⾃⼰的⽂件/⽬录只能作⽤在⽬录上,普通⽂件设置⽆意义,⽽且会被Linux内核忽略⽤户在设置 Sticky 权限的⽬录下新建的⽬录不会⾃动继承Sticky权限4.实例# (root⽤户)切换到 /usr/loca/⽬录[root@localhost ~]# cd /usr/local# (root⽤户)递归创建test03⽬录及2个⼦⽬录dir1和dir2[root@localhost local]# mkdir -p test03/dir{1,2}# (root⽤户)创建2个⽤户:user01、user02[root@localhost local]# useradd user01[root@localhost local]# useradd user02# (root⽤户)分别设置dir1和dir2的属主属组为user01和user02[root@localhost local]# chown -R user01:user01 test03/dir1[root@localhost local]# chown -R user02:user02 test03/dir2# (root⽤户)查看⽬录:test03的信息[root@localhost local]# ls -dl test03drwxr-xr-x. 4 root root 28 Nov 2515:37 test03[root@localhost local]# ll test03total 0drwxr-xr-x. 2 user01 user01 6 Nov 2515:37 dir1drwxr-xr-x. 2 user02 user02 6 Nov 2515:37 dir2# (root⽤户)修改⽬录:test03 的权限[root@localhost local]# chmod 1777 test03# (root⽤户)查看⽬录:test03的信息[root@localhost local]# ls -dl test03drwxrwxrwt. 4 root root 28 Nov 2515:37 test03[root@localhost local]# ll test03total 0drwxr-xr-x. 2 user01 user01 6 Nov 2515:37 dir1drwxr-xr-x. 2 user02 user02 6 Nov 2515:37 dir2# 切换到普通⽤户:user01[root@localhost local]# su - user01# !测试(普通⽤户)切换到test03⽬录[user01@localhost ~]$ cd /usr/local/test03# !测试(普通⽤户)查看当前⽬录下的信息[user01@localhost test03]$ lltotal 0drwxr-xr-x. 2 user01 user01 6 Nov 2515:37 dir1drwxr-xr-x. 2 user02 user02 6 Nov 2515:37 dir2# !测试(普通⽤户)⽤户user01将dir1重命名为dir11[user01@localhost test03]$ mv dir1 dir11# !测试(普通⽤户)⽤户user01将dir2重命名为dir22[user01@localhost test03]$ mv dir2 dir22mv: cannot move ‘dir2’ to ‘dir22’: Operation not permitted# !测试(普通⽤户)⽤户user01在dir11⽬录中创建⽂件:1.txt[user01@localhost test03]$ touch dir11/1.txt# !测试(普通⽤户)⽤户user01在dir2⽬录中创建⽂件:2.txt[user01@localhost test03]$ touch dir2/2.txttouch: cannot touch ‘dir2/2.txt’: Permission denied5.注意点SBIT ⽬前只对⽬录有效,⽤来阻⽌⾮⽂件的所有者删除⽂件:⽐较常见的例⼦就是/tmp⽬录权限信息中最后⼀位t表⽰该⽬录被设置了 SBIT 权限SBIT 对⽬录的作⽤是:当⽤户在该⽬录下创建新⽂件或⽬录时,仅有⾃⼰和 root 才有权⼒删除,主要作⽤于⼀个共享的⽂件夹(⽬录)三:chattr引⾔你是否遇到过⽂件或⽬录具有可读写权限,但是使⽤root⽤户删除、修改时提⽰"Operation not permitted"的情况?可能是由chattr设置了⽂件的隐藏保护权限导致通过chattr命令修改⽂件或⽬录属性能够提⾼系统的安全性与chmod命令相⽐,chmod只是改变⽂件的读写、执⾏权限,更底层的属性控制是由chattr命令改变的。
Linux命令高级技巧使用chown和chmod命令修改文件权限和所有者

Linux命令高级技巧使用chown和chmod命令修改文件权限和所有者Linux命令高级技巧:使用chown和chmod命令修改文件权限和所有者在Linux系统中,文件权限和所有者是保护文件安全和访问权限的重要因素。
用户可以使用chown和chmod命令来修改文件的所有者和权限。
本文将介绍如何使用chown和chmod命令以及一些高级技巧来修改文件权限和所有者。
一、chown命令chown命令用于更改文件的所有者。
它的基本语法如下:chown [选项] 文件名1. 修改文件的所有者要将文件的所有者更改为新的所有者,只需在chown命令后面跟上新的所有者的用户标识符(UID)或用户名即可。
例如,要将文件file.txt的所有者更改为用户john,可以使用以下命令:chown john file.txt2. 修改文件的所属组chown命令还可以用于更改文件的所属组。
要修改文件的所属组,只需在chown命令后面跟上冒号(:)后跟新的所属组的组标识符(GID)或组名。
例如,要将文件file.txt的所属组更改为组developers,可以使用以下命令:chown :developers file.txt3. 递归修改文件和目录的所有者有时候需要递归修改文件和目录的所有者,即同时修改该目录下的所有文件和子目录的所有者。
可以使用chown命令的-R选项来实现递归修改。
例如,要将目录/home/user下的所有文件和子目录的所有者更改为用户john,可以使用以下命令:chown -R john /home/user二、chmod命令chmod命令用于更改文件的权限。
它的基本语法如下:chmod [选项] 权限文件名1. 修改文件权限要修改文件的权限,可以使用chmod命令后跟所需的权限。
权限由用户、组和其他三个身份分别设置,每个身份都有读(r)、写(w)和执行(x)权限。
例如,要将文件file.txt的所有者的读权限设置为只读,可以使用以下命令:chmod u=r file.txt2. 修改所有者组的权限要修改文件的所有者组的权限,可以使用chmod命令的g选项。
Linux笔记-文件权限的修改方法和数字表示方法

Linux笔记-⽂件权限的修改⽅法和数字表⽰⽅法修改权限命令chmod 修改⽂件、⽬录权限chmod u+x /tmp/tesfile (字符权限)chmod 755 /tmp/testfile (数字权限)修改⽂件和⽂件夹的权限1.字符修改 chmodu 对属主权限修改分为:添加权限减少权限= 设置权限(这些权限,就是前⾯说的rwx)g 属组权限o 其他⽤户权限a (以上三种)所有权限例如,按字符权限表⽰如下:1.通过 # cd /test 命令来到/test⽬录下,2.创建⼀个aflie⽂件(# touch afile),3.查看afile⽂件的属主权限:# ls -l afile,返回结果如下:-rw-r--r--. 1 root root 0 6⽉ 22 11:50 afile4.给afile⽂件添加⽤户执⾏权限:# chmod u+x afile,5.查看结果:# ls -l-rwxr--r--. 1 root root 0 6⽉ 22 11:50 afile6.属组:的位置减少读取的权限:chmod g-r afile7.查看结果:# ls -l-rwx---r--. 1 root root 0 6⽉ 22 11:50 afile8.将其他⽤户的读权限修改为写权限:# chmod o=w afile9.查看结果:# ls -l-rwx----w-. 1 root root 0 6⽉ 22 11:50 afile10.将所有⽤户和组加上读的权限:# chmod a+r afile按数字权限表⽰如下:1.将属主权限和属组权限标为只读,其他权限标为读写权限:# chmod 446 afile2.查看结果:# ls -l-r--r--rw-. 1 root root 0 6⽉ 22 11:50 afile3.默认权限:# chmod 644 afile4.查看结果:# ls -l-rw-r--r--. 1 root root 0 6⽉ 22 11:50 afile默认权限要参考⼀个值⽽改变,在Linux中默认会创建⼀个666的权限,这个权限要减掉⼀个umask的值为002 的权限,即 666-022=644以上就是如何通过字符和数字对权限进⾏设置。
如何在Linux终端中查看和修改文件权限

如何在Linux终端中查看和修改文件权限文件权限是Linux系统中非常重要的概念,它控制着对文件的访问、读写和执行等操作。
在Linux终端中,我们可以使用一些简单的命令来查看和修改文件权限。
本文将介绍如何在Linux终端中进行这些操作。
一、查看文件权限1.使用ls命令查看文件权限:在Linux终端中,使用ls命令可以列出当前目录下的文件和文件夹。
在ls的输出结果中,文件权限信息以一串字符的形式显示。
例如:```-rw-r--r--```其中,第一个字符表示文件类型,后面的字符分为三组,每组三个字符代表了文件所有者、文件所属组和其他用户对文件的权限。
2.解读文件权限:文件权限由九个字符组成,每个字符代表不同的权限或属性。
这九个字符中,前面的字符用于表示文件类型,后面的九个字符分为三组,每组三个字符代表了文件的读、写和执行权限。
```-rw-r--r--```上面的例子中,第一个字符"-"表示这是一个普通文件。
后面三个字符"rw-"表示文件所有者对文件具有读写权限,接下来的三个字符"r--"表示文件所属组用户对文件具有读权限,最后的三个字符"r--"表示其他用户对文件具有读权限。
每个权限的含义如下:- r:读权限,用于允许读取文件或查看文件内容。
- w:写权限,用于允许修改文件或添加新内容。
- x:执行权限,用于允许执行文件。
二、修改文件权限1.使用chmod命令修改文件权限:在Linux终端中,使用chmod命令可以修改文件或目录的权限。
chmod的语法为:```chmod [选项] 权限文件名/目录名```例如,要将文件test.txt的所有者和所属组的写权限去除,可以使用以下命令:```chmod u-w,g-w test.txt```这里的"u"表示所有者,"g"表示所属组,"w"表示写权限的去除。
简述文件与文件夹的有效权限

简述文件与文件夹的有效权限文件和文件夹的有效权限是指在操作系统中针对特定文件或文件夹所设定的权限控制,用于规定用户或用户组对文件或文件夹进行读取、写入和执行等操作的权限。
在Linux系统中,文件和文件夹的有效权限由三部分构成,分别是文件或文件夹的所有者权限、所属的组权限和其他用户权限。
这三部分权限分别用三个字符表示,包括r(读取权限)、w(写入权限)和x(执行权限)。
以下是对这三个权限的详细描述:1. 读取权限(r):读取权限允许用户查看文件或文件夹中的内容。
对于文件来说,读取权限表示用户可以打开并阅读文件的内容;对于文件夹来说,读取权限表示用户可以浏览文件夹中的文件列表。
2. 写入权限(w):写入权限允许用户修改文件或文件夹中的内容。
对于文件来说,写入权限表示用户可以修改文件的内容,包括新增、删除和编辑等操作;对于文件夹来说,写入权限表示用户可以在文件夹中创建、删除、重命名和移动文件。
3. 执行权限(x):执行权限允许用户执行文件或访问文件夹中的内容。
对于文件来说,执行权限表示用户可以运行该文件,例如执行可执行文件或脚本;对于文件夹来说,执行权限表示用户可以进入该文件夹并访问其中的文件。
另外,用户还可以设置特殊权限,用于增加一些特殊的功能或约束,如设置SUID权限,使得用户以文件所有者的身份执行文件。
特殊权限包括s、S、t和T等。
文件和文件夹的有效权限可以通过命令行工具chmod来修改。
chmod命令使用数字或符号的方式表示权限,其中使用数字方式表示的权限范围是0-7,分别代表了r、w、x权限的组合。
例如,权限为rwxr-xr--可以用数字方式表示为754。
文件和文件夹的有效权限设置需要对文件或文件夹进行分析,考虑到文件或文件夹的重要性、访问要求和安全性等因素。
在Linux系统中,权限设置主要遵循“最小权限原则”,即尽量给予最小权限以确保系统及文件的安全性。
常见的权限设置包括以下几种:1. 755(rwxr-xr-x):适用于可执行文件或脚本,权限允许文件所有者拥有读写执行权限,组用户和其他用户有读和执行权限。
Linux命令高级技巧使用chown和chmod命令修改文件和的所有权和权限

Linux命令高级技巧使用chown和chmod命令修改文件和的所有权和权限Linux命令高级技巧使用chown和chmod命令修改文件的所有权和权限在Linux系统中,文件的所有权和权限是非常重要的,它们决定了用户对文件的操作权限。
为了保护文件的安全性和正确性,我们需要经常使用chown和chmod命令来修改文件的所有权和权限。
本文将介绍如何使用这两个命令来实现高级技巧,以便更好地管理和保护文件。
一、chown命令修改文件的所有权chown命令用于修改文件或目录的所有权。
它可以改变文件或目录的所有者和所属组。
下面是chown命令的基本语法:chown [选项] 所有者文件名其中,选项包括:-R:递归修改文件及其子目录的所有权。
例如,要将文件file.txt的所有者修改为user1,可以使用以下命令:```chown user1 file.txt```如果要修改整个目录及其子目录下的所有文件的所有者,可以使用-R选项:```chown -R user1 directory```二、chmod命令修改文件的权限chmod命令用于修改文件或目录的权限。
权限由读(r)、写(w)和执行(x)三个部分组成,分别表示对文件的读取、写入和执行操作的权限。
下面是chmod命令的基本语法:chmod [选项] 权限文件名其中,选项包括:-R:递归修改文件及其子目录的权限。
权限可以用数字表示,每个数字代表一类用户的权限,例如:0:没有任何权限1:执行权限2:写权限4:读权限要将文件file.txt的权限设置为读写权限,可以使用以下命令:```chmod 600 file.txt```如果要修改整个目录及其子目录下的所有文件的权限,可以使用-R 选项:```chmod -R 600 directory```三、使用chown和chmod命令的高级技巧1. 修改文件所有权和权限同时在实际应用中,我们经常需要同时修改文件的所有权和权限。
Linux常用命令(3)--文件管理(查看文件大小权限信息、修改文件所属用户和操作权限、压。。。

Linux常⽤命令(3)--⽂件管理(查看⽂件⼤⼩权限信息、修改⽂件所属⽤户和操作权限、压。
⼀、查看⽂件⼤⼩、⽂件夹⼦⽬录1、查看⽂件系统磁盘⼤⼩、挂载点df :可以查看⼀级⽂件夹⼤⼩(默认单位为:k)、使⽤⽐例、档案系统及其挂⼊点(但对⽂件却⽆能为⼒)。
df -T :显⽰分区的⽂件系统(不带单位,默认为k;结果中包含分区⽂件类型Type)df -h :显⽰⽂件系统的可⽤空间及使⽤情形(采⽤⽤户易读的⽅式)概念解析:挂载点 Linux是树型⽬录结构,Linux只有⼀个根⽬录'/',其余各个⽬录都是基于这个根⽬录发散,就是树形结构。
Linux分区是将某个分区挂到⼀个对应的⽬录上。
例如/home对应⼀块分区,home⽬录就是这块分区的挂载点;/boot对应 虽然硬盘分区表中最多能存储四个分区,但我们实际使⽤时⼀般只分为两个分区,⼀个是主分区(Primary Partion)⼀个是扩展分区(extended partition)两种,主分区可以马上被使⽤但不能再分区,扩展分区必须再进⾏分区后才能使⽤,也就是说它必须还要进⾏⼆次分区。
那么由扩充分区再分下去的是什么呢?它就是逻辑分区(LogicalPartion),况且逻辑分区没有数量上限制。
Linux⽆论有⼏个分区,分给哪⼀⽬录使⽤,它归根结底就只有⼀个根⽬录,⼀个独⽴且唯⼀的⽂件结构。
每个分区都是⽤来组成整个⽂件系统的⼀部分,因为它采⽤了⼀种叫“挂载点”的处理⽅法,它的整个⽂件系统中包含了⼀整套的⽂件和⽬录,且将⼀个分区和⼀个⽬录联系起来。
这时要载⼊的⼀个分区将使它的存储空间在⼀个⽬录下获得。
Linux的分区是不同于其它操作系统的分区,它的分区格式常⽤的有Ext3和Swap两种,Ext3⽤于存放系统⽂件,Swap则作为交换分区(相当于windows中的虚拟内存⽂件)。
推荐阅读:概念解析:tmpfs tmpfs是⼀种虚拟内存⽂件系统,⽽不是块设备。
在Linux中使用chown和chmod命令修改文件和的权限

在Linux中使用chown和chmod命令修改文件和的权限在Linux中使用chown和chmod命令修改文件和目录权限在Linux系统中,chown和chmod是两个常用的命令,用于修改文件和目录的所有者和权限。
本文将介绍如何正确使用这两个命令,并且提供示例来帮助读者更好地理解。
一、使用chown命令修改文件和目录的所有者在Linux系统中,用chown命令可以修改文件和目录的所有者。
其基本格式如下:chown [选项] 用户文件/目录1.1 更改文件/目录的所有者为指定用户下面示例演示了如何将文件file.txt的所有者更改为user1:chown user1 file.txt1.2 更改目录及其子目录/文件的所有者如果想要同时修改目录及其子目录/文件的所有者,可以使用-R选项,如下所示:chown -R user1 directory二、使用chmod命令修改文件和目录的权限在Linux系统中,用chmod命令可以修改文件和目录的权限。
其基本格式如下:chmod [选项] 权限文件/目录2.1 使用数字表示权限在Linux中,权限可以使用数字表示,其中每个数字所代表的含义是:0:没有权限1:执行权限2:写入权限4:读取权限为了修改权限,我们需要将这几个数字相加。
例如,以下命令表示将文件file.txt的所有者权限设置为可读写,组权限设置为只读,其他用户权限为没有权限:chmod 640 file.txt2.2 使用符号表示权限除了使用数字表示权限外,我们还可以使用符号表示权限。
常用的符号表示方式有:u:文件或目录的所有者g:文件或目录的所属组o:其他用户a:所有用户同时,权限也可以用“+”和“-”来表示添加和删除的操作。
比如,以下命令表示将文件file.txt的所有者权限添加可写,组权限删除可读,其他用户权限添加可执行:chmod u+w,g-r,o+x file.txt三、其他常用的选项和说明下面是一些常用的选项以及对应的说明:chown命令:-h:修复符号链接的所有者-v:显示详细的修改信息-R:递归修改文件及其子目录/文件的所有者chmod命令:-h:修复符号链接的权限-v:显示详细的修改信息-R:递归修改文件及其子目录/文件的权限补充说明:权限表示方法有两种,一种是基于数字的表示方式,另一种是基于符号的表示方式。
实验4 Linux 文件权限管理实验

第四部分:其他人权限
对于文件/etc/passwd,其他人可读、不可写,不可执行
对于文件/etc/shadow,其他人不可读、不可写,不可执行
5.尝试向没有写权限的文件写入数据,如图1-5:
图1-5
命令如下:
echo "test" >> /etc/passwd
写标记位:即文件(目录)可以被写,记为w
执行标记位:即文件可以被执行或目录可以被访问,记为x
因为系统有能力支持多用户,在每一方面系统都会做出谁能读、写和执行的资源权力限制。这些权限以三个八位元的方式储存着,一个是表示文件所属者,一个是表示文件所属群组,一个是表示其他人。这些数字以下列方式表示,文件(目录)的每种所属关系均从下表中取一种以组合表示:
真实用户ID (uid)是拥有或启动进程的用户UID。生效UID (euid)是进程以其身份运行的用户ID。
举例来说,passwd工具通常是以发起修改密码的用户身份启动,也就是说其进程的真实用户ID是那个用户的ID;但是,由于需要修改密码数据库,它会以root用户作为生效用户ID的身份运行。这样,普通的非特权用户就可以修改口令,而不是看到“Permission Denied”错误了。
重复上面的图1-11所示步骤,以普通帐号sample创建文件abcd;
重复上面的图1-12所示步骤,到以普通帐号test尝试删除/sample/abcd时,发现这次删除不了了,如图1-14:
图1-14
S位(suid / sgid)
S位分为SUID和SGID,分别作用于属主和属组的权限位。
uid和euid
Linux内核最初是为英特尔386微处理器设计的。现在Linux内核支持从个人电脑到大型主机甚至包括嵌入式系统在内的各种硬件设备。
Linux命令高级技巧使用chown和chmod命令修改文件和的权限

Linux命令高级技巧使用chown和chmod命令修改文件和的权限Linux命令高级技巧使用chown和chmod命令修改文件的权限为了保证Linux系统的安全性和文件的隐私性,我们经常需要修改文件的权限。
在Linux系统中,使用chown和chmod命令可以方便地修改文件的所有者和访问权限。
本文将介绍如何使用chown和chmod 命令来修改文件的权限,并提供一些高级技巧以便更好地掌握这两个命令。
一、使用chown命令修改文件的所有者chown命令用于修改文件(或目录)的所有者。
下面是chown命令的基本语法:```chown [选项] 所有者文件```其中,[选项]表示可选的参数,所有者表示指定文件的新所有者,文件表示需要修改所有者的文件名。
1. 修改文件的所有者为特定用户如果你想将文件的所有者修改为特定的用户,可以使用以下命令:```chown 用户名文件```例如,要将文件file.txt的所有者修改为user1,可以运行以下命令:```chown user1 file.txt```2. 修改文件的所有者为特定用户组有时候,我们需要将文件的所有者修改为特定的用户组。
可以使用以下命令:```chown :用户组文件```例如,要将文件file.txt的所有者修改为group1,可以运行以下命令:```chown :group1 file.txt```3. 修改目录及其子目录下所有文件的所有者如果你想修改一个目录及其子目录下所有文件的所有者,可以使用以下命令:```chown -R 用户名目录```其中,-R选项表示递归地修改目录及其子目录下的所有文件。
二、使用chmod命令修改文件的权限chmod命令用于修改文件的访问权限。
下面是chmod命令的基本语法:```chmod [选项] 权限文件```其中,[选项]表示可选的参数,权限表示需要修改的访问权限,文件表示需要修改权限的文件名。
1. 修改文件的权限为特定的模式你可以通过以下命令将文件的权限修改为特定的模式:```chmod 模式文件```其中,模式表示需要设置的访问权限。
文件权限管理

文件权限管理文件权限管理是指在计算机系统中对文件的访问权限进行管理和控制的一项重要功能。
通过合理的文件权限管理,可以保护文件的机密性、完整性和可用性,防止未授权访问、修改或删除文件的发生,从而提高系统的安全性和稳定性。
一、文件权限的基本概念在Linux和Unix操作系统中,每个文件都有三个基本权限:读取(r)、写入(w)和执行(x),分别对应于文件的所有者、所属组和其他用户的权限。
这三个权限是二进制表示的,可用数字或符号来表示。
1. 读权限(r):允许用户查看文件的内容,如文本文件的读取,或者执行程序文件;2. 写权限(w):允许用户修改文件的内容,如编辑、增加或删除文件中的数据;3. 执行权限(x):允许用户运行程序文件或通过路径访问子目录。
二、文件权限管理的方法1. 修改文件权限:Linux和Unix系统中可以使用chmod命令来修改文件的权限。
例如,chmod 755 file.txt命令将文件file.txt的所有者设置为可读、可写、可执行,所属组和其他用户只有读和执行权限。
2. 文件所有者和所属组:每个文件都有一个所有者和一个所属组。
文件的所有者可以修改文件的权限,而所属组的权限则影响组内其他用户对文件的访问。
通过chown和chgrp命令可以更改文件的所有者和所属组。
3. umask设置:Umask是用来设置新创建文件和目录默认权限的。
通过调整umask值,可以限制新创建文件的权限。
例如,umask 022将权限掩码设置为022,新创建的文件权限为644。
4. 访问控制列表(ACL):考虑到简单的三个权限无法满足复杂的访问控制需求,Linux系统引入了ACL技术。
ACL允许用户定义更细粒度的权限控制,可以对单独的用户或用户组设置权限。
5. 特殊权限:除了基本的读、写和执行权限外,还有一些特殊权限可用来进一步限制文件的访问。
如粘滞位(Sticky Bit)权限可以防止用户删除其他人的文件,在/tmp目录中常用;SetUID和SetGID权限分别允许用户以文件所有者和所属组的身份运行程序,常用于系统管理程序中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux 学习笔记(四)
2013.3.29
一、Linux文件存储与权限操作
Linux系统以EXT3作为文件系统
-rwxr-xr-x 2 edison edison 2184 2013-03-25 16:18 a
文件类型(1)+操作权限(9)+ 链接数+拥有者+ 用户组+文件自身大小+访问时间+文件名
7种文件类型包括:
●普通文件(-)
●目录文件(d)
●链接文件(l)
●设备文件(block型b, 字符型c)
●通信文件(s):socket
●管道文件(p)
edison@ubuntu:~/dir/bdir$ ls -l
total 4
-rw-rw-r-- 1 edison edison 0 2013-03-29 10:17 common
drwxrwxr-x 2 edison edison 4096 2013-03-29 10:17 directory
lrwxrwxrwx 1 edison edison 6 2013-03-29 10:18 link -> common
edison@ubuntu:~/dir/bdir$
●block型:是慢速设备,以512字节块进行操作;
●字符型:tty系列,单字节操作,快!
#读取硬盘所有数据
cat /dev/sda #从分区mbr开始读取全部数据
cat file > dev/sda #执行本操作将使硬盘损坏!!!丢失mbr和分区表数据,只能重装系统;不能执行覆盖写程序,而是append>>;
dd if=/dev/sda of=/mnt/sda_back.img #备份硬盘数据为sda_back.img文件
######################################################################
$dd if=/dev/file of=/dev/null& pid=$!
$kill –User1 $pid=!; sleep 1; kill $pid;
root@ubuntu:/home/edison# dd if=./dir/bdir of=../../null& pid=$!
[1] 2423 #进程号
root@ubuntu:/home/edison# dd: reading `./dir/bdir': Is a directory
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000655521 s, 0.0 kB/s
[1]+ Exit 1 dd if=./dir/bdir of=../../null
root@ubuntu:/home/edison# kill -Usr1 $pid=!
bash: kill: 2423=!: arguments must be process or job IDs
root@ubuntu:/home/edison# sleep 1
root@ubuntu:/home/edison# kill $pid
bash: kill: (2423) - No such process
root@ubuntu:/home/edison#
######################################################################
ls –ld /dir/ #显示目录dir自身的权限,而非dir下文件的权限
若存在一个文件file,其属性为:
----r--r-x User1 User1 time file
则,User1用户的权限是无,不会因为其组具有读权限而有该权限。
在linux中,用户权限不会叠加,仅受user权限决定。
#分区介绍:
在linux中,硬盘以4K为单位进行文件存储。
10K的文件,占12K空间(ls –l显示10K,而du显示12K)
一个文件被访问时,通过以下3个步骤:
A.读取目录文件中文件对应的inode值;
B.根据inode值访问链接的inode,inode存储有文件的所有信息(权限、大小等);
C.根据inode中的文件属性,访问存储的block数据块;
当前在pic目录下存储有1.jpg文件,该文件的inode=100;
通过inode链接到相应的block数据块,访问该图片数据。
若文件存在,但无数据,在C部分无链接,仅存在A、B两部分。
若b为1.jpg的硬链接文件,则b也指向inodex=100,也可访问对应的block数据块。
#ln:
edison@ubuntu:~/dir/bdir$ ln common hardlink #硬链接文件
edison@ubuntu:~/dir/bdir$ ln -s common softlink #软链接文件
edison@ubuntu:~/dir/bdir$ ls -l
total 4
-rw-rw-r-- 2 edison edison 0 2013-03-29 10:17 common
drwxrwxr-x 2 edison edison 4096 2013-03-29 10:17 directory
-rw-rw-r-- 2 edison edison 0 2013-03-29 10:17 hardlink
lrwxrwxrwx 1 edison edison 6 2013-03-29 10:18 link -> common
lrwxrwxrwx 1 edison edison 6 2013-03-29 10:58 softlink -> common
硬链接会增加链接数,软链接不会增加链接数(可能是由于软链接用于目录?)。
当指向文件的所有链接文件都被删除时,该文件的数据才会被删除,否则,该文件的数据一直都在。
inode总有一个文件被指向(如删1.jpg,仍然可通过b进行访问)。
●ln硬链接:无法跨分区进行创建。
一般用于备份,防止误删文件。
●ln -s软链接:可跨分区对目录建立链接。
用于直接访问目录。
#stat查看common文件的inode内容:
edison@ubuntu:~/dir/bdir$ stat common
File: `common'
Size: 0Blocks: 0IO Block: 4096 regular empty file
Device: 801h/2049d Inode: 265202Links: 2
Access: (0664/-rw-rw-r--) Uid: ( 1000/ edison) Gid: ( 1000/ edison)
Access: 2013-03-29 10:17:43.904953568 +0800
Modify: 2013-03-29 10:17:43.904953568 +0800
Change: 2013-03-29 10:58:44.728380406 +0800
edison@ubuntu:~/dir/bdir$
#chown:
chown Edison file #更改file的用户名为edison
chown Edison .ttt file #更改file的用户名为edison和组名为ttt chown –R Edison /dir/ #更改目录dir中所有文件的用户名为edison chown .ttt file #更改file的组名为ttt
chown :ttt file #更改file的组名为ttt
chgrp ttt file #更改file的组名为ttt。