回答:
-rwx-wx-wx
権限を持つファイルには、所有者には読み取り/書き込み/実行権限があり、他のすべての人には書き込み/実行(読み取りではない)権限があります。
それは、スクリプト(と通常のテキストファイルだ場合は#!
最初の行に)、それはできません、スクリプトを実行すると、実際にスクリプトを読み込むことができなければなりませんインタプリタを実行するので、他の人によって実行されます。(インタープリターは別のスクリプトではなく、バイナリーでなければなりません。)(実際、すべてのシステムに当てはまるわけではありません。3.2.0Linuxカーネルを備えたUbuntuでは、インタープリター自体をインタープリタースクリプトにすることができます。制限があるようです。約4レベルです。これは、この質問には関係ない可能性があります。)
バイナリ実行可能ファイルの場合、直接実行できますが、その内容を読み取ることはできません。これは、たとえば、所有者以外の誰かがそれをコマンドとして実行することはできても、実行可能ファイルのコピーを取得できないことを意味します。
もちろん、実行には読み取りが必要ですが、ユーザーではなくカーネルによって読み取られます。実行中のプロセスのメモリを調べることにより、実行可能ファイルの内容に関するいくつかの情報を取得できる場合がありますが、バイナリ実行可能ファイルを再構築できるとは思えません。実行可能ファイルがsetuidの場合、プロセスのメモリを調べることはできません(実行しているアカウントにアクセスできない場合)。
ちなみに、-rwx-wx-wx
は非常に奇妙な権限のセットです。所有者以外のユーザーがファイルを読み取れないように保護しますが、誰でもファイルを変更できます。それが理にかなっているとは思えない。
chmod 111 hello ; gdb ./hello
と言う:言う./hello: Permission denied.
; r
言うNo executable file specified.
これらの権限がある場合、ファイルの所有者だけが実行できます。
他のユーザーはそれに書き込むことはできますが、実行することはできません(この場合の実行はそれを読み取ることができることを意味するため)が、一種のブラックボックスとして書き込むことができます。
user1:~$ cd /tmp
user1:/tmp$ echo "hostname" > testfile.sh
user1:/tmp$ chmod +x testfile.sh
user1:/tmp$ ./testfile.sh
server.example.com
user1:/tmp$ chmod 733 testfile.sh
user1:/tmp$ ls -l testfile.sh
-rwx-wx-wx 1 user1 user1 9 Jan 19 21:09 testfile.sh
user1:/tmp$ sudo su - user2
user2:~$ cd /tmp
user2:/tmp$ ./testfile.sh
./testfile.sh: Permission denied
user2:/tmp$ cat testfile.sh
cat: testfile.sh: Permission denied
user2:/tmp$ echo 'echo hello' >> testfile.sh
user2:/tmp$ ./testfile.sh
./testfile.sh: Permission denied
user2:/tmp$ logout
user1:/tmp$ ./testfile.sh
server.example.com
hello