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
使用して編集したくない、sed
vim
emacs
本当にsed -i
.
@JdeBPユーザーは、vipw
以下の説明でこのユーティリティについて思い出しました。これは、ファイルロックなどを処理しながら編集できるvisudo
特別なコマンドです。/etc/passwd
また、古いパスワードファイルの代わりに新しいパスワードファイルをインストールする前に、保存したファイルに対して一貫性/構文チェックを実行します。vipw
詳細については、システムのマニュアルを参照してください。これがパスワードファイルを手動で編集する唯一の安全な方法です。
また一部Unixシステムでは、デフォルトのログインシェルはパスワードファイル以外の方法で設定されます。たとえば、OS Xでは、一般ユーザーは/etc/passwd
。