data-dir
自体には権限700
があり、それによってmysql
ユーザーへのアクセスが制限されます。
mysql
グループに追加した他の人がbinlogs
を読み取って、*.frm
、*.MYI
、*.MYD
ファイルをダウンロードできるようにしたいと思います。ローカルコンピュータ。
私の最初の考えは、chmod g+rx data-dir
を実行することです。
data-dir
内のデータベースディレクトリとテーブル/ binlogファイルには、770
/660
の権限があります。したがって、偶発的な改ざんやライブデータの削除を防ぐために、これらすべてをchmod g-w
する必要があります。
残念ながら、新しいbinlogs
が作成され、create database
またはcreate table
コマンドが使用されると、g+w
権限が自動的に追加されます。この機能を変更するにはどうすればよいですか?
さて、私はオンラインで、コマンドUMASK
が何を出力するかに関係なく、環境変数umask
とUMASK_DIR
を設定する必要があることを発見しました。
export UMASK=0640
を呼び出す直前に、起動スクリプトの先頭にexport UMASK=0750
とmysqld_safe
を追加する必要があります。
8進番号付けシステムに切り替えるには、先行ゼロが重要です。
私が最初に試したのは0027
でしたが、それによってu=rw,g=w,o=rwx
のアクセス許可を持つファイルが生成されたため、環境変数のアクセス許可を0750
(および0640
)に反転するように促されました。 )目的の結果を生成します。
私の自己回答が将来の訪問者に役立つことを願っています。 :-)
あなたが解決しようとしている根本的な問題は何ですか? UMASK
は間違ったアプローチである可能性があります。
ファイルとディレクトリはmysql
"user"から完全にアクセス可能である必要があるため、ディレクトリには少なくとも0700が必要であり、ファイルには0600が必要です。
「世界」がそれらを読み取ることができるようにしたい場合(ただし、それらを書き込むことはできない)、0755および0644。しかし、なぜそれが必要なのですか?また、OSによって下位ビットがオフにならないようにするには、おそらくUMASK_DIR=0755
とUMASK=644
が必要です。
MySQLにはアクセス制御があります内部 MySQL。これは、MySQLのGRANT
コマンドを介して行われます。また、MySQLの「ユーザー」はOSの「ユーザー」と同じではありません。特に、OSの「ルート」とMySQLの「ルート」は独立しています。