/etc/passwd,shadowの役割とは?

このQ&Aのポイント
  • Linuxにおいて、/etc/passwdと/etc/shadowはどのような役割を果たしているのでしょうか?
  • 実際のSSHログインにおいて、/etc/passwdと/etc/shadowの使われ方にはどのような違いがあるのでしょうか?
  • /etc/passwdと/etc/shadowはログインだけでなく、他の用途でも使われているのでしょうか?
回答を見る
  • ベストアンサー

/etc/passwd,shadowの役割

http://www.linux-beginner.com/linux_other6.html のリンクで/etc/passwdと/etc/shadowがなぜ分かれたのか理解しましたが、 実際sshでログインする時って/etc/passwdしか使ってないように見えます。 /etc/shadowはいつ使われますでしょうか。 僕が検証した結果です。 /etc/nsswith.conf shadowを空欄 -> ssh root@xxx -> 可能 /etc/nsswith.conf shadowをfiles -> ssh root@xxx -> 可能 /etc/nsswith.conf shadowをfiles ldap -> ssh ldapuser@xxx -> 可能 /etc/nsswith.conf paawdを空欄 -> ssh root@xxx -> 不可能 /etc/nsswith.conf paawdをfiles -> ssh ldapuser@xxx -> 不可能 /etc/shadowはログインとは関係なく他の用途で使われてるのでしょうか。

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

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

>実際sshでログインする時って/etc/passwdしか使ってないように見えます。 >/etc/shadowはいつ使われますでしょうか sshでパスワード認証した時…でしょうかね。 pamとか関係すると思いますが。 # ただし、試したことはない。 /etc/nsswith.confのpasswdはユーザの存在確認の際に、 /etc/nsswith.confのshadowはパスワード認証の際に。 sshの認証を公開鍵認証にしていれば、そもそも/etc/shadowとか使いませんし。 # ユーザの存在の確認とホームディレクトリの確認にpasswdのエントリは必要ですけど。 # まぁ、その辺りもpamの設定次第ですかねぇ。

その他の回答 (1)

  • chie65535
  • ベストアンサー率43% (8514/19355)
回答No.2

>/etc/shadowはいつ使われますでしょうか。 getspnam, getspnam_r, getspent, getspent_r, setspent, endspent,fgetspent, fgetspent_r, sgetspent, sgetspent_r, putspent, lckpwdf, ulckpwdfなどのAPIが使用された時に使用されます。 >僕が検証した結果です。 /etc/nsswith.confを弄っても検証にはなりません。検証方法が間違っています。

