【linux】编写.sh文件使得文件夹下所有文件具备当前用户的所有权,及用户组,并赋文件权限

linux系统下的用户权限

用户

在Linux系统中,每个用户都有一个唯一的用户名和一个用户ID(UID),用于标识用户。用户可以拥有自己的文件和目录,并且可以对这些文件和目录进行读、写和执行等操作。同时,Linux系统中还有超级用户(也称为root用户),拥有系统的最高权限,可以对系统进行任意操作。

用户组

用户组是一组具有相同特权的用户的集合。每个用户都可以属于一个或多个用户组。用户组可以用于控制对文件和目录的访问权限,以及限制某些操作的执行权限。用户组也可以用于分配任务和管理用户。

文件所属权

每个文件和目录都有一个所有者和一个所有组。所有者是创建该文件或目录的用户,所有组是一个用户组,该用户组中的所有用户都可以访问该文件或目录。文件所属权可以通过 ls -l 命令来查看,其中第一个字段表示文件类型和权限信息,第三个字段表示所有者,第四个字段表示所有组。
在Linux系统中,可以使用 chown 命令来修改文件和目录的所有者和所有组,使用 chmod 命令来修改文件和目录的访问权限。同时,还可以使用 chgrp 命令来修改文件和目录的所有组。这些命令可以用于管理文件和目录的访问权限,保护文件和目录的安全性。

bash脚本

mybash.sh

#!/bin/bash
# 获取输入的文件夹路径和权限参数
DIR_PATH=$1
PERMISSION=$2
# 如果没有输入权限参数,则默认为644
if [ -z "$PERMISSION" ]; then
    PERMISSION="640"
fi
# 获取当前用户和用户所在组
CURRENT_USER=$(whoami)
CURRENT_GROUP=$(id -gn)
# 修改文件夹下所有文件的所属用户和组
chown -R "$CURRENT_USER:$CURRENT_GROUP" "$DIR_PATH"
# 修改文件夹下所有文件的权限
find "$DIR_PATH" -type f -exec chmod "$PERMISSION" {
    
    } \;
echo "修改完成!"

使用脚本修改文件夹下所有文件权限,所属用户:

将myfile文件夹下的所有文件赋予777权限,并将文件所属设定为当前用户和用户组:

bash mybash.sh ./myfile 777

猜你喜欢

转载自blog.csdn.net/hh1357102/article/details/131065649
今日推荐