• 締切済み
  • 困ってます

一般ユーザログイン時実行権限無くなった

SSHでログインして、下記エラー発生しました: Last login: Thu Jan 14 11:19:50 2010 from XXXX -bash: /usr/bin/id: Permission denied -bash: [: =: unary operator expected -bash: id: command not found -bash: id: command not found 色々調べて、/etc/bashrcにのIF文ところで上記エラー発生しております。 if [ $UID -gt 99 ] && [ "`id -gn`" = "`id -un`" ]; then umask 002 else umask 022 fi でも、どうやって直すのは、なかなか分かりませんでした。 でも、rootユーザ場合は、エラーが出ませんです。 ちなみに、使ってのOSはCentOS5.4です。 この問題ご存知の方いらっしゃいましたら、教えていただけませんか?

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

  • 回答数1
  • 閲覧数113
  • ありがとう数3

みんなの回答

  • 回答No.1
  • entree
  • ベストアンサー率55% (405/735)

もし UID が空っぽであったら if [ -gt 99 ] && ... となり、構文エラーになりますよね? UID=${UID:-`id -un`} GID=${GID:-`id -gn`} if [ "$UID" -gt 99 ] && [ "$UID" = "$GID" ]; then とするのはどうですか?

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

質問者からのお礼

entreeさん お回答有難うございます。 実はこの問題を原因分かりました。 /usr/フォルダに対して、アクセス権限設定不正のです。 エラー発生時のアクセス権限は drwxr----- 17 root root 4096 1月 13 17:06 usr #chmod 755 -R /usrで下記ようにすると drwxr-xr-x 17 root root 4096 1月 13 17:06 usr 問題を解決しました。 今後もうよろしくお願いします。

関連するQ&A

  • ログイン時にエラーメッセージが出ます。

    redhatlinux(2.4.18-14)で、telnetでログイン時に以下のようなメッセージが出るようになってしまいました。 ************************* -bash: id: command not found -bash: [: =: unary operator expected -bash: id: command not found -bash: dircolors: command not found -bash: id: command not found -bash: id: command not found -bash: id: command not found -bash: [: too many arguments ************************* そもそも、昨日boot中に誤って電源を落としたことが影響しているような気がします。が、なぜかパスが通っていないため、manページも見られませんし、viも使えない状況です。こういう場合どうすればよいのでしょうか? 初歩的な質問かと思いますが、よろしくお願いします。

  • CentOSでアップデート中に再起動してエラー発生

    現在CentOS5を使用しているのですがアップデート途中に再起動をしてしまった為、起動中にエラーが発生して止まってしまいます。 復旧方法があれば教えて頂きたいのですが・・・エラーの内容は bash: dircolors: command not found bash: /usr/bin/id: No such file or directory bash: [: =: unary operator expected bash: /usr/bin/id: No such file or directory bash: [: =: unary operator expected bash: /usr/bin/pkg-config: No such file or directory と表示されます、宜しく御願いします。

  • ユーザー権限でログインするとsuでもフルパスコマンド?

    root権限でifconfigとすると実行されますが、普通のユーザー権限で一旦suでroot権限になっても、ifconfigとすると -bash: ifconfig: command not foundとなります。 いちいち/sbin/ifconfigとしなければいけないので不便です。 コマンドごとにどのディレクトリにあるか知っていないと使えないし、whichコマンドも効かないので困っています。 何か良い方法はありますか? suにしてroot権限

  • ifortは通るのですが実行できません.

    プログラム初心者のものです. Fortranで, ifort **.f はうまくいくのですが, a.out を実行すると, -bash:a.out:command not found と,エラー文が出てしまいます. どのような対処をとれば良いのかがわからず困っています. お願い致します.

  • /sbin/を省略するには?

    お世話になります。 [take@localhost take]$ ifconfig だと bash: ifconfig: command not found とでるんですけど [take@localhost take]$ /sbin/ifconfig だときちんと出力されます。 前にrootでログインしたときは ifconfigだけでちゃんと出力されたはずなので suでrootになってrootディレクトリでifconfigとうってみてもやはりbash: ifconfig: command not found とでてきちんと認識されないみたいなんです。 これは何故なんでしょう? 教えてください。よろしくお願いいたします。

  • シェルスクリプトの実行、「source」と「.」の違いについて

    bashのシェルスクリプトを書いています。 当方、Mac Snow Leopard を使っているため、seq コマンドがデフォルトでは使えません。 そこで、.bashrc 内に、seq 関数をあらかじめ自分で定義して、他で使い回したいと思っています。 .bashrc の中に、 function seq() { i=$1 while [ $i -le $2 ] ; do echo $i let i=$i+1 done } と、関数を定義しました。 seq 関数をターミナル上で実行すると、 >seq 0 2 0 1 2 と正しく、表示されます。次に、 #!/bin/sh seq 0 2 と記述したシェルスクリプト(temp.sh)を「source」で実行すると、 >source temp.sh 0 1 2 と正しく、表示されますが、「.」で実行すると、 >./temp.sh ./temp.sh: line 2: seq: command not found と言われます。 どのような理由によってこの違いが出るのでしょうか??

  • ~/.bashrcを間違えて保存してしまいました

    linux初心者です。ubuntu使ってます。 あるソフトをインストールしている最中だったんですが、 suになった後、PATHを通そうと ~/.bashrcに export PATH=/usr/local/○○:$PATH と書こうとしたところ、 export PATH=/usr/local/○○:$PAT としてしまい、そのまま保存してsource .bashrcと打ってしまいました。 その後emacsもlsも、コマンドがうてなくなり、 bash: emacs: command not found と出てしまいます。 どうすれば戻せますでしょうか? お願いします。

  • cronでとても困っています どなたかご教授いただけないでしょうか

    cronの設定でpersonユーザーで動くように設定したいのですが、動いてくれません なにか設定がおかしいのでしょうか ↓crontabの内容です # DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/crontab.4208 installed on Thu Jan 25 12:14:20 2007) # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ 15 12 * * * person /home/test/bin/test.sh rootに送られてくるエラーメッセージです /bin/bash: line 1: person : command not found ご教授いただけたら幸いです 何卒宜しくお願いいたします

  • CentOS7で、httpdをインストール

    CentOS7で、httpdをインストールしようと「yum -y install httpd」というコマンドを実行したところ、画像のようなエラーが出ました。 調べてみて、yumが外に出てないことが理由かもしれないという気もするのですが、どうすれば解決できるか教えてください。 なお、ifconfigなどのコマンドも、「-bash: ifconfig: command not found」と出て、実行できません。

  • linuxでaliasをbashrcに記載してsh

    linuxでaliasをbashrc(bashrcでなくともログイン時に読み込まれるprofile)に記載してあるコマンドを設定したいのですが、これが上手くいきません。 やりたいことは、bashrcで設定したコマンド内容をshスクリプトで実行したいのですが、これはどうやれば出来るのでしょうか? 以下に.bashrcの内容とshスクリプトの内容を記載します。 .bashrcの内容 # .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi alias log='tail -f /var/log/messages' test01.shの内容 #! /bin/bash log 実行すると ./test01.sh: line 2: log: command not found となってしまいます。 ちなみに、shの中ではなく、ログイン後にコマンド(log)だけプロンプトに打つとちゃんとtail -f /var/log/messagesの内容が出力されます。 shの作りが悪いのでしょうか? どなたかご教授いただけますとありがたいです。 osはlinux redhat5.4です。 どうぞよろしくお願いいたします。