関連するQ&A

  • /etc/passwd と /etc/shadowをそっくり新サーバーにコピーすればログインできますか?

    旧サーバー(Laser5-6.0)から新サーバー(RedHat7.3)に移行を考えています。新サーバーにも旧サーバーと同じアカウントとパスワードでログインできるようにしたいです。旧サーバーの/etc/passwdと/etc/shadowを新サーバーにコピーすれば可能でしょうか。もしだめなら、何かいい方法はありますか。

  • /etc/passwdのパーミッション不正の回復方法

    申し訳ありませんが、超初心者のためにご教授頂けないでしょうか。 <内容>  HP-UX11.23にて、rootユーザにてログイン後、  /etc/passwdファイルをviエディタにて直接更新して  ログアウトしましたところ、二度とログインできなくなりました。  どうしたらログインできるように回復するのかを  ご教授いただきたいです。  telnetのログを見る限り、上記ファイルのパーミッションが Root(グループはother)になっており、  これが原因では?と見ておりますが、何しろ  ログインできないのでなんともできずに困っております。  ちなみに、取得済みバックアップは  一切なしです。。。 以上、よろしくお願いいたします。

  • ssh にて Illegal user となってしまう(NIS認証失敗)

    NISにてどうしてもわからないことがありましたので 質問させていただきます。 現在NISにてアカウントの共用を行っていますが、 新しく設定したホストへ共用アカウントでssh の ログインを試みたところ、Permission denied となりログインができません。 ホストの/var/log/messageを見たところ、 以下のようなメッセージが出ており、どうやら アカウントが認識されていないようなのです。 sshd[*****]: Illegal user yyyyy from xx.xx.xx.xx 実際は、ypwhich -m にてpasswd.byname が マスターサーバから引けていますし、 問題のアカウントもypcat yyyyy passwd で ちゃんと見ることができています。 /etc/nsswitch.conf の passwd,shadow,group は すべて files nisplus nis の順で記述しています。 これは、何がいけないのでしょうか? ご存知の方がいらっしゃったらぜひご教授ください。 よろしくお願いいたします。

  • 管理者ユーザを作ったつもりなのですが

    管理者グループに、新規testユーザを作成しました。 そのtestユーザでshadowファイルを確認しようとしたところ 権限がないと表示されました。 その理由が分からないのです。 [root@host ~]#useradd -g root test [root@host ~]#su test [test@host root]$ cat /etc/shadow cat: /etc/shadow: 許可がありません [test@host root]$ ls -l /etc/shadow ---------- 1 root root 734 1月 19 17:36 2013 /etc/shadow rootグループにtestユーザを割り当てたので、 testユーザでshadowファイルを見れると思っていのですが見れないのです。 理由がわからないのです。 /etc/shadowファイル所有者がrootだからでしょうか? rootグループにtestを参加させているだけではだめなのでしょうか? ご教授お願いします。

  • linuxのユーザーアカウントの管理をwindows server で行うことはできますか?

    これまで、何度もお世話になっております。 私のところでは windows server を昔から使っていますが、この2,3年linuxの利用が増えてきて、現在では数10台のlinux マシンを使っております。しかし、windows はActive directory でユーザーアカウントは統合的に管理しているのですが、linux は原始的な1台ごとに /etc/passwd, /etc/shadow で管理しております。最近よくlinuxでLDAPサーバーを動かし、ユーザーアカウントの管理を統合するような記事を見かけますが、逆に windows server がある状況で、linux が windows server のユーザーアカウントを利用することは出来ないでしょうか? windows server も一種の LDAPサーバーのように思うのですが。

  • 特定ホストからのみSSHでのrootログインを許可

    2台のサーバ間でrootユーザー所有のファイルの同期を rsyncで行う為、ssh_configでrootログインを許可しています。 ココでセキュリティの関係上、sshでのrootログインを特定の ホストからのみ許可したいと思ってます。 /etc/security/access.confに以下を追記 -:root : ALL EXCEPT 192.168.**.**. /etc/pam.d/sshdに以下を追記 account required pam_access.so /etc/ssh/sshd_config UserPAM yes と言う設定をしましたが、これ以外に有効な方法はありますでしょうか? (この方法だと厳密には、「認証を通さない」設定になるかと思います) ありましたら、教えて頂きたいと思います。

  • homeディレクトリをバージョン違いのLinuxへ移行するには

    お世話になります。 例えば、 Redhat Linux 7.0Jで動いているシステムを Redhat Linux 7.1Jの環境に移行しようとした場合、 /homeディレクトリ、ならびにユーザ情報(パスワードなど)を移行後も同じようにしたいのですが、 どうすれば良いでしょうか? といいますのも、以前、実験的に上記をやってみたことがあるのですが、 /homeと/etc/passwdを移行してみたら、ログインできなくなってしまったという悲しい過去があるのです・・・。 エラーメッセージは詳細におぼえてはいませんが、 たしか、ドットファイルが・・・っていう感じだったと思います。 移行の際、/etc/passwd 、 /etc/shadow などを変更しなくてはいけないのでしょうか? どなたかご教授よろしくお願いします。

  • chpasswd後の/etc/shadowについて

    お世話になります。 chpasswdでメールユーザのパスワード変更をしたあと、/etc/shadowを確認しました。 暗号化されている場合は、通常なら第二フィールドに$1や$6などの表記が付くと思いますが 以下のとおりでした暗号化されているのでしょうか。 実行コマンド echo "info:passwd01" | chpasswd 設定後の/etc/shadow内容 info:Y3uOe313g3JAM:16819:0:99999:7::: OSバージョン Red Hat Enterprise Linux ES release 4 (Nahant Update 5) 以下の様にしてメールユーザのパスワードを一括変更する事を目的としています。 chpasswd < passwdfile

  • SSHをLDAPで認証

    SSHをLDAPを使って認証させたいのですが、上手くいきません・・・ /etc/passwdに登録してあるユーザはログイン可能なのですが、LDAPに登録してあるユーザではログインできません。以下、ログイン不能時のログです。 ※LDAPのログには、何も記述されていないので、そもそもSSHからLDAPサーバにアクセスできていないように思うのです。しかしながら、どうして良いか全く分からないため、皆様の知恵をお借りしたく。 --------log--------- Illegal user test from 127.0.0.1 May 11 10:13:07 Proxy sshd[23596]: PAM unable to dlopen(/lib/security/pam_ldap.so) May 11 10:13:07 Proxy sshd[23596]: PAM [dlerror: /lib/security/pam_ldap.so: undefined symbol: ber_pvt_opt_on] May 11 10:13:07 Proxy sshd[23596]: PAM adding faulty module: /lib/security/pam_ldap.so May 11 10:13:36 Proxy sshd[23596]: Failed password for illegal user test from 127.0.0.1 port 35168 ssh2 --------------------- /etc/pam.d/sshdに関しては、pam_ldapのソース内にあったものをそのまま流用しています。 ■基本情報 OS:Redhat 2.4.21-4.EL openldap-2.3.21 pam_ldap-182 nss_ldap-250 LDAPクライアント、サーバとも同一サーバ。

  • SSH接続時のスーパーユーザー(su?)について

    Linuxは完全な初心者です。 サーバ内のにある、SSHで保護されたデータベースにアクセスしようとしております。 手順として、 (1)SSHでサーバに接続 (2)スーパユーザーになる (3).設定ファイルを編集 /etc/httpd/conf.d/phpmyadmin.conf (4)Allow from (自分の使用しているIP) という一行を追加 (5)Apache(HTTP)の再起動 /etc/rc.d/init.d/httpd reload という事を教えて頂けました。 見よう見まねでなんとかTeraTermでSSH接続するところまで出来ましたが、 (2)のスーパーユーザーになる、という段階で止まっております。 調べたところ【su】【su -】【su - root】あたりのコマンドで、root権限は持てているようなんですが、 (3)のコマンドを打つと【許可がありません】と出てしまいます。 何が間違っているのでしょうか? どなたかご教授頂けましたら幸いです。 宜しくお願いします。