ルートに属するファイルが複数あり、別のユーザーを使用してそのファイルをバックアップしたいと思います。私はこのユーザーにすべてのルートディレクトリへのアクセス権を与えたくないので、特定のディレクトリとファイルにのみアクセス権を与えたいと思います。
たとえば/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つの方法で行うことができます。
この特定のユーザーのみが属するグループを作成し、関連するすべてのディレクトリとファイルをグループに割り当て、グループに権限を付与します。たとえば、次のようになります。
chgrp somegroup /etc/httpd/conf/httpd.conf chmod g+r /etc/httpd/conf/httpd.conf
ACLを使用してこの特定のユーザーに権限を付与します。
setfacl -m -u:someuser:r /etc/httpd/conf/httpd.conf
もちろん、すべての親ディレクトリに対する権限を持つ(または)同じ規則がx
適用されます。rx