Linux文件权限,chmod
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux文件权限,chmod相关的知识,希望对你有一定的参考价值。
参考技术A linux文件权限,chmod权限符号意义符号代表意义
数字r
文件:可读路径:仅能读取路径结构列表4w
文件:可写路径:可新增、删除、移动路径下的文件2x
文件:可执行路径:可进入该路径,访问该路径下的文件1s
suid:仅对二进制文件有效,如/usr/bin/passwdsgid:对文件和路径都有效使文件有暂时拥有所有者或群组的权限42t
sbit:主要对路径有效。只能删除自建的文件,如/tmp/
1主要语法chmod
[option]
mode[,mode]...
file...chmod
[option]
octal-mode
file...mode改变文件权限可以通过2种模式。符号模式和8进制数字模式。符号模式chmod
u(拥有者)g(群组)o(其他)a(所有)+(加入)-(减去)=(设定)r(可读)w(可写)x(可执行)s(suid/sgid)t(sbit)file8进制数字模式
suid/sgid/sbit拥有者
群组其他chomod
0-70-70-70-7filer=4,w=2,x=1,rwx=7,rw=6,rx=5suid=4,sgid=2,sbit=1用例1
用2种模式改变文件权限,将此文件变成可执行文件,并且其他人无法修改linux代码
$
chmod
755
~/testfile
$
chmod
u=rwx,go=rx
~/testfile
2
使文件对于所有用户,添加可写的权限linux代码
$
chmod
a+w
~/testfile
3
用2种模式,给可执行文件加入suid权限linux代码
$
chmod
4755
~/testfile
//testfile原权限为755
$
chomd
u+s
~/testfile
4用2种模式,给路径加入sgid权限。常用于群组中用户间数据的共享linux代码
$
chomd
2755
~/testpath/
//testpath原权限为755
$
chmod
g+s
~/testpath/
5
用2种模式,给路径加入sbit权限linux代码
$
chmod
1755
~/testpath
//tsetpath原权限为755
$
chmod
o+t
~/testpath
Linux文件/目录管理(中级)
Linux文件/目录管理
前言
Linux 系统中的每个文件和目录都有访问许可权限,用它来确定谁能通过何种方式对文件和目录进行访问和操作。
文件的访问权限分为只读,只写和可执行三种。
目录的访问权限分为可浏览、可修改目录内容和可进入三种。
只读权限表示只允许读其内容,而禁止对其做所有的更改操作。 可执行权限表示允许将该文件作为一个程序执行。文件被创建时,文件所有者自动拥有对该文件的读、写和可执行权限,以便于对文件的阅读和修改。用户也可根据需要把访问权限设置为需要的所有组合。
有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户、其他用户。所有者一般是文件的创建者。所有者能允许同组用户有权访问文件,还能将文件的访问权限赋予系统中的其他用户。在这种情况下,系统中每一位用户都能访问该用户拥有的文件或目录。
Linux文件权限修改
相关知识
Linux系统中的每个文件都有访问许可权限,文件的访问权限分为只读,只写和可执行三种。
- 只读权限表示只允许读其内容,而禁止对其做任何的更改操作。
- 只写权限表示允许修改文件的内容。
- 可执行权限表示允许将该文件作为一个程序执行。
每一文件的访问权限都有三组,每组用三位表示,分别为文件所属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。
当用ls -l
或ll
命令显示文件的详细信息时,最左边的一列为文件的访问权限。例如显示test
文件详细信息:
chmod 修改文件权限命令
Linux中使用chmod
命令来修改文件权限。
文字设定法具体命令如下:
chmod [who] [+ | - | =] [mode] 文件名
who
参数如下:
- u 表示“用户(user)”,即文件或目录的所有者;
- g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户;
- o 表示“其他(others)用户”;
- a 表示“所有(all)用户”,它是系统默认值。
操作符 如下:
- +:添加某个权限;
- -:取消某个权限;
- =:赋予给定权限并取消其他所有权限。
mode
参数如下:
- r 可读;
- w 可写;
- x 可执行。
数字设定法具体命令如下:
chmod [mode] 文件名
mode
为具体的数字。
首先了解用数字表示的属性的含义:0
表示没有权限,1
表示可执行权限,2
表示可写权限,4
表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是u、g和o
。
案例演示一:
将文件testFile
的所有权限设置为仅读权限,可以使用如下命令:chmod a=r testFile
案例演示二:
将文件testFile
的所有权限设置为可读可写,同组用户权限设置为只读,可以使用如下命令:chmod u=rw,g=r testFile
案例演示三:
将文件testFile
的权限设置为所有者可读可写可执行,同组用户设置为可读可执行,其他用户设置为可读,可以使用如下命令:chmod 754 testFile
chmod 修改所有者权限
linux
使用chmod u+/-/=
命令来设置文件所有者的权限。
具体命令如下:
chmod u [+ | - | =] [mode] 文件名
操作符如下:
- +:添加某个权限;
- -:取消某个权限;
- =:赋予给定权限并取消其他所有权限。
mode
参数如下:
- r 可读;
- w 可写;
- x 可执行。
案例演示一:
将文件testFile
的所有者权限设置为仅读权限,可以使用如下命令:chmod u=r testFile
案例演示二:
给文件testFile
的所有者权限添加可执行权限,可以使用如下命令:chmod u+x testFile
chmod 修改同组用户权限
加粗样式Linux修改同组用户权限的方法与修改所有者的权限大致一样,唯一不同的点是修改同组用户权限采用chmod g
而不是采用chmod u
。
案例演示一:
将文件testFile
的同组用户权限设置为仅读权限,可以使用如下命令:chmod g=r testFile
案例演示二:
给文件testFile
的同组用户权限添加可执行权限,可以使用如下命令:chmod g+x testFile
chmod 修改其他用户权限
Linux修改其他组用户权限的方法与修改所有者的权限大致一样,唯一不同的点是修改其他组用户权限采用chmod o
而不是采用chmod u
。
案例演示一:
将文件testFile
的其他组用户权限设置为仅读权限,可以使用如下命令:chmod o=r testFile
案例演示二:
给文件testFile
的其他组用户权限添加可执行权限,可以使用如下命令:chmod o+x testFile
案例演示三:
1)将系统已存在文件oldFile1的所有者权限设置为可执行;
2)为系统已存在文件oldFile2的同组用户权限删除可写权限;
为系统已存在文件oldFile3的其他组用户权限添加可执行权限;
3)将系统已存在文件oldFile4的权限设置所有者权限为可读,4)同组用户权限为可写,其他用户权限为可执行;
chmod u=x oldFile1
chmod g-w oldFile2
chmod o+x oldFile3
chmod 421 oldFile4
没有人能一路单纯到底,但要记住,别忘了最初的自己。
Linux目录权限修改
相关知识
Linux系统中的每个目录都有访问许可权限,目录的权限和文件的权限类似,目录的访问权限也分为只读,只写和可进入三种。
只读权限表示允许浏览其内容。
只写权限表示允许在目录下新创建文件或目录。
可进入权限表示允许使用cd
命令进入到该目录下。
每一目录的访问权限都有三组,每组用三位表示,分别为所有者权限、同组用户权限和其他用户权限。
当用ls -l
命令显示目录的详细信息时,最左边的一列为目录的访问权限。
例如显示当前目录下的test
目录详细信息可以使用如下命令:ls -l
chmod 修改目录权限命令
Linux中使用chmod
命令来修改目录权限。
文字设定法具体命令如下:
chmod 参数 [who] [+ | - | =] [mode] 目录名
常用参数如下:
- -R或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理。
who
参数如下:
- u 表示“用户(user)”,即文件或目录的所有者;
- g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户;
- o 表示“其他(others)用户”;
- a 表示“所有(all)用户”,它是系统默认值。
操作符如下:
- +:添加某个权限;
- -:取消某个权限;
- =:赋予给定权限并取消其他所有权限。
mode
参数如下:
- r 可读;
- w 可写;
- x 可执行。
数字设定法具体命令如下:
chmod [mode] 文件名
mode
为具体的数字。
首先了解用数字表示的属性的含义:0
表示没有权限,1
表示可进入权限,2
表示可写权限,4
表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是u、g和o
。
案例演示一:
将目录testDir
的所有权限设置为仅读
权限,可以使用如下命令:chmod a=r testDir
此时testDir
目录只能被用户所读,而不能进行其他的任何操作。
案例演示二:
将目录testDir
的所有权限设置为可读可写,同组用户权限设置为只读,可以使用如下命令:
chmod u=rw,g=r testDir
此时testDir
目录有写权限,但是还是无法创建新文件,原因是目录中的写权限(w
)必须与执行权限(x
)配合才能创建和删除目录下的内容。
案例演示三:
将目录testDir
的权限设置为所有者可读可写可执行,同组用户设置为可读可执行,其他用户设置为可读可执行,可以使用如下命令:chmod 755 testDir
此时,用户可以向testDir
目录添加新文件和删除已有文件。
chmod 修改所有者权限
linux使用chmod u+/-/=
命令来设置目录所有者的权限。
具体命令如下:
chmod u [+ | - | =] [mode] 目录名
操作符如下:
- +:添加某个权限;
- -:取消某个权限;
- =:赋予给定权限并取消其他所有权限。
mode
参数如下:
- r 可读;
- w 可写;
- x 可执行。
案例演示一:
将目录testDir的所有者权限设置为可读可写可执行,可以使用如下命令:chmod u=rwx testDir
案例演示二:
将目录testDir
的所有者权限添加可执行权限,同时递归的将该目录下的所有文件或目录都添加可执行权限,可以使用如下命令:chmod -R u+x testDir
chmod 修改同组用户权限
Linux修改同组用户权限的方法与修改所有者的权限大致一样,唯一不同的点是修改同组用户权限采用chmod g
而不是采用chmod u
。
案例演示一:
将目录testDir
的同组其他用户权限设置为可读可写可执行,可以使用如下命令:chmod g=rwx testDir
案例演示二:
将目录testDir
的同组其他用户权限添加可执行权限,同时递归的将该目录下的所有文件或目录都添加可执行权限,可以使用如下命令:chmod -R g+x testDir
chmod 修改其他用户权限
Linux修改其他组用户权限的方法与修改所有者的权限大致一样,唯一不同的点是修改其他组用户权限采用chmod o
而不是采用chmod u
。
案例演示一:
将目录testDir的其他组用户权限设置为可读可写可执行,可以使用如下命令:chmod o=rwx testDir
案例演示二:
将目录testDir
的其他组用户权限添加可执行权限,同时递归的将该目录下的所有文件或目录都添加可执行权限,可以使用如下命令:chmod -R o+x testDir
案例演示三:
- 将系统已存在目录oldDir1的所有者权限设置为可执行;
- 为系统已存在目录oldDir2的同组用户权限删除可写权限;
- 为系统已存在目录oldDir3的其他组用户权限添加可执行权限;
- 将系统已存在目录oldDir4的权限设置所有者权限为可读,同组用户权限为可写,其他用户权限为可执行;
- 将系统已存在目录oldDir5的权限设置所有者权限为可读,同组用户权限为可写,其他用户权限为可执行,同时将该目录下的所有子目录或文件权限一并处理。
chmod u=x oldDir1
chmod g-w oldDir2
chmod o+x oldDir3
chmod u=r,g=w,o=x oldDir4
chmod -R u=r,g=w,o=x oldDir5
没有什么事情有象热忱这般具有传染性,它能感动顽石,它是真诚的精髓。
Linux修改文件/目录所有者
相关知识
Linux系统中的每个文件/目录皆有其拥有(Owner)。我们知道只有用户登录到系统后才可以在系统上创建文件或目录,而文件/目录的所有者即是创建该文件/目录的用户。
当用ls -l
或ll
命令显示文件的详细信息时,第三列数据表示该文件的所有者。例如显示test文件所有者信息:
可以看到test
文件的所有者是fzm
,因为test
文件是由fzm
用户所创建。
chown 修改文件所有者命令
Linux中使用chown
命令来修改文件所有者。
具体命令如下:
chown 用户名/用户ID 文件名
执行权限:
chown
必须以root
权限才能执行,如果是普通用户想执行chown
时,需要在命令前加sudo
命令来提升权限为root
权限。
案例演示一:
首先创建一个新用户newUser
,然后将系统中已存在的文件testFile
的所有者设置为newUser
,可以使用如下命令:
sudo useradd newUser
sudo chown newUser testFile
案例演示二:
首先查看用户fzm
的ID是多少,然后将系统中已存在的文件testFile
的所有者设置为fzm
,可以使用如下命令:
id fzm
sudo chown 1000 testFile
chown 修改目录所有者命令
Linux中使用chown
命令来修改目录所有者。
具体命令如下::
chown 参数 用户名/用户ID 目录名
常见命令参数:
-R
或——recursive
:递归处理,将指定目录下的所有文件及子目录一并处理;--help
:在线帮助;
执行权限
chown
必须以root
权限才能执行,如果是普通用户想执行chown
时,需要在命令前加sudo
命令来提升权限为root
权限。
案例演示一:
将系统中已存在的目录testDir
的所有者设置为newUser
,可以使用如下命令:
sudo chown newUser testDir
可以使用ls -l
或ll
命令查看目录所有者是否修改成功。
案例演示二:
将系统中已存在的目录Dir
以及其所有子目录和子文件的所有者设置为newUser
,可以使用如下命令:
sudo chown -R newUser Dir
可以看到Dir
目录下的所有子目录和子文件的所有者都已经修改成了newUser
。
案例演示三:
- 将系统已存在文件
oldFile
的所有者设置为oldUser
; - 将系统已存在目录
oldDir1
的所有者设置为oldUser
; - 将系统已存在目录
oldDir2
以及其所有子目录和子文件的所有 者设置为oldUser
。
chown oldUser oldFile
chown oldUser oldDir1
chown -R oldUser oldDir2
一时的挫折往往可以通过不屈的搏击,变成学问及见识。
Linux文件/目录所属组修改
相关知识
Linux系统中的每个文件/目录皆有其所属组。默认在创建文件和目录的时候,将其所有者所在的所属组作为新创建文件或目录的所属组。
当用ls -l
或ll
命令显示文件的详细信息时,第四列数据表示该文件的所有者。例如显示test
文件所有者信息:
可以看到test
文件的所属组是fzm
,因为test
文件是由fzm
用户所创建,而fzm
用户创建test
文件的时候其所属组是fzm
。
Linux 修改文件所属组命令
Linux中使用chgrp
命令来修改文件所属组。
具体命令如下:
chgrp 用户组名/组ID 文件名
执行权限
chgrp
必须以root
权限才能执行,如果是普通用户想执行chgrp
时,需要在命令前加sudo
命令来提升权限为root
权限。
案例演示一:
首先创建一个新用户组newGroup
,然后将系统中已存在的文件testFile
的所属组设置为newGroup
,可以使用如下命令:
sudo groupadd newGroup
sudo chgrp newGroup testFile
案例演示二:
首先通过/etc/group
查看用户组fzm
的ID
是多少,然后将系统中已存在的文件testFile
的所属组设置为fzm
,可以使用如下命令:
cat /etc/group | grep fzm
sudo chgrp 1000 testFile
linux中也可以使用chown
命令来修改文件的所属组。
具体命令如下:
如果用户想使用chown
命令同时修改所有者和所属组信息,则可以使用如下:
chown 用户名/用户名ID:用户组名/组ID 文件名
执行权限
chgrp
必须以root
权限才能执行,如果是普通用户想执行chgrp
时,需要在命令前加sudo
命令来提升权限为root
权限。
案例演示一:
使用chown
命令将系统已存在的文件testFile
的所属组设置newGroup
,可以使用如下命令:
sudo chown :newGroup testFile
案例演示二:
使用chown
命令将系统已存在的文件testFile
的所有者设置为newUser
所属组设置为fzm
,可以使用如下命令:
Linux 修改目录所属组命令
Linux中使用chgrp
命令来修改目录所属组。
具体命令如下:
chgrp 参数 用户组名/组ID 目录名
常见命令参数:
-R
或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;--help
:在线帮助;
执行权限
chgrp
必须以root
权限才能执行,如果是普通用户想执行chgrp时,需要在命令前加sudo
命令来提升权限为root
权限。
案例演示一:
将系统中已存在的目录testDir
的所属组设置为newGroup
,可以使用如下命令:
sudo chgrp newGroup testDir
案例演示二:
将系统中已存在的目录Dir
以及其所有子目录和子文件的所属组设置为newGroup
,可以使用如下命令:
sudo chgrp -R newGroup Dir
linux中也可以使用chown
命令来修改目录的所属组,其使用方法与修改文件的使用方法一致。
案例演示一:
使用chown
命令将系统已存在的文件Dir
以及其所有子目录和子文件的所有者设置为fzm
所属组设置为fzm
,可以使用如下命令:
sudo chown -R fzm:fzm Dir
编程要求
- 将系统已存在文件
oldFile
的所属组设置为oldGroup
; - 将系统已存在目录
oldDir1
的所属组设置为oldGroup
; - 将系统已存在目录
oldDir2
以及其所有子目录和子文件的所属组设置为oldGroup
。
chgrp oldGroup oldFile
chgrp oldGroup oldDir1
chgrp -R oldGroup oldDir2
每个人的一生都有许多梦想,但如果其中一个不断搅扰着你,剩下的就仅仅是行动了。
以上是关于Linux文件权限,chmod的主要内容,如果未能解决你的问题,请参考以下文章
Linux权限详解(chmod、600、644、666、700、711、755、777、4755、6755、7755)