コマンドラインで設定された権限でファイルを生成できますか?

コマンドラインで設定された権限でファイルを生成できますか?

ディレクトリを作成するときは、mkdir -m <mode> <dir>指定されたモード/権限セットを使用して1つ以上のディレクトリを(原子的に)作成することをお勧めします。

コマンドラインからファイルを生成するのと同等の方法はありますか?

似ている:

open("file", O_WRONLY | O_APPEND | O_CREAT, 0777);

touchここでヒールを使用することはchmod唯一のオプションですか?


編集する:teppicの提案を試した後、それを実行installしてstrace原子にどれだけ近いかを確認しました。答えは実際にはそうではありません。

$ strace install -m 777 /dev/null newfile
...
open("newfile", O_WRONLY|O_CREAT|O_EXCL, 0666) = 4
fstat(4, {st_mode=S_IFREG|0666, st_size=0, ...}) = 0
...
fchmod(4, 0600)                         = 0
close(4)                                = 0
...
chmod("newfile", 0777)                  = 0
...

しかし、これは単にシェルコマンドであり、以前は知らなかったコマンドです。

ベストアンサー1

install次のダミーファイルでコマンドを使用できます。

install -b -m 755 /dev/null newfile

オプションがすでに存在する場合、-bバックアップが作成されます。newfileこのコマンドを使用して所有者を設定することもできます。

Linux では通常 GNU の一部です。コアツールまたは忙しい箱しかし、4.2BSD派生システムでも使用できます。FreeBSDネットワークBSDまたはオープンBSD

おすすめ記事