自己每次上传到东西到服务器,用户基本都是root。需要重复的去修改文件的属组和属主及权限,很是麻烦。一直chownchmod。也就因为是一个反复重复的命令,写了一个shell脚本。节省时间成本,将更多的时间用在充实的路上。

话不多说:献上我的shell脚本

#!/bin/bash
echo  '$1=用户名 $2=文件 $3=权限'
chmod -R $3 $2
chown -R $1:$1 $2


好吧,我承认有点简陋,但是你不能质疑他的能力,代码虽少,功能不差^_^

优化版的添加了一些case语句和if判断,可以选择,也可以自定义的去指定,总有一款适合你。

#!/bin/bash
#This file is used to modify user groups and permissions
source /etc/profile
cat <<l
这是一个修改文件权限和用户组的脚本
+++++++++++++++++++++++++++++++++++
1:777(权限)
2:755
3:700
4:自定义
++++++++++++++++++++++++++++++++++++
l
read -p "输入你选择权限的序号:" number

case $number in 
1)
   Jurisdiction=777
;;
2)
   Jurisdiction=755
;; 
3)
   Jurisdiction=700
;;
4)
   read -p '请输入你自定义的权限:' JUR
   Jurisdiction=$JUR
;;
*)
exit 
;;
esac
cat <<l
+++++++++++++++++++++++++++++++++++
文件归属者
1:www (nginx)
2:root
3:自定义
++++++++++++++++++++++++++++++++++++
l
read -p "输入你选择用户的序号:": number2
case $number2 in
1)
   user=www
;;
2)
   user=root
;;
3)
   read -p '请输入你自定义的用户:' USER
   user=$USER
;;
*)
exit 
;;
esac

read -p '请输入你要修改的文件:' file
if  [ -d "$file" ]; 
  then chown $user:$user $file -R && chmod $Jurisdiction $file -R
elif [ -f "$file" ];
  then chown $user:$user $file -R && chmod $Jurisdiction $file -R
else
  exit
fi

注意:此脚本最好是进行dos2unix进行转化,谨防报错。

例如:$ dos2unix afile.txt
dos2unix: converting file afile.txt to Unix format ...

发表评论

电子邮件地址不会被公开。 必填项已用*标注