/etc/passwdでmysqlユーザーシェルを置き換えます。

/etc/passwdでmysqlユーザーシェルを置き換えます。

mysqlユーザーシェルを無効にするサーバーが複数あるので、コマンドラインで/etc/passwdのmysqlユーザーシェル構成を置き換える方法を探しています。

実際

mysql:x:498:498:MySQL server:/var/lib/mysql:/bin/bash

予想される

mysql:x:498:498:MySQL server:/var/lib/mysql:/sbin/nologin

答え1

/etc/passwd修正を使用しないでくださいsed。代わりに、ファイルと対話するために提供されているツールを使用してください。

この場合はchpass/chshまたはより一般的にはですusermod

ほとんどのシステムでは:

$ sudo chpass -s /sbin/nologin mysql

または

$ sudo chsh -s /sbin/nologin mysql

動作します。

(または/使用)を/etc/passwd使用して編集したくない、sedvimemacs本当にsed -i.

@JdeBPユーザーは、vipw以下の説明でこのユーティリティについて思い出しました。これは、ファイルロックなどを処理しながら編集できるvisudo特別なコマンドです。/etc/passwdまた、古いパスワードファイルの代わりに新しいパスワードファイルをインストールする前に、保存したファイルに対して一貫性/構文チェックを実行します。vipw詳細については、システムのマニュアルを参照してください。これがパスワードファイルを手動で編集する唯一の安全な方法です。

また一部Unixシステムでは、デフォルトのログインシェルはパスワードファイル以外の方法で設定されます。たとえば、OS Xでは、一般ユーザーは/etc/passwd

関連情報