マウントされたファイルシステムでchmod 4750にchrootを使用します(しかしchmod 750は機能します)。

マウントされたファイルシステムでchmod 4750にchrootを使用します(しかしchmod 750は機能します)。

私はフォローしていますGentooインストールガイド。しかし、私は頑固です。ワールドセットアップデート問題の一部は、Emergeを使用してdbusをインストールできないことです。バイナリのSUID権限を変更することはできません。ログ出力は次のようになります。

chmod 4750 /var/tmp/portage/sys-apps/dbus-1.10.18/image//usr/libexec/dbus-daemon-launch-helper;
...
chmod: changing permissions of '/var/tmp/portage/sys-apps/dbus-1.10.18/image//usr/libexec/dbus-daemon-launch-helper': Permission denied

たとえば、

ファイルシステムをrootとしてマウントしました。

mount /dev/sdb3 /mnt/gentoo

その後、rootユーザーとしてrootを指定しました。

chroot /mnt/gentoo /bin/bash
source /etc/profile

ファイルを作成して権限を変更してみてください。

touch /hello
chmood 4750 /hello

「権限が拒否されました」と表示されません。

ただし、chmod 4750 /mnt/gentoo/hello外部ではファイルシステムが正常に動作します。

許可が拒否されたのはなぜですか?私も設置してみましたが、-o suidやはりダメなようですね。

それでは、chmod 4750さまざまなファイルシステムで作業する方法は何ですか?

修正する: 私のLinux Mintで同じことをすることはうまくいきます。 Gentoo livecdで失敗しました。

答え1

あなたが使用しているGentoo livecdが強化されたカーネルを起動している可能性があります。その場合chroot、環境内でコンテンツにアクセスして変更するのにかかる時間を短縮する、強化されたカーネルによって課される制限に直面します。 Setuid、GRUB、EFIが浮上します。 4桁の表記の最初の数字4は、chmod 4750setuidビットの設定を表します。このエラーメッセージはセキュリティに影響を与えるため、試行が拒否されたことを報告します。chmod 750setuidが含まれていないため、これらの権限を3桁の表記法に設定することは有効です。

この回答は、密接に関連した議論で、toralf、Hu、およびgengreenによるものです。Gentooフォーラムで

その後、次の手順を実行すると便利です。

  1. 現在実行中のカーネルが "hardenend" であることを確認し、通常はuname -r文字列4.8.17-hardened-r2などを返します。

    # uname -r
    4.8.17-hardened-r2
    
  2. カーネル設定がsysctlローカル設定を許可していることを確認して実行します# zgrep GRKERNSEC_SYSCTL /proc/config.gz。結果は大丈夫です。

    CONFIG_GRKERNSEC_SYSCTL=y
    CONFIG_GRKERNSEC_SYSCTL_ON=y
    
  3. 実際の chroot 環境の外部でこの手順と次の手順を実行する必要があります。いくつかの行を追加/etc/sysctl.conf- おそらく一時的なchroot環境にあることを考えると、次のものを追加しなくても大丈夫です/etc/sysctl.d/local.conf

    kernel.grsecurity.chroot_deny_chmod = 0 
    kernel.grsecurity.chroot_caps = 0 
    kernel.grsecurity.chroot_deny_mount = 0 
    
  4. 最後の手順で# sysctl -pこれらの変更を実行すると、手順3の設定で設定されたルールが繰り返されます。

    # sysctl -p
    net.ipv4.ip_forward = 0
    kernel.grsecurity.chroot_deny_chmod = 0
    kernel.grsecurity.chroot_caps = 0
    kernel.grsecurity.chroot_deny_mount = 0
    

次に、chroot環境にジャンプして(screen -x私の場合は合格)、emergeSUIDを使用して権限を変更することが正しく機能することを確認します。

(ところで、Gentooは、限られたパッチの可用性のため、これらの提供を中止しました。LWN.netの記事。したがって、GUIを備えたライブ環境は慎重に使用する必要があり、すべての場合に1つのサイズで適用することはできません。 )

答え2

mountホスト環境(livecd)に書き込めない状態が採用されているようです。mount以下を使用して読み書きを明示的に指定します。

mount -o rw /dev/sdb3 /mnt/gentoo

これを最初に実行してくださいumount

関連情報