博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux 判断指定用户对指定目录具有的权限
阅读量:5920 次
发布时间:2019-06-19

本文共 1276 字,大约阅读时间需要 4 分钟。

脚本名:power.sh

脚本内容:

Shell代码  
  1. #!/bin/sh  
  2. username3=$1  
  3. dir_name2=$2  
  4.   
  5. # get existing directory  
  6. file_path=$dir_name2  
  7. while true  
  8. do  
  9.         if [ -d $file_path ];then  
  10.                 break;  
  11.         fi  
  12.         file_path=${file_path%/*}  
  13. done  
  14. dir_name2=$file_path  
  15.   
  16. # Judge whether the user exists  
  17. grep "^$username3:" /etc/passwd >/dev/null  
  18. if [ $? -ne 0 ];then  
  19.     echo "This user \"$username3\" does not exist."  
  20.     exit 4  
  21. fi  
  22. #echo "username : $username3"  
  23. group4=` grep "^$username3:"  /etc/passwd |awk -F : {
    'print $4'}|xargs  -i  grep {}  /etc/group|cut -d":" -f1`  
  24. #echo "group : $group4"  
  25. su -l $username3 -c "test -r $dir_name2"  
  26. is_read=$?  
  27. su -l $username3 -c "test -x $dir_name2"  
  28. is_exe=$?  
  29. su -l $username3 -c "test -w $dir_name2"  
  30. is_write=$?  
  31. $is_read_str  
  32. $is_exe_str  
  33. $is_write_str  
  34. if [ $is_read -eq 0 ];then  
  35.     is_read_str="r"  
  36. else  
  37.     is_read_str="-"  
  38. fi  
  39.   
  40. if [ $is_exe -eq 0 ];then  
  41.         is_exe_str="x"  
  42. else  
  43.         is_exe_str="-"  
  44. fi  
  45.   
  46. if [ $is_write -eq 0 ];then  
  47.         is_write_str="w"  
  48. else  
  49.         is_write_str="-"  
  50. fi  
  51.   
  52.   
  53. 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 具有读和写权限,没有执行权限)。

转载地址:http://akdvx.baihongyu.com/

你可能感兴趣的文章
P2320 [HNOI2006]鬼谷子的钱袋
查看>>
数据库关键字
查看>>
默默放一个输入外挂模板
查看>>
BZOJ1299 巧克力棒
查看>>
windows蜜汁调音
查看>>
Linux初学---->WinSCP+Putty
查看>>
【我的Android进阶之旅】 Google Developers中国网站发布啦!
查看>>
centos7 简单搭建lnmp环境
查看>>
yum报错:Error: Multilib version problems found. This often means that the root
查看>>
2016京东笔试编程
查看>>
基于MDK的stm32实践过程中,debug的总结
查看>>
冒泡排序实例
查看>>
CRITICAL **: Couldn't acquire global lock, snapshots will not be consistent: Access denied
查看>>
查看堵塞的SQL
查看>>
Algs4-2.3.7计算快排子数组数量
查看>>
C#温故而知新学习系列之XML编程—XmlDocument类(一)
查看>>
HashMap和HashTable的区别是什么
查看>>
4.5 堆排序法
查看>>
html5 的a标签是可以拨电话的,通过其Href属性来实现
查看>>
并发编程------->操作系统的发展
查看>>