添加权限

假设您创建一个 “Hello world” 的 shell 脚本。当您第一次创建脚本时,它通常是不可执行的。使用 chmod 命令和 +x 选项添加执行权限,如清单 5 所示。

清单 5. 创建可执行的 shell 脚本
[ian@echidna ~]$ echo 'echo "Hello world!"'>hello.sh
[ian@echidna ~]$ ls -l hello.sh
-rw-rw-r--. 1 ian ian 20 Nov 30 13:05 hello.sh
[ian@echidna ~]$ ./hello.sh
bash: ./hello.sh: Permission denied
[ian@echidna ~]$ chmod +x hello.sh
[ian@echidna ~]$ ./hello.sh
Hello world!
[ian@echidna ~]$ ls -l hello.sh
-rwxrwxr-x. 1 ian ian 20 Nov 30 13:05 hello.sh

您可以按类似的方法使用 +r 来设置读权限,使用 +w 设置写权限。事实上,您可以联合使用 rwx。例如,使用 chmod +rwx 将会设置文件的所有读、写和执行权限。chmod 会添加尚未设置的权限。

可选性

您在上面的例子中可能已经注意到,执行权限被设置给所有者、组 和 其他。为了更具可选性,您可以给模式描述加前缀 u 来设置用户权限,g来设置组权限,还有 o 为其他人设置。需要指出的是 a 设置所有用户的权限,这就相当于忽略它。清单 6 显示了如何添加用户和组写和执行权限到 shell 脚本的其他副本。

清单 6. 有选择性地添加权限
[ian@echidna ~]$ echo 'echo "Hello world!"'>hello2.sh
[ian@echidna ~]$ chmod ug+xw hello2.sh
[ian@echidna ~]$ ls -l hello2.sh
-rwxrwxr--. 1 ian ian 20 Nov 30 13:08 hello2.sh
删除权限

有时您需要删除权限,而不单单是添加。简单地将 + 改变为 -,就能删除任何已设置的指定权限。清单 7 显示了如何删除两个 shell 脚本上的其他用户的所有权限。

清单 7. 删除权限
[ian@echidna ~]$ ls -l hello*.sh
-rwxrwxr--. 1 ian ian 20 Nov 30 13:08 hello2.sh
-rwxrwxr-x. 1 ian ian 20 Nov 30 13:05 hello.sh
[ian@echidna ~]$ chmod o-xrw hello*.sh
[ian@echidna ~]$ ls -l hello*.sh
-rwxrwx---. 1 ian ian 20 Nov 30 13:08 hello2.sh
-rwxrwx---. 1 ian ian 20 Nov 30 13:05 hello.sh

请注意,您可以一次改变一个或者多个文件的权限。正如在 topic 103 的文章中看到其他命令一样,您甚至可以使用 -R(或者 --recursive)选项在目录和文件上进行递归操作。

设置权限

现在已经可以添加或者删除权限了,您可能会想,怎样才能只设置一些特殊权限。使用 = 替换 + 或者 - 来完成这个动作。要在上述脚本中设置权限,这样其他用户就没有访问权利,您可以使用 chmod o= hello* 替换我们用于删除权限的命令。

如果您想对用户、组合或其他设置不同的权限,您可以通过逗号分隔不同的表达;例如,ug=rwx,o=rx,或者您可以使用稍后提到的数字权限。

最新文章

  1. CSharpGL(36)通用的非托管数组排序方法
  2. / fluxChatDemo / 系列 ——项目安装坑洼简要
  3. IIS内存溢出-设置IIS的应用程序池
  4. 在Android开发中如何判读当前设备是否连接网络
  5. fir.im Weekly - iOS/Android 应用程序架构解析
  6. PHP实现RESTful风格的API实例(三)
  7. socket.io,理解socket.io
  8. [转]MYSQL远程登录权限设置
  9. 最新iOS 6 in Xcode4.5新特性——Storyboard和属性自动绑定
  10. 将CSS CLIP属性应用在:扩展覆盖效果
  11. iOS8及以后 地图定位当前城市
  12. Sequence one(hdu2610dfs+去重)
  13. MySql 数据库定时备份
  14. JTextAreaDemo
  15. web前端利用HSTS(新的Web安全协议HTTP Strict Transport Security)漏洞的超级Cookie(HSTS Super Cookie)
  16. Android开发系列之adb常用命令
  17. 玩转 SSH(六):SpringMVC + MyBatis 架构搭建(注解版)
  18. sphinx随笔记了一下
  19. iOS音频播放、录音、视频播放、拍照、视频录制
  20. python lxml库生成xml文件-节点命名空间问题

热门文章

  1. SQL 索引自动维护计划脚本
  2. ActiveX控件获取不到对象属性或者方法的原因分析
  3. 子例程 subroutine
  4. 第3节 mapreduce高级:7、自定义outputformat实现输出到不同的文件夹下面
  5. 第2节 mapreduce深入学习:9、手机上行流量排序
  6. 笔试算法题(41):线索二叉树(Threaded Binary Tree)
  7. [JOYOI] 1055 沙子合并
  8. Python使用Flask框架,结合Highchart,自定义基本上算是最全的导出菜单了
  9. 201621123079《Java程序设计》第1周学习总结
  10. ruby cloud9部署到heroku