• ベストアンサー
  • すぐに回答を!

ログインシェルについて

linuxにて/etc/passwdを閲覧すると、 /sbin/nologinというログインシェルがございります。 これは、ログインができないユーザとして割り当てられていると認識します。 1つ質問ですが、一般ユーザから例えば/sbin/nologinシェルの、 su - shutdownでスイッチするとpassword:とパスワードプロンプトが表示されます。 ということは、ログインが可能ということですか? よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数1518
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.3
  • anights
  • ベストアンサー率72% (35/48)

# man 5 passwd とか # man 1 login とかって理解されてますか? /etc/passwdファイルのshell fieldに/sbin/nologinを指定するってことは、ログインの禁止というよりは、loginコマンドから対話シェルを呼び出さないだけなんですが。 ちなみに、↑の記述はユーザに対して対話シェルを禁止している訳でもないですよ。 suコマンドを使う際に-sオプションを使ってshellを指定すればスイッチユーザ出来ますしね。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • FTPにログインする時のパスワード

    $ useradd -s /sbin/nologin hoge このhogeユーザでFTPにログインしたいのですが $ passwd hoge でパスワードを設定しないとFTPにはログイン不可ですか?

  • su できません

    /etc/passwd内のrootのログインシェルを書き間違えてしまい,su時に su: No shellといわれてしまいます. 一般ユーザで ln コマンドを使用し,書き間違えたファイル名にして実行しようととしました. しかし,/sbin/ 内のファイルのため,一般ユーザでは書き込めません. また,su -s /sbin/sh としてもできませんでした. どのようにすれば su することができるのでしょうか. 使用しているOSはsoraris7です. なにとぞよろしくお願いします.

  • Linuxにおけるパーミッションに関して

    Linux(Redhat)に関して質問します。 /etc/passwdファイルの第7フィールド(ログインシェル指定の箇所)にて /sbin/nologin指定をしているアカウントに関して、このアカウントで作成 されるディレクトリもしくはファイルのデフォルトでのパーミッションは、 どのようになりますでしょうか? 例えば、第7フィールドに/bin/bashの指定があり、/etc/bashrcにumask の値を設定していれば、ログイン時に/etc/bashrcが読み込まれumask の値によってパーミッションが決定されると思いますが、/sbin/nologin 指定をしているアカウントに関しては、umaskの値が有効になるのか どうか質問している次第です。

その他の回答 (2)

  • 回答No.2
  • aki567
  • ベストアンサー率31% (140/438)

ユーザーは、実在の使用者に連結したアカウントの意味で人であるか、 又は、使用する特殊なアプリケーション用に存在するアカウントでも有り得ます。 /etc/passwdの標準的なユーザーとしてそういうもの全てが記載されています。 そして、俗に言うユーザーは/etc/passwdを見ると、500番以降が割り当てられているはずです。それが通常ログインできるユーザーですね。

共感・感謝の気持ちを伝えよう!

  • 回答No.1
  • mac_res
  • ベストアンサー率36% (568/1571)

