サーバーに接続されている外付けハードドライブの権限に関連する奇妙なエラーが発生しました。 Transmissionを有効にしてそのフォルダに急流をダウンロードしようとしましたが、権限エラーのためにディレクトリを作成できないことがわかりました。
自分でテストした結果、ユーザーとして実行されているデーモンが自分transmission
が所有するフォルダー内にディレクトリを作成できないことがわかりました。755話権限。
私はそれが奇妙なinodeのうわさであるかもしれないと思ったが、fsck
すべてがうまく戻ってきて、すべてが正常に見えた。
matoro@matoro-server ~ $ ls -i /run/media/matoro/drive-data
total 40
43253761 drwxr-xr-x 5 matoro matoro 4096 Apr 11 2017 backup
11796481 drwxr-xr-x 3 matoro matoro 4096 Oct 28 22:40 iso
37568568 drwxr-xr-x 2 matoro matoro 4096 Apr 23 2017 pending
42336296 drwxr-xr-x 3 matoro matoro 4096 Oct 25 01:26 podcasts
38141969 drwxr-xr-x 39 matoro matoro 12288 Sep 18 22:05 reading
37519377 drwxr-xr-x 3 transmission transmission 4096 Oct 30 17:10 seeding
37490784 drwxr-xr-x 4 matoro matoro 4096 Oct 30 17:09 videos
42336292 drwxr-xr-x 3 matoro matoro 4096 Oct 25 01:23 youtube
matoro@matoro-server ~ $ ls -ia /run/media/matoro/drive-data/seeding
total 912160
37519377 drwxr-xr-x 3 transmission transmission 4096 Oct 30 17:10 .
2 drwxr-xr-x 11 matoro matoro 4096 Nov 3 14:56 ..
37584902 drwxr-xr-x 3 transmission transmission 4096 Aug 10 2016 'some directory'
37488367 -rw-r--r-- 1 transmission transmission 430297088 Aug 14 2016 some_file
matoro@matoro-server ~ $ sudo -u transmission mkdir -v /run/media/matoro/drive-data/seeding/test
mkdir: cannot create directory ‘/run/media/matoro/drive-data/seeding/test’: Permission denied
以下は関連するインストールオプションです。
/dev/sdc3 on /run/media/matoro/drive-data type ext4 (rw,nosuid,nodev,noexec,noatime,data=ordered,uhelper=udisks2)
原因は何ですか? ACLと関係がありますか?
答え1
コマンドはmkdir
ディレクトリ構造を参照して既存のディレクトリを見つけ、そのディレクトリに/run/media/matoro/drive-data/seeding
エントリを追加する必要があります。必要な権限は次のとおりです。
x
特許/
x
特許/run
x
特許/run/media
x
特許/run/media/matoro
x
特許/run/media/matoro/drive-data
w
そしてx
許可/run/media/matoro/drive-data/seeding
(もちろん、すべてディレクトリでなければならず、作成したいディレクトリが存在してはいけません)
そのうちの1つを逃したでしょう(おそらく#4または#5)。/run/media/matoro/drive-data/seeding
これは、プロセスがすでに現在のディレクトリにある場合に発生する可能性があります(ディレクトリに入ってから親ディレクトリの権限が変更された場合、またはプロセスがuidsに切り替えられた場合)。mkdir test
権限#6だけが必要な場合(w
およびx
現在のディレクトリで)成功しますが、同じ場所を参照してもmkdir /run/media/matoro/drive-data/seeding/test
すべての権限が必要です。x
複数のコンポーネントを含む絶対パスまたは相対パスを使用している場合は、x
上記の各親ディレクトリに対して権限チェックが実行されます。