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

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

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

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Linux

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

Debian

Debianは、Debian GNU/Linux などのOS(オペレーティングシステム)です。

Q&A

解決済

2回答

2026閲覧

Linuxでsuが実行できない

ma-yu

総合スコア57

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Linux

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

Debian

Debianは、Debian GNU/Linux などのOS(オペレーティングシステム)です。

0グッド

1クリップ

投稿2018/07/25 02:08

前提・実現したいこと

linux機器にSSHでログインし、root権限にあがりたい(wheelユーザーに登録したい)
若しくはsudoでコマンドを実行したい

発生している問題・エラーメッセージ

suコマンドを実行すると、下記のエラーが出力される

su: cannnot set groups:Operation not permitted

補足情報(FW/ツールのバージョンなど)

・Debian系linux
・/etc/pam.d/su は存在しない(/etc/pam.dまでは存在する)
・visudoは実行できない

参考にした資料
http://hnakamur.blogspot.com/2008/12/debianwheel.html
https://www.softel.co.jp/blogs/tech/archives/3016

お手数ですが御教授お願いします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

レスキューモードに入ってsudoコマンドを復旧させるのが一つの手段として考えられますが、
可能であれば再インストールするのが早いかもしれません。
(その他の致命的な問題が発生している可能性が考えられます)

投稿2018/07/25 02:16

zvub1123

総合スコア230

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

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

ma-yu

2018/07/25 04:11

ご回答ありがとうございます。 組込み機器を使用しており、環境の再現が可能か分からないため再インストールは避けたいと思っています。
zvub1123

2018/07/25 04:53

su コマンドのパーミッションですが、どうなっていますか?
ma-yu

2018/07/25 08:21

勉強不足で申し訳ないのですが、コマンドのパーミッションの確認方法が分かりません。 御教授いただけないでしょうか。
zvub1123

2018/07/25 09:40

"$ which su" を実行すると su コマンドのあるファイルパス (/usr/bin/su とか) が見られるので、 そのパスに対して "$ ls -l <パス名>" を実行することで、 コマンドのパーミッションが確認できるはずです。
ma-yu

2018/07/30 05:02

お返事遅くなりすみません。 /binの中にsuを確認できました。 ls -l で |rwxrwxrwx 1 1000 1000 su -> tinylogin が確認できました。 どのユーザーでも書き換える権限があるという意味でしょうか?
zvub1123

2018/07/31 00:09

この場合、ユーザIDが「1000」のユーザと、グループIDが「1000」のユーザが "su" コマンドを所有していることになります。が、読み/書き/実行権限が user, group, other の全てに付いているので、おっしゃる通り、どのユーザでも書き換えは可能なはずです。 kazto さんとのやりとりも拝見させていただきましたが、同じく少し特殊な環境だと思うので、通常の対処方法では対応できないような気もしています。 ちなみにですが、sudo <実行したいコマンド> を実行した際も、 cannnot set groups:Operation not permitted が出力されるのでしょうか。
ma-yu

2018/07/31 01:49

ご回答ありがとうございます。 sudo を実行すると、sudo:not found が返ってきます。 suコマンドを一般ユーザが使用する逃げ道があれば良いのですが...
zvub1123

2018/07/31 02:30

調べてみましたが、arago inux では sudo コマンドが実行できないそうですね↓ https://e2e.ti.com/support/arm/sitara_arm/f/791/p/635075/2364396 sudo を使えるようにするにはビルドする必要があり、ビルドするには https://e2e.ti.com/support/embedded/linux/f/354/p/472168/1698699#1698699 の手順が有効らしいです。 こちらの環境では検証できないので、確実だとは言えませんが、git コマンドなどが正常に動作していれば可能ではないでしょうか。
ma-yu

2018/07/31 02:56

検索までしていただきありがとうございます。 しかし残念ながら、諸事情により再ビルドなどの大きく環境が変化するおそれのあることはできません。 sudo が使えるようになったとしても、現状のsu 実行時と同じく cannnot set groups:Operation not permitted となるのではないかと思っています。 wheelグループという概念がないのでは?と思っています。 gitコマンドは not found となってしまいました。
zvub1123

2018/07/31 03:32

なるほど。。 ビルドができないとなると、kazto さんの仰るように 「/etc/groupを編集して、当該の一般ユーザをrootグループに追加する」という手段くらいしか 提示できないですが、それでダメなら成すすべが無いかもしれないですね。。。
ma-yu

2018/07/31 04:06

rootグループに追加してしまうと、実装時のsshd_configの設定"PermitRootLogin:no"によりログインができなくなります。 現在の開発環境では"PermitRootLogin:yes"でroot権限のログインが可能なのですが、実装時にはroot権限をもつ者が直接ログインできないようにするためです。 たくさんお調べいただいたのに申し訳ないです。
zvub1123

2018/07/31 05:03 編集

[実装時]というのは、本番環境という意味合いで認識して良いですか? 開発環境の設定を変更して本番リリースするという場合なら、 /etc/sudoers を編集して、該当の一般ユーザのみ sudo コマンドの実行権限を付与すれば良いと思います。 しかし、先述の通り、 ・sudo コマンドはデフォルトでは arago linux で動作しておらず、 ・sudo を実行するにはビルドする必要があるが環境上それはできない ということなので、 「sudo権限を使って実行したいコマンドの所有グループに、該当の一般ユーザを所属させる」 が回避策かと考えられます。 最終版(?)の root ログインが最初から no になっているという事でしたら、sudo権限でのコマンド実行を行う方法は無いかと思います。
ma-yu

