質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

6173閲覧

CentOSでuseraddコマンドが失敗する

mercurius51

総合スコア12

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

2クリップ

投稿2019/02/23 14:50

現在、CentOSでメールサーバを構築しています。
環境は以下になります。

CentOS7 最新版

メールサーバ構築の際に新たにOSSなどのインストールをyumで行っていたのですが、その時に以下のようなエラー出てユーザ作成に失敗します。

useradd: /etc/shadowを開けません

試しに手で適当なユーザを作成するコマンドを叩いてみましたが、同じメッセージが表示され、ユーザが作成できません。
打ったコマンドは以下です
useradd aaa

原因として思い当たるのはyum updateの実行ですが、それだけでユーザが作成できなくなるなど聞いたこともなく、ウェブでも情報がなかったため質問させていただきました。
ご存知でしたらご回答いただけますと幸いです。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

take88

2019/02/23 14:59

ls -l /etc/shadow と whoami コマンドの実行結果を教えてください。
mercurius51

2019/02/23 15:01

ご質問ありがとうございます。 実行結果は以下になります。 [root@localhost ~]# ls -l /etc/shadow ---------- 1 root root 894 2月 16 10:11 /etc/shadow [root@localhost ~]# whoami root [root@localhost ~]#
scsi

2019/02/23 18:46

df -h の結果もお願いします
mercurius51

2019/02/23 22:22

ご質問ありがとうございます 以下が実行結果です root@localhost ~]# df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/mapper/centos-root 50G 1.6G 49G 4% / devtmpfs 7.8G 0 7.8G 0% /dev tmpfs 7.8G 4.0K 7.8G 1% /dev/shm tmpfs 7.8G 50M 7.8G 1% /run tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup /dev/mapper/centos-home 873G 33M 873G 1% /home /dev/sda1 1014M 186M 829M 19% /boot tmpfs 1.6G 0 1.6G 0% /run/user/26 tmpfs 1.6G 0 1.6G 0% /run/user/1000 [root@localhost ~]#
Stan_Dma

2019/02/23 23:23 編集

I am not sure but it may be fixed by running 'chattr -i /etc/shadow'.
mercurius51

2019/02/23 23:39

Thank you. I runed your answer.But I can't fix this.
otn

2019/02/24 01:18

cat /etc/shadow もエラーになりますか?
mercurius51

2019/02/24 01:21

ご回答ありがとうございます catコマンドを確認したところ正常にファイル内を参照可能でした
guest

回答1

0

ベストアンサー

考えられる原因と対処方法を列挙します。ほとんどのコマンドはroot権限が必要です。一般ユーザーで実行する場合はsudoを付けてください。

  • 何らかのプロセスがロックしている。
    useraddやvipwは/etc/shadowをロックしてから書き込みをします。以前のプロセスが残っている場合、ロックが取得できず、書き込みに失敗する場合があります。
    ファイルを開いているプロセスはlsofコマンド("lsof"パッケージのインストールが必要)で確認できます。開いているプロセスがある場合はkillしてくみてください。lsofコマンドがインストールされていない、プロセスの強制終了が効かないという場合はOSを再起動してみてください。
  • SE Linuxのラベルがおかしくなっている。
    ls -Z /etc/shadowでラベルを確認してください。CentOS 7での正しいラベルは"system_u:object_r:shadow_t:s0"です。もし、異なっている場合は、restorecon /etc/shadowで修復してください。
  • SE Linuxの設定がおかしくなっている。
    setenforce 0として一時的にPermissiveにしてみてください。(この設定は一時的なもので、再起動すると再びEnforcedになります。本格的に修正するには"/var/log/audit/audit.log"の内容を確認しながら、SE Linuxのルールを追加する等が必要です。)
  • ファイルに書き込み不可の属性が付いている。
    lsattr /etc/shadowとして'i'フラグや'a'フラグが立っていないことを確認してください。立っている場合は、chattr -i /etc/shadowchattr -a /etc/shadowで外してください。(それぞれのコマンドは"e2fsprogs"パッケージのインストールが必要)
  • ファイルが無い。
    バックアップから戻すか、OS再インストール以外に手段はありません。

投稿2019/02/24 03:29

編集2019/02/25 11:42
raccy

総合スコア21735

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mercurius51

2019/02/24 03:41

ご回答ありがとうございます 以下、インラインにて失礼します 何らかのプロセスがロックしている。 useraddやvipwは/etc/shadowをロックしてから書き込みをします。以前のプロセスが残っている場合、ロックが取得できず、書き込みに失敗する場合があります。 ファイルを開いているプロセスはlsofコマンド("lsof"パッケージのインストールが必要)で確認できます。開いているプロセスがある場合はkillしてくみてください。lsofコマンドがインストールされていない、プロセスの強制終了が効かないという場合はOSを再起動してみてください。 →lsofコマンドで確認したところ、対象のファイルをロックしているパッケージは確認できませんでした。 SE Linuxのラベルがおかしくなっている。 ls -Z /etc/shadowでラベルを確認してください。CentOS 7での正しいラベルは"system_u:object_r:shadow_t:s0"です。もし、異なっている場合は、restorecon /etc/shadowで修復してください。 →ラベルを確認すると以下のようになっていました 今回の環境はSELinuxがDisabledだからでしょうか? SE Linuxの設定がおかしくなっている。 setenforce 0として一時的にPermissiveにしてみてください。(この設定は一時的なもので、再起動すると再びEnforcedになります。本格的に修正するには"/var/log/audit/audit.log"の内容を確認しながら、SE Linuxのルールを追加する等が必要です。) →SELinuxはDisabledになっています ファイルに書き込み不可の属性が付いている。 lsattr /etc/shadowとして'i'フラグが立っていないことを確認してください。経っている場合は、chattr -i /etc/shadowで外してください。(それぞれのコマンドは"e2fsprogs"パッケージのインストールが必要) →iフラグは確認できませんでした ファイルが無い。 バックアップから戻すか、OS再インストール以外に手段はありません。 →ファイル自体は存在しています 以下、コマンド実行結果を添付いたします ``` [root@localhost ~]# ls -Z /etc/shadow ---------- root root ? /etc/shadow [root@localhost ~]# restorecon /etc/shadow [root@localhost ~]# ls -Z /etc/shadow ---------- root root ? /etc/shadow [root@localhost ~]# lsattr /etc/shadow -----a---------- /etc/shadow [root@localhost ~]# getenforce Disabled [root@localhost ~]# ```
raccy

2019/02/24 05:15

追加モードのみフラグが立っているみたいです。 chattr -a /etc/shadow としてみてください。
mercurius51

2019/02/25 11:19

コマンドを実行したら無事ユーザ追加ができるようになりました! ありがとうございます。
raccy

2019/02/25 11:42

取りあえず直って良かったです。他の人も参考になるように、回答でも'a'フラグについて言及しておきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問