shell脚本--权限分配

Posted 寻觅beyond

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本--权限分配相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

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

另外一种形式:

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

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

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

以上是关于shell脚本--权限分配的主要内容,如果未能解决你的问题,请参考以下文章

shell文件权限和脚本执行

jdk 自动化脚本

shell 脚本 片段

用于确保在任何给定时间仅运行一个 shell 脚本的 shell 片段 [重复]

shell脚本

常用python日期日志获取内容循环的代码片段