我将一个文件放入 cron.hourly 中,该文件需要在第一次创建文件夹时将其授予用户访问权限,因此如果我想删除文件夹中的所有内容,则无需使用 sudo。并且它还使文件夹可用。-m 777
使用时,如果文件夹丢失则不起作用-p
#!/bin/sh
mkdir -m 777 -p 000Hourly/$(date +"%m-%d-%y_%T")
不起作用:为管理员提供 000Hourly
#!/bin/sh
mkdir -m 777 000Hourly && mkdir -m 777 -p 000Hourly/$(date +"%m-%d-%y_%T")
在下一个小时出现错误mkdir: cannot create directory '000Hourly': File exists
并停止执行其余部分。
这就是我想要做的,所以我需要 777,这样当文件夹太满时我就可以删除所有文件夹。
#!/bin/sh
profiledir=/home/kangarooo/.mozilla/firefox/a2t42sie.default/
cd $profiledir;
mkdir -m 777 000Hourly ; mkdir -m 777 -p 000Hourly/$(date +"%m-%d-%y_%T") && cp -p sessionstore.js sessionstore.bak 000Hourly/$(date +"%m-%d-%y_%T")
exit 0
答案1
这是一个更好的方法:
#!/bin/bash
dirname=000Hourly/$(date +"%m-%d-%y_%T") # Save the directory name for later access
user=bob # Set to the username of the user who should have access.
group=bob # Set to a group that should have access to the directory
mkdir -p "$dirname"
chown "$user:$group" "$dirname"
如果只有一个用户需要访问权限,那么就完成了。
如果多个用户需要访问权限,请为每个需要访问权限的用户创建一个组:
sudo groupadd mygroup
阅读man groupadd
更多详细信息,并更改mygroup
为您想要的任何名称(但它应该以小写字母或下划线开头,并且不包含任何空格。
然后,将所有必要的用户添加到您的新组,其中user1
、user2
和user3
以及要添加的用户名。您可以根据需要添加任意数量。:
for i in user1 user2 user3; do sudo usermod -aG mygroup "$i"; done
新的组成员身份将在用户注销(或机器重新启动)后生效。
现在,修改上面的脚本。设置$group
为您的新组,并添加以下行:
chmod 775 "$dirname"
答案2
[ -d 000Hourly ] || mkdir -m 777 000Hourly
mkdir -m 777 000Hourly/$(date +"%m-%d-%y_%T")