私はRubyを知りませんが、Rubyベースのプログラムであるmdl(markdownlint)を使用したいので、snapを使ってインストールしました。
プログラムを実行できますが、 ~/.mdlrc ファイルでカスタマイズを設定しようとすると問題が発生します。次のエラーが発生します。
$ mdl README.md
/snap/mdl/171/lib/ruby/gems/2.4.0/gems/mixlib-config-3.0.6/lib/mixlib/config.rb:63:in
`read': Permission denied @ rb_sysopen - /home/mikeg/.mdlrc
(Errno::EACCES)
from /snap/mdl/171/lib/ruby/gems/2.4.0/gems/mixlib-config-3.0.6/lib/mixlib/config.rb:63:in
`from_file'
from /snap/mdl/171/lib/ruby/gems/2.4.0/gems/mdl-0.10.0/lib/mdl/cli.rb:122:in
`run'
from /snap/mdl/171/lib/ruby/gems/2.4.0/gems/mdl-0.10.0/lib/mdl.rb:16:in
`run'
from /snap/mdl/171/lib/ruby/gems/2.4.0/gems/mdl-0.10.0/bin/mdl:10:in `<top
(required)>'
from /snap/mdl/171/bin/mdl:23:in `load'
from /snap/mdl/171/bin/mdl:23:in `<main>'
権限の問題がどこで発生するのかわかりません。
$ ls -l ~/.mdlrc ~/.mdlrc.style.rb
-rw-rw-r-- 1 mikeg mikeg 171 Aug 14 16:06 /home/mikeg/.mdlrc
-rw-rw-r-- 1 mikeg mikeg 4 Aug 14 16:06 /home/mikeg/.mdlrc.style.rb
そして
drwxr-xr-x 303 mikeg mikeg 65536 Aug 14 21:53 /home/mikeg
したがって、この問題を解決する方法がわかりません。誰でも私を助けることができますか?
私はMate 18.06を実行しています。 SELinuxはインストールされていませんが、AppArmorが有効になっていて、私が得た/var/log/syslog*ファイルを見ています。
syslog.7.gz:Aug 17 09:08:40 XXXX kernel: [978608.742842] audit: type=1400 audit(1597669720.954:2800): apparmor="DENIED" operation="open" profile="snap.mdl.mdl" name="/home/mi/.mdlrc" pid=13189 comm="ruby" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
ありがとう、
マイク
答え1
SELinuxに関する@NasirRielyの質問は、衣服の権限とスナップの組み合わせによる問題の根本的な原因を特定するのに役立ちました。明らかに、私のホームディレクトリにあるファイルを読み取ることができず、mdlスナップ--classic
オプションをインストールしても役に立ちません(セキュリティ上の理由から無視されます)。
私はウサギの穴を掘り始めましたが、停止し、宝石を使ってRubyとMDLをインストールすることにしました。それは、
$ sudo apt-get install ruby-full
$ gem install mdl