ちょうど非常に奇妙な状況に直面しました。
/usr/lib/thunderbird/thunderbird.sh
次の権限を持つファイルを編集しようとしています。
$ ll /usr/lib/thunderbird/thunderbird.sh
-rwxr-xr-x 1 root root 2730 Aug 20 12:55 /usr/lib/thunderbird/thunderbird.sh*
発行したら
sudo vim /usr/lib/thunderbird/thunderbird.sh
挿入モードに切り替えると、次の警告メッセージが表示されます。
/usr/lib/thunderbird/thunderbird.sh [RO]
W10: Warning: Changing a readonly file
-- INSERT --
そして、実際に何の変更も書くことはできません。
しかし、以下を発行すると:
user@hostname:~$ sudo su -
root@hostname:~# vim /usr/lib/thunderbird/thunderbird.sh
問題なくファイルを編集できます。
奇妙なことは、の設定ファイルのように、同様の権限を持つ多くのファイルを/etc/
問題なく編集し、同じディレクトリにファイルを作成すると問題なく編集することです。
user@hostname:~$ sudo touch /usr/lib/thunderbird/test.sh
user@hostname:~$ sudo chmod 755 /usr/lib/thunderbird/test.sh
user@hostname:~$ ll /usr/lib/thunderbird/test.sh /usr/lib/thunderbird/thunderbird.sh
-rwxr-xr-x 1 root root 0 Aug 20 13:03 /usr/lib/thunderbird/test.sh*
-rwxr-xr-x 1 root root 2730 Aug 20 12:55 /usr/lib/thunderbird/thunderbird.sh*
user@hostname:~$ sudo vim /usr/lib/thunderbird/test.sh
これは私のsudoersファイルです。
# Cmnd alias specification
Cmnd_Alias APT = /usr/bin/apt-get update, /usr/bin/apt-get upgrade
# User privilege specification
root ALL=(ALL:ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
%sudo ALL=(ALL:ALL) NOPASSWD: APT
私のユーザーはsudoグループにいます。
なぜこれが起こるのかご存知ですか?
答え1
ちょうどその理由が次の状況の組み合わせであることがわかりました。
まず理由はわかりませんが、環境変数を正しくインポートsudo
できず、一般ユーザーの環境変数を使用するため、このように読んでください。HOME
.vimrc
/home/user/.vimrc.
これを見るために次のように投稿しました。
user@hostname:~$ sudo bash
[sudo] password for user:
root@hostname:/home/user# echo $HOME
/home/user
次に、カーソル位置が保存されるように、ユーザーのvimrcファイルで折りたたみ持続性を有効にしました。
au BufWinLeave * mkview
au BufWinEnter * silent loadview
これにより、ファイルを編集するたびに$HOME/.vim/view
フォルダ内にプロパティファイルが作成されます。私の場合、私はsudo
最初にファイルを編集しようとしなかったようで、一般ユーザーとして折りたたまれたファイルが作成されました。
user@hostname:~$ ll .vim/view/ | grep thunderbird.sh
-rw-rw-r-- 1 user user 2650 Aug 20 15:56 =+usr=+lib=+thunderbird=+thunderbird.sh=
ルートがあるので、/home/user
私が$HOME
発行したときに同じ折りたたまれたファイルが(間違って)使用され、sudo vim
何らかの理由でvimの内部に関して見落とされた可能性があります。折りたたまれたファイルが編集ユーザーの所有ではない場合は、編集したファイルが開きます。読み取り専用モードで。
だから、ファイルを削除した/home/user/.vim/view/=+usr=+lib=+thunderbird=+thunderbird.sh=
後に編集してみるとsudo vim,
全く問題がないことに気づきました。
それで、物語の最後の部分で状況を解決するために、/etc/sudoers
次の行を編集して追加しました。
Defaults always_set_home
これで、すべてが期待どおりに機能し、sudo
再び安定して使用できるようになります。
答え2
このコマンドで問題を解決しました。
sudo chattr -i filename