Linux是著名的类UNIX操作系统。在Linux中有许多对Linux系统进行管理的命令,chmod 便是其中一个重要的命令,它可以对文件或目录的权限进行修改。他有符号模式和八进制模式两种主要的使用方法。
用户类型:
u表示
group:文件所有者所在组,用g表示
others:其他用户,用o表示
all:所有用户,用a表示
模式:
r: 读,为可读
w:写,为可写
x:可执行,为可执行
-:对于没有的权限用-占位
类型:
目录:用d表示
文件:用-表示
对于一个文件的权限表示为一个长度为10的字符串,第一位是类型,是目录即为‘d’,否则为‘-’,二三四位为文件所有者的读,写,执行权限;五六七位为同组成员的读,写,执行权限;八九十位为其他用户的读,写,执行权限。
假设一个文件名字为a.cpp并且文件所有者可读写执行,同组可读,其他人可执行,那么他的表示为:
-rwxr----x a.cpp
如果a是个目录,那么他表示为:
drwxr----x a
chmod的命令如下所示:
chmod [三位八进制数代号] [文件名或目录名...]
对于一个文件的权限可以用三位八进制数表示。首先用九位二进制,从左到右每三位为一组,每组分别为: 文件所有者的读,写,执行权限;同组用户的读,写,执行权限;其他用户的读,写,执行权限;如果有这个权限该位为1,没有该权限该位为0。最后将每组的三位二进制写成一个0~7的八进制数。具体如下表格:
# | 权限 | rwx | 二进制 |
---|---|---|---|
7 | 读 + 写 + 执行 | rwx | 111 |
6 | 读 + 写 | rw- | 110 |
5 | 读 + 执行 | r-x | 101 |
4 | 只读 | r-- | 100 |
3 | 写 + 执行 | -wx | 011 |
2 | 只写 | -w- | 010 |
1 | 只执行 | --x | 001 |
0 | 无 | --- | 000 |
所以如果要把a.cpp的权限设为文件所有者可读写执行,同组用户可读写,其他用户可读可执行,则命令为:
chmod 765 a.cpp
解释:
文件所有者的权限用数字表达: rwx ,也就是 111 ,应该是 7。
同组用户的权限用数字表达: rw- ,也就是 110 ,应该是 6。
其它用户的权限数字表达:r-x ,也就是 101 ,应该是 5。
本题将给出T个chmod命令,输出T条对应文件的权限。
第一行一个整数 T,表示共有T条命令。
接下来有 T 行,每行一条指令。格式如下:
chmod<空格>三位八进制数<空格>文件名或目录名
注意!!! :如果该文件名中有''."存在那么这是一个文件;如果文件名中不存在''.",则这是一个目录。
(保证文件名或目录名中只有26个小写英文字母且长度不超过20)
对于每一条输入的chmod指令,输出对应的文件权限,格式如下:
长度为10的权限字符串<空格>文件名或目录名
2
chmod 777 a.cpp
chmod 653 b
-rwxrwxrwx a.cpp
drw-r-x-wx b
难度等级: | 0 |
总通过次数: | 65 |
总提交次数: | 154 |