脚本名:power.sh
脚本内容:
- #!/bin/sh
- username3=$1
- dir_name2=$2
- # get existing directory
- file_path=$dir_name2
- while true
- do
- if [ -d $file_path ];then
- break;
- fi
- file_path=${file_path%/*}
- done
- dir_name2=$file_path
- # Judge whether the user exists
- grep "^$username3:" /etc/passwd >/dev/null
- if [ $? -ne 0 ];then
- echo "This user \"$username3\" does not exist."
- exit 4
- fi
- #echo "username : $username3"
- group4=` grep "^$username3:" /etc/passwd |awk -F : {'print $4'}|xargs -i grep {} /etc/group|cut -d":" -f1`
- #echo "group : $group4"
- su -l $username3 -c "test -r $dir_name2"
- is_read=$?
- su -l $username3 -c "test -x $dir_name2"
- is_exe=$?
- su -l $username3 -c "test -w $dir_name2"
- is_write=$?
- $is_read_str
- $is_exe_str
- $is_write_str
- if [ $is_read -eq 0 ];then
- is_read_str="r"
- else
- is_read_str="-"
- fi
- if [ $is_exe -eq 0 ];then
- is_exe_str="x"
- else
- is_exe_str="-"
- fi
- if [ $is_write -eq 0 ];then
- is_write_str="w"
- else
- is_write_str="-"
- fi
- echo "${is_read_str}${is_write_str}${is_exe_str}"
-------------------------------------------
注意:必须以root 身份执行该脚本。
脚本power.sh 需要两个参数,第一个表示指定的用户,第二个表示指定的目录
测试:
[root@ppc40 study]# sh power.sh whuanga4 /tmp/abc/dd
This user "whuanga4" does not exist.
[root@ppc40 study]# sh power.sh whuang4 /tmp/abc/dd
rw-
(说明:表示用户
whuang4 对目录
/tmp/abc/dd 具有读和写权限,没有执行权限)。