- ベストアンサー
root権限の実行コマンドを通常ユーザーで実行
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> 今回やろうと思ってるのは、suでログインしてから、いくつかの操作を行いたいので であれば、そのいくつかの操作をまとめてシェルスクリプトにして、 それを su の -c に渡せば良いですね。 例えば、rally というユーザで、シェルスクリプト名が do_rally.sh とします。 スクリプトに実行権限がついていなければ % su - rally -c "sh do_rally.sh" という感じ。実行権限がついていれば % su - rally -c do_rally.sh で良いです。 ただ、最低一回はパスワードの入力があるので、su を使っている限りは それからは逃れられません。 # ちょっと遅くなったので、もう sudo を使っているかな?
その他の回答 (1)
- a-kuma
- ベストアンサー率50% (1122/2211)
ひとつの方法は、su の man を詳しく見てみることです。 例えば、GNU の su には、-c というオプションがあり、コマンドを指定できます。 例えば、 % su -c ls - で、root 権限で ls を実行できます。 もうひとつの方法は sudo というプログラムを使うこと。参考URLに紹介して おきます。 もし、あなたが C 言語と、システムコールについてそこそこ詳しいのであれば、 プログラムを作るのは、さして難しいことではありません。setuid という 関数のマニュアルを読んでみてください。
補足
suコマンドにそういうオプションがあったのですね。 manをちゃんと見る癖をつけないとだめですね~。 今回やろうと思ってるのは、suでログインしてから、いくつかの操作を行いたいので、su -cでは難しそうです。 1行ごとにpasswdを入力する必要がありますよね? そういう場合はsudoになるのでしょうか? この方向でも考えてみます。
関連するQ&A
- 別ユーザでのコマンド実行(root権限)のやり方を教えて下さい
現在、Solaris9でroot権限のコマンドを実行したいのですが、いちいちroot権限になってからコマンドを実行するのが面倒です。 ex) aaaユーザでrebootを実行したい。 出来るならaaaユーザにはスーパーユーザのパスワードを教えたくない 一応、「sudo」というコマンドを使用すれば出来ると分かったのですが、現在の環境ではsudoコマンドはありませんでした。 別の方法で出来るかどうか教えて頂けないでしょうか。 すみませんが、回答よろしくお願いします。 環境: OS:Solaris9
- ベストアンサー
- Solaris系OS
- Linux CentOS shellスクリプト内でユーザーをスイッチする方法教えて下さい。
困っています。ご存知の方教えて下さい。 一般ユーザーでshellスクリプトを実行して、root権限にスイッチして、root権限のみに許されたコマンドを実行してから、 一般ユーザーに戻る方法がわかりません。 ターミナルで sudo su コマンドを実行すると、対話式でパスワードを入力できますが、スクリプト内で対話式のパスワードを入力してrootに ユーザーをスイッチする方法がわかりません。 ------------ !#/bin/sh mkdir /home/user1/tmp ←一般ユーザーで実行したいコマンド sudo su ←ここでパスーワード入力して rootに権限スイッチ mkdir /var/log/aaa ←root権限で実行したいコマンド su user1 touch /home/user1/bbb ← 一般ユーザーに戻ってコマンド実行 ------------ 環境:CentOS5 お願いします。
- 締切済み
- Linux系OS
- ユーザー権限でログインするとsuでもフルパスコマンド?
root権限でifconfigとすると実行されますが、普通のユーザー権限で一旦suでroot権限になっても、ifconfigとすると -bash: ifconfig: command not foundとなります。 いちいち/sbin/ifconfigとしなければいけないので不便です。 コマンドごとにどのディレクトリにあるか知っていないと使えないし、whichコマンドも効かないので困っています。 何か良い方法はありますか? suにしてroot権限
- ベストアンサー
- Linux系OS
- 【コマンド】root権限 のコマンドを教えて下さい
いつもお世話になっております。 この度、皆様に教えて頂きたい事象が発生しました。 内容は以下の1点です。 現在Linux上にデータベース(MySQL)があります。 通常MySQLの操作を行うには (1)rootユーザ (2)一般ユーザ (3)匿名ユーザ 等でログインして操作を行うかと思われます。 しかし、ここであえてMySQLでのユーザで操作するのではなくOS上のユーザ(root)で操作することは可能でしょうか? 教えて頂きたいことをまとめると 【質問】 Linuxにログインする際のユーザ(OSのrootユーザ権限)でMySQLのエクスポートやインポートを行うことは可能かどうか? *補足 MySQLのrootのPWを忘れたからこういうことをやりたいのか? ⇒ いいえ、違います。PWを忘れた際の対処法は知っております。 単純に、Linux(OS)全体を扱っているrootユーザ権限で、データベースをいじれるかどうか(エクスポート、インポートが可能か)を知りたいのです。 サーバ系の知識が豊富な玄人の方々、アドバイス等頂けましたら幸いです。 *無理という回答でも結構です。 できるか、できないかが知りたいのです。 よろしくお願い致します。 以上
- 締切済み
- MySQL
- シェルの実行中にユーザ切り替えてコマンド実行
はじめまして。 シェル初心者です。 shell.shをrootユーザでクーロン実行していますが、 shell.shの処理の中で、違うユーザでコマンド実行したいのですが、 可能かどうかも、方法が分かりません。 教えていただけないでしょうか。 環境はLinuxです。 下記のコマンドを実行したいです。 リモートでログインしてコマンド実行結果を取得する ssh -l tomcat server_tomcat grep test /tmp/test.log ※他のユーザでsshを実行してコマンド結果を取得したいです。 以上。宜しくお願い致します。
- ベストアンサー
- Linux系OS
- sudoの設定方法について
こちらで質問させて頂きながらシェルスクリプトの勉強をしています。 sudoの記載について、いろいろと試したのですがうまくいきません。 アドバイスお願いいたします。 ◆やりたい事 ・非ルートでログイン時、Shell.shをroot権限で実行したい ・Shell.shからは、他シェルスクリプトが呼ばれる ※他シェルスクリプトもroot権限が必要 ◆現状 ・sudoers ファイルに user1 ALL=(ALL) ALL と記載するとうまくいくが、 user1 ALL=(ALL) /フルパス/Shell.sh とすると権限がないと言われる ◆質問 Shell.shがroot権限で実行できれば、Shell.shから呼ばれるシェルスクリプトも root権限になる認識なのですが、間違っているのでしょうか?
- ベストアンサー
- Linux系OS
- シェルスクリプトで一時的にルート権限として実行
Linuxのシェルスクリプトでそのスクリプトファイルを実行したユーザーにかかわらずそのスクリプト内のコマンドがルート権限として実行されるようにしたいのですが良い方法はありますか? ルートのパスワードを入力せずに一時的にルート権限を使用できるようにしたいのです。 やりたいことは screenでルートユーザでしかアタッチできないプロセスに一時的にアタッチしてコマンドを実行してデタッチするということなのですが… screenにはマルチユーザー機能が在るようで、それはscreenでルートがアタッチしてる場合のみですよね? 間違っていたらすみません。 OSはCentOS 6.2です。 必要な情報があれば補足で追加致します。 宜しくお願いします。
- ベストアンサー
- Linux系OS
- Linux root権限を持つユーザの作成について
どなたかご存知であれば教えてください。 Linux のsles10sp3にて、root権限を持つユーザーを以下で作成。 #useradd -o -u 0 -g 111 ~ 特に問題なく利用できていました。 しかし、Linuxのsles11sp3で同様にroot権限を持つユーザーを作成したところ おかしな事象が発生するようになりました。 事象はroot権限を持つユーザーを仮にadminという名前で作成したとします。 そのadminでLinuxへログインしてidコマンドを実行すると uid 0:root → uid 0:admin と表示されるようになり、ファイルのオーナーがrootだったものが一律adminで変わってしまうという事象が発生しました。 そのときは大いに焦りましたが約1時間放置するとなぜか元に戻ります。 suseのバージョンがあがってLinuxのユーザー管理で仕様が変更されておりますでしょうか? どなたかご存知でしたらご教授頂きたく、よろしくお願い致します。
- 締切済み
- Linux系OS
- GUIでのroot権限取得について
su- コマンドで一般ユーザから管理者権限を得るような処理は、GUI環境においても行うことができるのでしょうか? ▼一般ユーザでログインした後、コマンドではなくGUIでディレクトリを開くことを想定しています。 例えば、一般ユーザが、varディレクトリのspoolディレクトリの中にあるcronディレクトリをクリックすると、 「フォルダの内容を表示できませんでした。"cron"の内容を表示するために必要な権限がありません」とエラーが表示されてしまいます。 この際、コマンドでのsu-みたいな処理を、GUI上で行いうことにより、エラーを回避して中身を確認することは出来るのでしょうか? それとも、GUIで権利者権限ディレクトリの中身を確認したい場合は、大人しく再起動して、rootでログインするしかないのでしょうか?
- ベストアンサー
- Linux系OS
- LinuxでGUIでsuできませんか?
LinuxでGUIでsuできませんか? どういう事かというと、 CUIベースで作業する際には su - してルートの作業が出来ます。 これと同じ事をGUIベースでできないかという事です。 例えば 設定ファイルの書換などは $ su - でrootユーザでホームディレクトリへ 後はrootでログインしたのと同じなのでroot権限のファイルも触れます。 $ vi root-file またはコマンド起動時に一回一回スイッチ $ sudo vi root-file これをGNOME上のGUI操作でできませんか? su - みたいな何かで、rootアカウントとしてrootのデスクトップへ 後はrootでログインしたのと同じなので、「ファイル」アイコンからディレクトリを手繰ってroot権限のファイルも触れる。 rootログインを許可して、一旦ログアウトして、rootでログインとかではなく、 一旦、一般ユーザでログインしてrootにスイッチってできませんか? コマンド起動時に一回一回スイッチの場合、 sudo gedit みたいな事をコマンドからではなく、マウスクリック起動で、Windowsの右クリックからの「管理者として実行」みたいな感じで実行ってできませんか? 「アカウント毎スイッチ」「rootとして実行」それぞれ出来るかできないか、あるいはこのディストリでこれが出来るとか教えて下さい。
- ベストアンサー
- Linux系OS
お礼
> % su - rally -c "sh do_rally.sh" あ、これいいですね。 > # ちょっと遅くなったので、もう sudo を使っているかな? sudoはちょっと難しかったので、"su root"でログインしてからshellを実行するようにしてました。 そのshellでは、root以外のユーザーで実行したいプログラムもあったので、下のように書いてました。 su rallyx -c "runAAA" 1.su rootでroot権限を得る。 2.シェルを実行する。 という2つの処理をa-kumaさんの方法だと1つで済みますね。 #なんで気づかなかったんだろう・・・。(^^; ありがとうございました。