`

linux 判断指定用户对指定目录具有的权限

阅读更多

脚本名: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 具有读和写权限,没有执行权限)。
0
1
分享到:
评论

相关推荐

    linux如何判断指定用户对指定目录具有的权限具体介绍.docx

    在Linux系统中,判断一个指定用户对特定目录的权限是管理任务中的常见需求。通过Linux命令行工具,我们可以实现这一功能。上述文档介绍了一个名为`power.sh`的shell脚本,用于检查用户对目录的读、写、执行权限。...

    php 基于Linux权限登录

    2. 对用户输入进行过滤和验证,确保数据安全。 3. 定期更新PHP和相关库,修补安全漏洞。 4. 使用HTTPS加密通信,保护用户数据传输过程的安全。 5. 不在代码中硬编码敏感信息,如数据库连接字符串,而是从环境变量或...

    Linux复习题-判断题

    Linux复习题-判断题 本资源为Linux操作系统考试必看教师出题的题库高分的保障,涵盖了Linux系统的多个方面,包括系统组成、文件系统、应用程序、系统管理、网络管理等知识点。 一、系统组成 * Linux系统一般由4个...

    Linux+shell编程课程设计——Linux用户管理的shell程序设计

    4. **权限和权限控制**:在Linux中,每个文件和目录都有所有者、组和其他用户的权限。使用`chmod`命令可以改变文件的权限,这对于管理用户访问权限至关重要。在用户管理脚本中,我们需要确保新创建的用户账户具有...

    linux shell 中判断文件、目录是否存在的方法

    在Linux Shell脚本编程中,常常需要检查文件或目录是否存在,以便进行相应的操作。本文将详细介绍如何在Shell中进行这些判断。 1. `-e 文件名`: 这个条件测试用于检查指定的文件名是否存在,无论它是文件、目录...

    Linux 文件基本属性.doc

    这些属性定义了不同用户或用户组对文件和目录的访问权限,确保了多用户环境中的数据安全。下面我们将深入探讨这些属性及其管理工具。 首先,Linux中的文件权限分为三类用户:文件所有者(owner)、同组用户(group...

    Linux复习题-选择题

    18. 在 Linux 操作系统中,执行命令“chmod o+rw myfile”后,myfile 文件的权限变化为其他用户可读写 myfile 文件。 19. 在 Linux 操作系统中,可以使用 mkdir 命令新建一个新目录。 本文档涵盖了 Linux 操作系统...

    linux c++ 守护线程,判断程序是否运行,不存在就启动

    在Linux中,可以使用`system()`函数或者`popen()`来执行命令行操作,例如`pgrep`命令来查找指定的进程。 ```cpp #include #include #include bool isProgramRunning(const std::string& programName) { std::...

    Linux在16个节点中创建账户

    值得注意的是,该脚本只适用于拥有超级用户权限的用户运行,并且如果指定的用户名已经存在于系统中,则不会重复创建。 ### 二、关键函数解析 #### 1. `isUserExist()` — 检查用户是否存在 此函数用于检查指定的...

    在Linux系统中批量建立用户的shell

    `chmod`则用来设置用户目录的权限,通常设置为755,以保证用户对其个人目录有读写执行权限,而其他人只有读取和执行权限。 在创建用户后,脚本会将用户名和对应的密码(这里假设为用户名本身)写入临时文件`user_...

    LINUX 常见命令

    超级用户具有所有权限,系统用户是Linux系统正常工作所需的内建用户,而普通用户则是普通用户使用,只能进行有限操作。使用su命令时,如果未指定用户名,默认切换到超级用户。切换用户后,可以使用exit或logout命令...

    Linux读取Excel文件批量创建用户并分组

    - **执行脚本**:确保脚本具有可执行权限,并运行脚本。 - **检查结果**:使用`cat /etc/passwd`检查用户是否成功创建,并确认用户是否被正确地添加到了指定的用户组中。 - **清理测试环境**:测试完成后,可以考虑...

    用户权限管理系统需求分析报告.doc

    系统管理员具有系统最高级别的权限,普通用户由系统管理员分配权限,角色是一组用户的集合,具有指定的权限完成特定的资源访问与操作行为,组织是与企业的部门或者机构对应,用于实现对用户的分组归类管理,资源是...

    Android查找指定目录下的视频或图片

    在Android开发中,有时我们需要实现一个功能,即在用户的设备上搜索特定目录下的视频或图片文件。这个功能在很多应用场景中都非常有用,比如媒体管理器、相册应用或者需要访问用户本地媒体数据的应用。以下是一些...

    Linux用if判断目录是否存在实例方法

    同时,理解Linux的用户和权限模型(如用户、用户组、rwx权限位)也是进行有效文件和目录管理的基础。 总之,通过`if`语句结合条件测试,我们可以高效地在Linux环境中判断目录是否存在,并根据其状态执行相应的操作...

    linux中mkdir命令使用详解

    linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。 1.命令格式: mkdir [选项] 目录… 2.命令功能: 通过 mkdir 命令可以实现...

    Linux_shell脚本大全文档

    setuid允许普通用户执行一个文件时获得文件所有者的权限,setgid使组内所有用户在执行文件时获得组权限,而粘滞位通常用于目录,防止非目录所有者删除或重命名目录中的文件。 `umask`命令用于设定默认的权限掩码,...

    LINUX使用简介

    Linux不是根据文件扩展名判断其是否可执行,而是基于文件权限。使用`chmod`命令可赋予文件执行权限,如`chmod a+x file1`。当从Linux系统拷贝文件到Windows,文件的权限信息会丢失。若要保留权限,应先打包文件(如...

    让一个普通的Linux用户转换成为管理员

    在Linux系统中,普通用户与管理员(也称为root用户)有着截然不同的权限。管理员拥有对系统的全面控制权,能够执行任何操作,包括系统配置、安装软件和管理其他用户等。而普通用户则受到一定限制,无法执行涉及系统...

Global site tag (gtag.js) - Google Analytics