権限の問題 - ルート所有権にコピーされたファイルへのアクセス権限の付与

権限の問題 - ルート所有権にコピーされたファイルへのアクセス権限の付与

ルートに属するファイルが複数あり、別のユーザーを使用してそのファイルをバックアップしたいと思います。私はこのユーザーにすべてのルートディレクトリへのアクセス権を与えたくないので、特定のディレクトリとファイルにのみアクセス権を与えたいと思います。

たとえば/etc/httpd/conf/httpd.conf/etc/httpd/conf.d/ssl.confちょっと待ってください。

ファイルの所有権を維持しながら、特定のユーザーにrootアクセス権を付与せずにこれを行うにはどうすればよいですか?

特定のファイルを追加しようとしましたが、/etc/sudoers.d/user_sudoers成功しませんでした。

user  ALL=(ALL)       NOPASSWD:       /etc/httpd/conf/httpd.conf

シェルスクリプトから毎日のバックアップを作成するには、次のように呼び出します。

cp -rp /etc/httpd/conf/httpd.conf /archive/DailyExport/today/httpd/ >> /archive/logs/DRLog.txt 2>&1

しかし、私は続けます...

cp: cannot stat '/etc/httpd/conf/httpd.conf': Permission denied

sudoスクリプトにコピー文を追加すると...

sudo cp -rp /etc/httpd/conf/httpd.conf /archive/DailyExport/today/httpd/ >> /archive/logs/DRLog.txt 2>&1

sudo を呼び出すためにユーザーにパスワードの入力を求められます。 cronで実行しようとしているため、インタラクティブは機能しません。

答え1

sudoersファイルを指定するために使用されます。注文するユーザーはroot(または他のユーザー)として実行できますsudo。ファイル権限とは何の関係もありません。

ユーザーにファイルへのアクセスを許可するには、標準のUnix / Linux権限システムを使用できます。

ほとんどのシステムの設定ファイルは、通常、すべてのユーザーがデフォルトで読み取ることができるため、/etc/httpd/conf/httpd.conf害はありません。どういうわけかこれらの権限を制限したでしょう。すべてのユーザーがファイルを再読み込みできるように、簡単に設定できます。

chmod a+r /etc/httpd/conf/httpd.conf

また、すべてのディレクトリ/etc/httpd/conf(つまり、ディレクトリ自体/etc/httpd/etcアクセシビリティ(つまり、xそのユーザーの権限を持っている必要があります。)通常、デフォルトではすべてのユーザーに対してこれらの権限がありますが、制限する場合は権限をリセットする必要があります。たとえば、次のようになります。

chmod a+rx /etc /etc/httpd /etc/httpd/conf

(ディレクトリへの読み取り権限が必要なコンテンツにアクセスできるわけではありませんが、リストバックアップソフトウェアに必要なもの - 両方を割り当てるのが最善です。

すべてのユーザーに読み取りアクセス権を付与したくない場合(ただし、理由がわかりません)、そのユーザーにのみ読み取りアクセス権を付与できます。これは2つの方法で行うことができます。

  1. この特定のユーザーのみが属するグループを作成し、関連するすべてのディレクトリとファイルをグループに割り当て、グループに権限を付与します。たとえば、次のようになります。

     chgrp somegroup /etc/httpd/conf/httpd.conf
     chmod g+r /etc/httpd/conf/httpd.conf
    
  2. ACLを使用してこの特定のユーザーに権限を付与します。

     setfacl -m -u:someuser:r /etc/httpd/conf/httpd.conf
    

もちろん、すべての親ディレクトリに対する権限を持つ(または)同じ規則がx適用されます。rx

関連情報