Linuxのルートディレクトリからスクリプトにアクセスできない


1

私のルートディレクトリの1つにスクリプトがあります:/root/scripts/script1.sh

そのスクリプトを別のユーザー(james1)として呼び出したくないのです。

(rootユーザーとして)次のことを行いました。

root@pc83$ CD scripts
root@pc83$ chown -R james1:user scripts
root@pc83$ CD scripts
root@pc83$ chmods 755 script1.sh

これにより、James 1がスクリプトの所有者になり、scriptsディレクトリに移動し、script1.shのアクセス許可を755に変更して、他の実行を許可しました。

それでも、james1sとして接続し、script1を実行しようとすると。できません。

james1@pc83$ /root/scripts/script.sh

許可拒否エラーが表示されます。どこが間違っているのか教えてください。ありがとう。

Oracle Enterprise Linuxを使用していますが、Ubuntu 10.10で同じ問題を再現しようとしましたが、同じ問題がありました。


「ルートディレクトリ」とは、通常では/なくを意味し/rootます。
トリプリー

回答:


1

james1実行する権限持っているrootフォルダを?にあるファイルに直接アクセスするために必要です/root/


こんにちはグラハム、ルートフォルダーをchownを意味ですか?

いいえ、あなたはする必要がありchmodます。適用されるフィールドjames1(おそらくグループまたはその他)には+xビットが必要です。

いいえ、彼は現在の許可が「その他」の「実行」を許可していることを意味しますか?とにかく、/usr/local/bin代わりにスクリプトをどこかに置き、許可をいじる必要がないようにします/root-それらがいくらかきつい理由があります。
トリプリー

@tripleee Grahamが+ xによって何を意味したのかはわかりませんが、それは私が試みて、働いたアイデアを与えてくれました。「$ chmod + x root」、次に「$ chmod 755ダミー-R」を実行すると、スクリプトを実行できるようになります。ディレクトリ間のすべて(私の場合はルートとスクリプト)にもo + xが必要です。

「+ x」は通常実行ビットと呼ばれますが、ディレクトリ上では「ユーザーがこのディレクトリ内の特定のアイテムにアクセスできるようにする」という特別な意味があります。これは「読み取り」ビットとは異なります。「読み取り」ビットは「ユーザーがこのディレクトリのコンテンツをリストできるようにする」ことを意味し、実行する必要がありますls
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.