菜鸟学Linux命令:Chmod命令和数字文件权限

chmod是一条在Unix系统中用于控制用户对文件的权限的命令(change mode单词前缀的组合)和函数。
只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式,符号模式指定文件的权限。

※命令格式

chmod [options] mode files

mode可以是数字形式或以who opcode permission形式表示。who是可选的,默认是a(所有用户)。只能选择一个opcode(操作码)。可指定多个mode,以逗号分开。

八进制语法
chmod命令可以使用八进制数来指定权限。

文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。

历史上,文件权限被放在一个比特掩码中,掩码中指定的比特位设为1,用来说明一个类具有相应的优先级。

chmod的八进制语法的数字说明:

r 4  w 2  x 1 - 0

所有者的权限用数字表达:属主的那三个权限位的数字加起来的总和。如rwx ,也就是4+2+1 ,应该是7。

用户组的权限用数字表达:属组的那个权限位数字的相加的总和。如rw- ,也就是4+2+0 ,应该是6。

其它用户的权限数字表达:其它用户权限位的数字相加的总和。如r-x ,也就是4+0+1 ,应该是5。

※参数选项

-c,--changes
只输出被改变文件的信息
-f,--silent,--quiet
当chmod不能改变文件模式时,不通知文件的用户
-R,--recursive
可递归遍历子目录,把修改应到目录下所有文件和子目录
--reference=filename
参照filename的权限来设置权限
-v,--verbose
无论修改是否成功,输出每个文件的信息
--version
输出版本信息。

 

who
u 用户
g 组
o 其它
a 所有用户(默认)

opcode
+ 增加权限
- 删除权限
= 重新分配权限

permission
r 读
w 写
x 执行
s 设置用户(或组)的ID号
t 设置粘着位(sticky bit),防止文件或目录被非属主删除
u 用户的当前权限
g 组的当前权限
o 其他用户的当前权限

 

※相关命令

chown命令,chown 修改文件和文件夹的用户和用户组属性,chmod 修改文件和文件夹读写执行属性。

su和sudo命令,使用 su 命令临时切换用户身份,sudo允许系统管理员让普通用户执行一些或者全部的root命令。

※场景范例

chmod u+x file     给file的属主增加执行权限

chmod 751 file     给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限$ chmod u=rwx,g=rx,o=x file 上例的另一种形式
chmod =r file     为所有用户分配读权限
chmod -R u+r directory   递归地给directory目录下所有文件和子目录的属主分配读的权限
chmod 4755   设置用ID,给属主分配读、写和执行权限,给组和其他用户分配读、执行的权限。

 

>>Linux 数字文件权限解析

Linux下,查看某路径下用(ls -l)查看所有文件的详细属性列表时,会看到文件的操作权限,类似“drwxr-xr-x”的字符串。

这串字符可以分成4段理解,结构为“d + 文件所有者操作权限 + 文件所有者所在组操作权限 + 其余人的操作权限”:

1,第一段:例子中字母“d”,表示文件所在目录

2,第二段:例子中字符串“rwx”,表示文件所有者对此文件的操作权限

3,第三段,例子中字符串“r-x”,表示文件所有者所在组对些文件的操作权限

4,第四段,例子中字符串“r-x”,表示除2、3两种外的任何人对此文件的操作权限

通常用三个数字来表示文件的读取、写入、执行权限:

执行:1

写入:2

读取:4

随便写个数字:755,这个3位数分别对应前面所说的分段:7对应第二段,5对应第三段,5对应第四段。

如果可读,权限是二进制的100,十进制是4;
如果可写,权限是二进制的010,十进制是2;
如果可运行,权限是二进制的001,十进制是1;

含义:

7:表示文件所有者的权限,4+2+1=7,即文件所有者对该文件有生杀大权,读、写、执行随便。

5:表示文件所有者所在组的权限:4+1=5,即文件所有者所在组对文件有读、执行权限,没有写权限。

5:同上,其余人对该文件只有读、执行权限,没有写权限。

 

时间: 2024-12-22 02:53:04

菜鸟学Linux命令:Chmod命令和数字文件权限的相关文章

菜鸟学Linux命令:ps命令 进程查看