2018/08/03 08:24

表現が悪く申し訳ないです。実装時の認識は合っています。 仰るとおり、他の方法を探すしかないようです。 どうもありがとうございました。
guest

0

それは、単に貴方がルート権限を持つのを許されていないだけではないでしょうか。
まずはルート権限をお持ちの方に申請するところから、でしょうか。

次に、業務内で突然マシンを割り振られてなんとかして、と言われてお困りの場合。
再起動して、シングルユーザでログインし、visudoでお望みのユーザに権限を与えれば、可能です。


内容追記

エラーメッセージで検索したところ、「chmod u+s /bin/su」しろ、という内容を見つけました。お役にたてますでしょうか。


さらに追記

/etc/groupファイルをエディタで書き換えます。hogeユーザをwheelグループに追加する例です。

Diff

1-wheel:x:10 2+wheel:x:10:hoge

投稿2018/07/25 02:16

編集2018/07/30 06:19
kazto

総合スコア7196

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

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

ma-yu

2018/07/25 04:13

ご回答ありがとうございます。 rootでログインは可能ですが、一般ユーザーでログインした際にsudoが実行できないという状況です。 root権限でログインしvisudoコマンドを発行しましたが実行できないようです。
kazto

2018/07/25 04:17

apt-get install sudo でインストールしたにもかかわらず、visudoがcommand not foundになる、ということでしょうか?
ma-yu

2018/07/25 08:20

インターネットに接続できない組込み機器でして、apt-getができません。 一般ユーザーをwheelグループに追加したい場合にも、sudoのインストールが必要になるのでしょうか。
kazto

2018/07/25 08:35

純粋なDebianじゃないんですね。だとすると、その組み込み機器のベンダがsudoパッケージを用意していない限り、sudoやvisudoは使えないのは道理です。 そのような特殊な環境であれば、ベンダが用意したマニュアルなどがあるのがふつうだと思いますが、いかがでしょうか。 また「一般ユーザーをwheelグループに追加」だけであれば、rootでログイン後「usermod -G wheel <ユーザ名>」だけでいけるはずです。
ma-yu

2018/07/25 09:22

ありがとうございます。 データシートでsudo等を探してみます。 usermodコマンド、試してみましたがusermod:not found が帰ってきました。
archiver

2018/07/25 13:06

横から失礼しますよ。 viのようなテキストエディタは使えますでしょうか? (っていうか、インストールされていますか?)
ma-yu

2018/07/30 05:04

見ていただきありがとうございます。 viは使用可能です。 vi su で開くと文字化けしてしまいます。
ma-yu

2018/07/30 06:09

kazto様 su コマンドは実行できています。パスワードを入力しろとの旨のメッセージが表示され、パスワードを入力すると下記エラーが出力されます。 su: cannnot set groups:Operation not permitted 一般ユーザをwheelグループに追加したいのですが、usermodコマンドに対応していないようです。
kazto

2018/07/30 06:17

viコマンドはあるとのことで、usermodコマンドの代わりに、/etc/group ファイルを直接viで書き換えましょう。
ma-yu

2018/07/30 06:40

/etc/groupの中にwheelが存在していませんでした。 名称が違うのでしょうか? 尚、wheelグループに追加したい一般ユーザーは hoge:x:501: のように存在していました。
ma-yu

2018/07/30 07:00 編集

wheelグループが無いなら作れ、との記事を見つけました。 https://kawairi.jp/weblog/vita/2016040220277 しかし、肝心の/etc/pam.d/suが存在しません。 まずpam.dの下にsuを追加すべきだと思うのですが、方法が分かりません。 ご教授いただけないでしょうか?
kazto

2018/07/30 07:18

おそらく特殊な環境であるため、pamの仕組みは通用しないと思います。記事は参考になりません。 wheelが無い場合、rootグループに追加するんでしょうかねぇ。。。 試してみるしかないかなと思います。
ma-yu

2018/07/31 01:46

ありがとうございます。 arago linuxであると分かりました。 rootグループに追加するとなると、SSHログインの際に"PermitRootLogin:no"ではじかれてしまいます。 一般ユーザとしてログイン後、suコマンドを使用するのが今回の目的でしたが、難しそうです。
kazto

2018/07/31 02:54

前とおっしゃってることが違うように思います。 rootでのログインはできるのではなかったでしょうか。(sshで、ではなく。) そのうえで、/etc/groupを編集して、当該の一般ユーザをrootグループに追加するわけです。
ma-yu

2018/07/31 04:03

説明不足お詫び申し上げます。 最終目的は、一般ユーザーでSSHログインをし、そこで幾つかのsuコマンドを実行することです。 このときのsshd_configは"PermitRootLogin:no"になります。 当初はログインした一般ユーザーをwheelグループに登録し、suコマンドを実行しようと考えていました。 調査不足でそれができず、現在に至ります。 現在、デバッグ用に"PermitRootLogin:yes"としており、rootでログインが可能です。 最終版にこれは実装されません。 実装時には"PermitRootLogin:no"としますので、wheelグループやsuなどが実行したかった次第です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問