chmod
原单词change mode(改变模式) chmod是一个修改文件权限的命令,有两种设置方法,一种是数字,一种是符号。
语法
通过数字设置权限
chmod 三个身份的权限分数 文件名/目录名
例子: chmod 755 a.file chmod 644 a.file
通过符号设置权限
chmod 身份+/-/=权限 文件名/目录名
例子: chmod a+x a.file chmod o+rwx a.file
-R 参数
如果修改的是一个目录,并且希望所有文件与子目录进行相同的权限变更,可以加上 -R参数
例子: chmod -R 755 adir chmod -R o+rwx adir
实战1
进入root目录 新建chmodTest文件夹 进入chmodTest目录 使用vim编辑a.sh文件(当a.sh文件不存在时,vim会帮我们创建一个): vim a.sh 输入 echo 你好,世界 (a.sh就是一个简单的shell脚本,可以直接在Linux系统中执行,执行效果就是打印 你好,世界)
新建adir目录,将a.sh复制到 adir
使用 ll 查看文件的权限
可以看到a.sh的属主权限是 读写,属组和其他用户权限都是只读权限
为a.sh文件所有用户添加执行权限
chmod a+x a.sh 查看文件权限,可以看到加了执行权限后,文件变成 绿色(可执行) 使用./a.sh 执行脚本后,打印出了: 你好,世界
其他参数介绍:
u:表示用户,即文件或目录的所有者。
g:表示同组用户,即与文件属主有相同组ID的所有用户。
o:表示其它用户。
a:表示所有用户,它是系统默认值。
-c : 若该档案权限确实已经更改,才显示其更改动作
-f : 若该档案权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
--help : 显示辅助说明
--version : 显示版本
为adir目录及所有子目录和文件 添加777权限,即所有身份的用户都拥有读写执行权限
chmod -R 777 adir
可以看到 adir目录 和 adir目录下 a.sh权限都变成了rwxrwxrwx
将adir目录下 a.sh文件,去掉组用户的写权限,去掉其他用户的写权限
chmod -R g-w,o-w adir/a.sh
实战2
在/root/chmodTest目录下使用vim新建b.sh文件,输入:echo hello world! ,保存并退出
使用cat 查看b.sh文件
使用ll 查看文件权限
给b.sh文件所有用户加上写权限,使用ll查看
给b.sh文件其他用户去掉写权限,使用ll查看
给b.sh文件权限改成755,使用ll查看
给b.sh文件权限改成000,使用ll查看
给b.sh文件 属主用户设定rwx权限,属组用户设定rw权限,其他用户设定r权限
执行 b.sh脚本