/etc/passwdに特別なユーザーを作成しました。
secure:x:2000:2000:secure:/bin:/usr/sbin/nologin
私はこのユーザーが(コンソール、SSH、FTPなどを介して)ログインすることを許可したくありません。
彼は次のようにスクリプトを実行します。
sudo su secure -c '/home/someuser/secure.script'
しかしそれは私にそれを与えたThis user is currently not available.
。この方法でスクリプトを実行できますが、そのユーザーがシステムにログイン(コンソール、ssh、ftp...)しないようにするにはどうすればよいですか?
/usr/sbin/nologin
コマンドラインに入力すると、コンピュータが応答することを確認しましたThis account is currently not available.
。
ベストアンサー1
これは一般的なユースケースですsudo
。
sudo
他のユーザーでコマンドを実行できるようにし、高度に構成可能であり(どのユーザーがどのユーザーでどのコマンドを実行できるかを選択的に指定できます)、パスワードを知っている場合(またはrootの場合)、別のユーザーに切り替える機能su
混ぜています。使用してもsu
常に作成されたシェルを実行してください。と関連があるからです。/etc/passwd
su -c
su
/usr/sbin/nologin
使用する必要があります
sudo -u secure /home/someuser/secure.script
設定可能なので、sudo
このコマンドを使用できる人とコマンドを実行するためにパスワードを入力する必要があるかどうかを制御できます。これを行うには、/etc/sudoers
編集を使用する必要があります。visudo
(/ etc / sudoersを編集するときは注意し、常にvisudoを使用してください。構文は単純ではなく、誤ってルートアカウントにアクセスできなくなる可能性があります。)
sudoersの次の行を使用すると、グループ内の誰でもsomegroup
次のコマンドを実行できますsecure
。
%somegroup ALL=(secure) /home/someuser/secure.script
これにより、グループ内の誰もがsomegroup
パスワードを入力しなくてもコマンドを実行できます。secure
%somegroup ALL=(secure) NOPASSWD: /home/someuser/secure.script
これにより、パスワードを入力しなくてもuser1
コマンドを実行できます。secure
user1 ALL=(secure) /home/someuser/secure.script