ディレクトリ/data
と3人のユーザー(user1、user2、user3)があります。
各ユーザーにはフォルダがあります。/data
[root@localhost ~]# ls -lrt /data
total 64
drwx------. 2 root root 16384 May 19 2017 lost+found
drwx------. 2 user1 user1 4096 Jun 7 2017 user1
drwx------. 3 user2 user2 4096 Jun 12 2017 user2
drwx------. 2 user3 user3 4096 Jul 16 2017 user3
user1がログインして任意のftp / sftpソフトウェアを介してログインするときは、「user1」ディレクトリのみを一覧表示でき、残りのディレクトリは表示されないように権限を設定するにはどうすればよいですcd
か? 。/data
ls -lrt
winscp
例えば。次のようにする必要があります
[user1@localhost ~]$ ls -lrt /data
total ??
drwx------. 2 user1 user1 4096 Jun 7 2017 user1
[user1@localhost ~]$
答え1
それは不可能です。ただし、/dataに対する他のユーザーの権限を--xに設定すると、そのユーザーは(盲目的に)自分のディレクトリにのみCDを入力でき、/dataの内容はまったく表示されません。
# chmod 771 /data
答え2
これは、既存のモード権限を使用するUnixでは不可能です。その理由は、その内容を読み取るにはディレクトリに対する読み取り権限が必要なためです。
はい
このsu
コマンドを使用して理由を説明します。私はuser1、user2、user3という3つのユーザーアカウントを設定しました。
$ su -c 'whoami' user1
user1
$ su -c 'whoami' user2
user2
$ su -c 'whoami' user3
user3
これは私のディレクトリ構造です。
$ mkdir -p /data/user{1..3}
$ for i in {1..3};do chown user${i}:user${i} /data/user${i};done
$ ls -l /data/
total 12
drwxr-xr-x 2 user1 user1 4096 Jun 30 11:35 user1
drwxr-xr-x 2 user2 user2 4096 Jun 30 11:35 user2
drwxr-xr-x 2 user3 user3 4096 Jun 30 11:35 user3
どのユーザーも読めないように権限を設定すると、/data
どのユーザーも実行できませんls -l /data
。
$ chmod 750 /data
$ su -c 'ls -l /data' user1
ls: cannot open directory /data/: Permission denied
所有者(root)またはグループ(root)以外のユーザーを許可するには、r-x
すべての人に権限を有効にする必要があります(追加の権限など)。
権限のみを有効にすると、r--
ユーザーはディレクトリの特定の側面を一覧表示できますが、ディレクトリ内のコンテンツなどの権限は取得できません。
$ chmod 754 /data
$ su -c 'ls -l /data/' user1
ls: cannot access /data/user3: Permission denied
ls: cannot access /data/user2: Permission denied
ls: cannot access /data/user1: Permission denied
total 0
d????????? ? ? ? ? ? user1
d????????? ? ? ? ? ? user2
d????????? ? ? ? ? ? user3
ユーザーに実行権限のみを付与しようとすると、その--x
ユーザーはサブディレクトリにアクセスできますが、/data
コンテンツリストを実行することはできません/data
。
$ chmod 755 /data
$ su -c 'ls -l /data/' user1
total 12
drwxr-xr-x 2 user1 user1 4096 Jun 30 11:35 user1
drwxr-xr-x 2 user2 user2 4096 Jun 30 11:35 user2
drwxr-xr-x 2 user3 user3 4096 Jun 30 11:35 user3
ACLはどうですか?
ここでアクセス制御リスト(ACL)を使用できますか?この問題を見てみると、良いことができないと思います。
ここでは、権限を750にリセットし、/data
user1のACLを/data
orに追加します--x
。
$ chmod 750 /data
$ setfacl -m u:user1:x /data
$ ls -ld /data
drwxr-x---+ 5 root root 4096 Jun 30 11:35 /data
user1ユーザーはアクセスできなくなりました/data
。
$ su -c 'ls -l /data' user1
ls: cannot open directory /data: Permission denied
ただし、サブディレクトリはまだ表示されます/data/user1
。
$ su -c 'ls -l /data/user1' user1
total 0
権限に与える影響は次のとおりですsetfacl
。
$ getfacl /data
# file: data
# owner: root
# group: root
user::rwx
user:user1:--x
group::r-x
mask::r-x
other::---
質問がありますか?
問題は、リストされたディレクトリの内容にアクセスするには、デフォルトで/data
ユーザーにr--
アクセス権が必要であることです。このうち「一部」を指定することはできません。 Unixモード特権の世界では、これがすべてでなければ専務です。