自分のグループに属していないすべてのユーザーがフォルダに対して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
したがって、他のユーザーはファイルのリストのみを表示できます。