趣旨を勘違いしているかもしれませんが、nologinがlogin shellに割り当てられているユーサーにsuしても、 This account is currently not available. となり、操作は不能だと思います。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • Linuxユーザのパスワード変更

    RedHatLinux9を使用しています。 パスワード変更についてお伺いしたいです。 ユーザのパスワード変更は、 su - ユーザ名 でユーザでログインしたあと、 passwd とし、現在のユーザパスワードを入力し、 そのあと、新しいパスワードを入力すればできますが、 useradd -s /sbin/nologin ユーザ名 として作成したユーザの場合は、 上記の方法ではパスワード変更できないようです。 This account is currently not avaliable と表示されています。 useradd -s /sbin/nologin ユーザ名 として作成したユーザの場合は、 どのようにパスワードを変更したらよいですか?

  • Linuxでログインしないユーザーを作成した場合

    Linuxでログインさせたくないユーザーを useradd -s /sbin/nologin XXX の様にして作成した場合、 /home/XXX 以下に .bashrc, .bash_profile, .bash_logout 等のファイルが作成されましたが、 元々シェルは使わせたくないので削除しても問題ないでしょうか?? また、もし問題がないのであれば、 始めから.bash* のファイルを作成させないようなユーザー追加方法はあるのでしょうか? ご教授ねがいまする。

  • CENTOSでadduserで作成したユーザでログインできない

    *環境 CENTOS4 GNOME bash *症状 [root@myhost ~]# su - hoge su: パスワードが違います ・ルートユーザにもかかわらず一般ユーザにログインできない ・CENTOSのグラフィックログインで一般ユーザで入れない(rootのみ入れる) *ためしたこと root でGUIログインののち、 ユーザ追加 #adduser hoge # id hoge uid=508(hoge) gid=508(hoge) 所属グループ=508(hoge) パスワード設定 # passwd hoge Changing password for user hoge. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. shadow確認 # cat /etc/shadow | grep hoge hoge:$1$XkexNO3i$HRO.MkHbbZPn2sImrUJ9O/:13650:0:99999:7::: passwd確認 # cat /etc/passwd | grep hoge hoge:x:508:508::/home/hoge:/bin/bash homeディレクトリ確認 # ls -la /home/ | grep hoge drwx------ 3 hoge hoge 4096 5月 18 01:12 hoge 上記設定のあと、 # su hoge su: パスワードが違います となってしまいます。 初歩的な質問ですが困り果てております よろしくおねがいします。 ちなみにnologinは作成されていません。 # ls /etc/nologin ls: /etc/nologin: そのようなファイルやディレクトリはありません

  • -s /sbin/nologinだとproftpdが使えない

    ユーザを -s /sbin/nologin で追加したら、そのユーザはFFFTPでFTPにログインできませんでした。 パスワードが違うと言われてログインできないのです。 chmodで適当なshellを付けてやるとFTPにログインできました。 -s /sbin/nologin でFTPにログインできなくなることは 結構あるものなんでしょうか? よく知りませんが、セキュリティのために使わないShellは 外した方がいいらしいので、Shell無しでFTPさせたいのですが このような状態の場合どうすればよいですか?

  • Fedora Core2 --> RedHat Linux9.0へ ユーザアカウントを移転するには

    こんばんは。 サーバーA(Fedora Core2)から新しいサーバーB(RedHat Linux9.0)へ ユーザアカウントを移転したいと考えております。 ユーザアカウントを移転するには、/etc/passwdの他に どのファイルをコピーすればよろしいでしょうか? ユーザは、メールサービスのみのユーザで、 useradd hogehoge -s /sbin/nologin のような形式で、ユーザ追加しました 参考サイトを、いろいろ探しているのですが、検索キーワードが悪いのか、なかなか見つけることができません。ヒント・情報だけでも良いので、ご指導頂けますと大変うれしいです。 どうぞよろしくお願いします。

  • proftpdでftpログインが出来ません

    vine linuxにproftpdをセットアップしたいのですがユーザーを新たに作ってもログインできません。ログもどこをみたらよいのか分からないのですが/var/log/messagesには Sep 29 19:25:31 localhost proftpd[2450]: localhost.localdomain (192.168.0.3[192.168.0.3]) - FTP session opened. Sep 29 19:25:34 localhost proftpd[2450]: localhost.localdomain (192.168.0.3[192.168.0.3]) - FTP session closed. と残るだけです。なのでproftpdをスタンドアローンで-nをオプションに起動しログをコンソールに出力させてみると /usr/local/sbin/proftpd -n localhost.localdomain (192.168.0.3[192.168.0.3]) - FTP session opened. localhost.localdomain (192.168.0.3[192.168.0.3]) - USER myo (Login failed): Incorrect password. localhost.localdomain (192.168.0.3[192.168.0.3]) - FTP session closed. と出て一見するとパスワードが拒否されているように見えます。ただ現象としては一番最初に作ったアカウントではログイン出来て、その後、新たに作ってみたアカウントではログイン出来ない状況です。ちなみにsshでは新しく作ったアカウントもログインできるようです。shellsあたりにシェルが記述されていないと駄目との事ですが、どうも登録されているようなのです。/etc/shellsの中身 /bin/sh /bin/bash /sbin/nologin /bin/tcsh /bin/csh /bin/dash /bin/ash /bin/bsh /etc/passwdの中身 アカウント名は変えてあります。その他そのままです。 (~略) ac1:x:500:500:my name:/usr/local/apache2/htdocs:/bin/bash (FTPログイン出来るアカウント) apache:x:450:450::/home/apache:/sbin/nologin ac2:x:501:501::/home/myo:/bin/bash (fTPログインできないアカウント) どうかお知恵をお貸し下さい。確認したほうがいいファイルなどあればご指摘いただけると幸いです。足りない情報などあればご指摘いただければその都度追加いたします。以上よろしくお願いいたします。

  • ログインできないユーザはcronを適用できない?

    CentOS4を使っています。 表題の通りですが、 ログインできないユーザはcronを適用できないでしょうか? つまり、 ある新規ユーザをつくり、そのとき ログイン権限を与えていなければ(/sbin/nologin)、 rootなり別のユーザでcrontabの設定をして、その人がcronの恩恵を受けることは可能でしょうか? 以上、よろしくお願い申し上げます。

  • 代替のシェルに入れ替えるための、具体的な方法

    少し前から、bashの脆弱性の問題が指摘されていると思うのですが、例えばJPCERTは その対策の一つとして 「GNU bash を代替のシェルに入れ替える」 というものを上げています。 代替のシェルに入れ替える場合の具体的な方法ですが、例えば、(/etc/passwd等の)ログイン情報を見て、bashがログインシェルに設定されているユーザを、zsh等に書き換えて、再起動してしまう、というやり方で、十分なのでしょうか。 今現在問題に直面しているわけではないのですが、「入れ替え」の方法について、教えていただければと思います。

  • パスワード設定していないユーザーのログイン

    いつもお世話になっております。 linuxで、useraddした後、passwdコマンドでパスワードを設定していないユーザーがいます。ここでは、postgresとします。 このユーザーに一般ユーザーからなるときに、 $su - postgres としますが、パスワードがきかれて、何も入力しないと、 invalidになります。(centos5) パスワードを設定しないと、一般ユーザーからログインできないのでしょうか。 ちなみに、rootからpostgresですと、ログインできます。 $su - $su - postgres お手数をおかけしますが、なにとぞご教授お願いいたします。

  • シェルの中からシェルを呼び出して判定

    UNIXで以下のようなシェルが動作しております。 #!/bin/sh su abcdef -c './GHI'; err=$? if [! $err -eq 0 ] then echo エラーが発生しました fi exit このシェルは「abcdef」ユーザに移ってカレントディレクトリのシェルコマンド「GHI」の結果を判定するというものです。 UNIX上では問題なく動作しております。 これをLinuxでそのまま動作させると「err」に「su abcdef」というユーザ切替コマンド自身の正否を格納しているようです。 「'」でくくられた範囲内で結果をファイルに格納したりして、その後ファイルの中を見て判断するとうまくいくことは分かっておりますが、出来たらファイルなど使いたくありません。 このような場合、みなさんどうしてるんでしょうか? よく出てくるパタンだと思うのですがどうしても良い対処が見つかりません。 どうか宜しくお願いします。 Linuxは「miracle-Linux2.0」というOSです、いわゆるRedHat系です。