ディレクトリにのみlsを許可する

ディレクトリにのみlsを許可する

自分のグループに属していないすべてのユーザーがフォルダに対してls操作のみを実行できるように、フォルダの権限をどのように設定しますか? - とrの違いを理解していません。

答え1

重要なフラグはディレクトリの「実行」フラグであり、実際にはディレクトリの「検索可能」フラグです。設定しないと、パスにディレクトリを使用できません。したがって、1)ディレクトリにCDを挿入できず、2)ディレクトリにあるファイルを使用できません。

ディレクトリとファイルでテストritgを設定しましょう。

>>mkdir listonly
>>touch listonly/uselessfile

これまではそのように良かった:

>>ls listonly/
uselessfile

ディレクトリの実行可能フラグを変更します。

>>chmod -x listonly

これ以上CDを介してアクセスできなくなりました。

>>cd listonly
bash: cd: listonly: Permission denied

ファイルは、以下を使用すると表示できますls

>>ls listonly/
uselessfile

しかし、多くの場合、lsエイリアスを使用すると、各ファイルのメタデータ(フラグ、タイムスタンプ、サイズなど)を確認する必要があるいくつかのオプションが追加されますが、パスにディレクトリが必要なので、これを行うことはできません)ls --color=auto'。したがって、通常の形式を使用する必要がありますls。それ以外の場合、見苦しいエラーのあるファイルが表示されます。

>>ls listonly/
ls: cannot access 'listonly/uselessfile': Permission denied
uselessfile

ファイルブラウザは通常、作業ディレクトリをターゲットディレクトリに変更してコンテンツを一覧表示するため、GUIインターフェイスでは正しく機能しない可能性があります。

答え2

例:

#change current directory to /tmp/
vodka@vodka-PC:~$ cd /tmp/

#create my_folder directory in tmp
vodka@vodka-PC:/tmp$ mkdir my_folder

#chnage directory permissions to 775 
(all people can show dir content and make cd, 
but can not remove or create new files)
vodka@vodka-PC:/tmp$ chmod 775 my_folder/

#check permissions
vodka@vodka-PC:/tmp$ ls -ld my_folder
drwxrwxr-x 2 vodka vodka 4096 окт 20 11:26 my_folder

#create new test file
nano ./my_folder/test_file.txt

#chage file permission to 770 (only owner and member of groups can show file content and modify it)
vodka@vodka-PC:/tmp$ chmod 770 ./my_folder/test_file.txt

#test it. Switch to postgres user and show dir content. We see files in directory
vodka@vodka-PC:/tmp$ sudo su - postgres
postgres@vodka-PC:~$ ls -l /tmp/my_folder/
-rwxrwx--- 1 vodka vodka 4 окт 20 11:27 test_file.txt
#try to show file content, remove or create new files in dir
cat: /tmp/my_folder/test_file.txt: Permission denied
postgres@vodka-PC:~$ >/tmp/my_folder/test_file_2.txt
-bash: /tmp/my_folder/test_file_2.txt: Permission denied
postgres@vodka-PC:~$ rm /tmp/my_folder/test_file.txt
rm: remove write-protected regular file '/tmp/my_folder/test_file.txt'? y
rm: cannot remove '/tmp/my_folder/test_file.txt': Permission denied

したがって、他のユーザーはファイルのリストのみを表示できます。

関連情報