我想使用Bash脚本创建一个目录,并同时将其模式设置为00755
mkdir -p -m=00755 "/dir/dir2"
这是它们一起使用的正确方式吗?我创建它们的同时是否还可以添加chown命令到同一行?
它大概是这样的:
install -d -m 0755 -o someuser -g somegroup /dir/dir2
如果您想在创建过程中设置所有者,可以简单地冒充这个用户,例如使用sudo
:
sudo -uTHE_USER mkdir -p -m=00755 "/dir/dir2"
这样做的好处是在创建和更改所有权之间没有时间差,否则如果被利用可能会对系统造成危害。
THE_USER
没有写入权限的目录下创建一个归THE_USER
所有的目录,则这种方法行不通。 - Keith Thompson是的,那应该可以工作。至于 chown,只需遵循命令 ' && chown... '。&& 类似于 ;,但下一个命令仅在前一个命令成功退出(0)时才执行。
install
的实现才能确定是否存在相同的问题。 - Charles Duffy
install -d ... /dir /dir/dir2
。 - Ignacio Vazquez-Abramsinstall -d -m 0755 -o 1000 -g 1000 /
创建/dir目录时出现了以下错误:install: cannot change owner and permissions of ‘/dir’: No such file or directory
。我原以为在同一条命令中可以创建一个目录并更改其所有者,但似乎不是这样? - Sean McCarthymkdir
后面再跟着chown
。 - Joesudo
。由于所有者正在更改,该命令需要它。 - mbomb007