lzth.net
当前位置:首页 >> 编写一个shEll脚本,判断一个文件是否具有可读,可写,可执行的权限 >>

编写一个shEll脚本,判断一个文件是否具有可读,可写,可执行的权限

无法读取脚本中的命令 shell就应该没办法解释运行命令吧.可执行脚本也只是调用第一行标识的shell解释器去运行 脚本中的命令.所以推断没有可读权限应该是无法执行shell这种解释型脚本的.suid只是对二进制的文件有效的,并且借用了文件拥有者的可执行权限.个人观点仅供参考.

就是给shell脚本赋权限chmod a+x shell.sh也可以用数字的形式.chmod 777 shell.sh

#!/bin/sh myPath="/var/log/httpd/" myFile="/var /log/httpd/access.log" #这里的-x 参数判断$myPath是否存在并且是否具有可执行权限 if [ ! -x "$myPath"]; then mkdir "$myPath" fi #这里的-d 参数判断$myPath是否存在 if [ ! -d "$myPath"];

把下面内容存入文件中,比如 a.sh, 然后 chmod +x a.sh,然后用 ./a.sh file1 /path/to/file2 . 的方法执行,如果 file1 存在,则会打印Existing file file1, 不存在的文件则不打印.#!/bin/bashwhile [ $# -gt 0 ]do test -f $1 && echo "Existing file $1" shiftdone

你在这个脚本的属性=安全里.设置你要赋予那个用户的执行权限就可以了.

#!/bin/bash read -p "请输入目的内容:" varchar grep "$varchar" filename && sed -i "/$varchar/d" filename || echo $varchar >>filename exit 详细解释:第1行:申明/解释脚本用的是bash 第2行:用read读取你输入的内容,然后复制给

#!/bin/bash(( $# > 0 )) || exit [[ ! $1 =~ ^[/]*root$ ]] && echo "第一个位置参数不是/root目录" && exit ls -a /$1 > 13out shift while (( $# > 0 )) do [ -f $1 ] && echo "File "$1":" >> 13out && cat $1 >> 13out && shift && continue [ -d $1 ] && echo "this dir" && shift && continue echo "该文件($1)既不是普通文件也不是目录文件" shift done

#!/bin/bash grep -q 关键字 文件名 if [ "$?" -eq "0"] then 执行命令 else 执行其他命令 fi

这个用户的账号直接运行一次就知道是不是有权限了如果要写脚本的话比较麻烦首先看命令的权限对哪些用户开放,再看用户是否在这些组里面

-e 文件存在-d 目录 -s 文件长度大于 0、非空-f 正规文件 -w 可写-L 符号连接 -u 文件有suid位设置-r 可读 -x 可执行-b 这是一个块设备(软盘,光驱等)-c 这是一个字符设备-p 这个文件是一个管道-h 这是一个符号链接-S 这是一个socket

网站首页 | 网站地图
All rights reserved Powered by www.lzth.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com