码迷,mamicode.com
首页 > 系统相关 > 详细

shell脚本--权限分配

时间:2018-01-14 13:01:28      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:blog   shell脚本   讲解   pos   需要   hello   ash   执行   over   

因为shell脚本内部是很多命令的集合,这些命令也许会涉及到操作某一个文件,而且shell脚本的运行,也是需要当前用户对脚本具有运行的权限,否则,会因为权限不够而失败。

Linux中涉及权限的命令有:chmod、acl、sudo,下面一一讲解他们各自的用法。

chmod:用于分配权限,使用的频率很高。

分配权限时,常用的有两种形式,一种是直接使用八进制的三个数字指定文件的所有权限(Owner,group,other),一种是使用某类用户的简写,追加一个+/-,然后加上要分配或者收回的权限。

root@ubuntu:/# echo ‘echo "hello world"‘ > test.sh
root@ubuntu:/# ls -l test.sh
-rw-r--r-- 1 root root 19 1月  14 11:10 test.sh
root@ubuntu:/# ./test.sh
bash: ./test.sh: Permission denied
root@ubuntu:/# chmod 744 test.sh
root@ubuntu:/# ./test.sh
hello world
root@ubuntu:/# su ubuntu
ubuntu@ubuntu:/$ ls -l test.sh
-rwxr--r-- 1 root root 19 1月  14 11:10 test.sh
ubuntu@ubuntu:/$ echo "cover it" > test.sh
bash: test.sh: Permission denied
ubuntu@ubuntu:/$ chmod 746 test.sh
chmod: changing permissions of ‘test.sh‘: Operation not permitted
ubuntu@ubuntu:/$ su 
Password: 
root@ubuntu:/# chmod 746 test.sh
root@ubuntu:/# su ubuntu
ubuntu@ubuntu:/$ echo "cover it" > test.sh
ubuntu@ubuntu:/$ 

  注意,只有文件的拥有者才可以对文件的权限进行更改,即使其他用户对文件拥有rwx权限,也是不能更改文件权限的。

另外一种形式:

root@ubuntu:/# echo ‘echo "hello world"‘ > test.sh
root@ubuntu:/# ls -l test.sh
-rw-r--r-- 1 root root 19 1月  14 11:20 test.sh
root@ubuntu:/# chmod o+x test.sh #给other分配执行权限
root@ubuntu:/# su ubuntu
ubuntu@ubuntu:/$ ./test.sh
hello world
ubuntu@ubuntu:/$ 

  上面的一种形式,分配权限比较直观,因为给什么样的用户分配什么权限,一目了然,不需要计算。其中拥有者使用u,组用户使用g,其他用户使用o,a表示所有用户。

  对于权限分配,比较稳妥的方式是:给某个文件的group用户分配读写执行的权限,然后将某个other的用户添加到group中去。否则如果other分配权限是不能细分的,比如我只想对other中的6个用户分配写权限,那么就不能对other分配w权限了,因为一旦分配w,则所有的other就有了w权限。

shell脚本--权限分配

标签:blog   shell脚本   讲解   pos   需要   hello   ash   执行   over   

原文地址:https://www.cnblogs.com/-beyond/p/8282623.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!