ps命令是Linux中基础的进程查看命令,是process status的缩写,用来显示瞬间进程(process)的状态. ps命令列出的是当前那些进程的快照,会输出当前时刻活动的进程,但是并不能动态显示. ※命令格式ps [选项] ※参数规则 a 显示所有进程-a 显示同一终端下的所有程序-A 显示所有进程c 显示进程的真实名称-N 反向选择-e 等于"-A"e 显示环境变量f 显示程序间的关系,完整输出-H 显示树状结构l 较长.较详细的将该 PID 的信息列出j 工作的格式 (j

菜鸟学Linux命令:cat命令 查看文件内容

cat命令的用途是连接文件或标准输入并打印. 这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用. Linux下查看文件内容的方式很多:vi 文件名 #编辑方式查看,可修改cat 文件名 #显示全部文件内容more 文件名 #分页显示文件内容tail 文件名 #仅查看尾部,还可以指定行数head 文件名 #仅查看头部,还可以指定行数sed '1,$'p 文件名 #可以指定起始行和结束行的 cat的主要功能: 1.一次显示整个文件:cat

菜鸟学Linux命令:find命令 查找文件

find命令是Linux下最常用的命令之一,灵活的使用find命令,你会发现查找文件变得十分简单. 命令格式 find [指定查找目录]  [查找规则(选项)]  [查找完后执行的动作] 参数规则 -name 按照文件名查找文件 -iname 根据文件名查找,但是不区分大小写 -perm 按照文件权限来查找文件 -prune 使用这一选项可以使find命令不在当前指定的目录中查找 -user 根据属主来查找文件 -group 根据属组来查找文件 -uid 根据uid来查找文件 -gid 根据gi

菜鸟学Linux命令:lsof命令 查找指定用户、进程、端口打开的文件

lsof,list open files, 是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件. 命令格式:lsof [参数][文件] 命令功能:  用于查看进程打开的文件,打开文件的进程,进程打开的端口(TCP.UDP). lsof 需要访问核心内存和各种文件,所以通常需要root用户执行. 命令参数:-a 列出打开文件存在的进程-c<进程名> 列出指定进程所打开的文件-g 列出GID号进程详情-d<

菜鸟学Linux命令:ssh命令 远程登录

1.查看SSH客户端版本 有的时候需要确认一下SSH客户端及其相应的版本号.使用ssh -V命令可以得到版本号.需要注意的是,Linux一般自带的是OpenSSH: 下面的例子即表明该系统正在使用OpenSSH: $ ssh -V  OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003 下面的例子表明该系统正在使用SSH2: $ ssh -V  ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i68

菜鸟学Linux命令:grep命令 文本搜索

linux grep命令 (global search regular expression(RE) and print out the line )是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.grep这个应用程序最早由肯·汤普逊写成.grep原先是ed下的一个应用程序,名称来自于g/re/p(globally search a regular expression and print,以正规表示法进行全域查找以及打印). grep是非常强大的命令,配合管道一起使

菜鸟学Linux命令:tail命令 查看日志

tail 命令用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理. tail命令常用来查看日志文件.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容. ※命令格式tail [OPTION] [FILE] ※参数规则 -c -bytes=N 显示的字节数 -f 循环读取 -q 不显示文件头详细信息 -v 显示详细的处理信息 -n <行数> 显示行数 --pid

菜鸟学Linux命令:bg fg jobs命令 任务管理

jobs命令 jobs命令用于查看当前终端后台运行的任务 注意和ps的区别: ps命令用于查看瞬间进程的动态 通过一个实例可以理解它们之间的区别,依次执行如下命令:vim & //后台执行vimbingyue@ubuntu:~$ vim &[1] 2493bingyue@ubuntu:~$ vim &[2] 2495[1]+ Stopped vim jobs //查看后台执行的任务bingyue@ubuntu:~$ jobs[1]- Stopped vim[2]+ Stopped

linux中chmod命令修改权限详细解释

chmod 经常用.但是基本局限于chmod 755 a1 这样的用法.或者777. 今天遇到一个问题想,让一个文件夹仅仅自己能看,别人都不能看.不知道是几了.特意学习一下这些数字背后的意义. 语法为:chmod abc file 其中a,b,c各为一个数字,分别表示User.Group.及Other的权限. r=4,w=2,x=1 若要rwx属性则4+2+1=7: 若要rw-属性则4+2=6: 若要r-x属性则4+1=5. 比如我现在希望这个文件夹a1 只有拥有者可以看,可以改,可以执行.其他