web-dev-qa-db-ja.com

ファイル/フォルダーのアクセス許可にドット再帰を追加する方法

権限のあるファイルの例

-rwxr-xr-x. 1 root root  659 Jan  4  2018 zookeeper-server-initialize
-rwxr-xr-x. 1 root root  649 Jan  4  2018 zookeeper-server-cleanup
-rwxr-xr-x. 1 root root  648 Jan  4  2018 zookeeper-server
-rwxr-xr-x. 1 root root  303 Jan  4  2018 zookeeper-client
-rwxr-xr-x. 1 root root 6822 Jan  4  2018 zkServer.sh
-rwxr-xr-x. 1 root root   12 Jan  4  2018 zkServer-initialize.sh
-rwxr-xr-x. 1 root root 2840 Jan  4  2018 zkEnv.sh
-rwxr-xr-x. 1 root root 1709 Jan  4  2018 zkCli.sh
-rwxr-xr-x. 1 root root 2155 Jan  4  2018 zkCleanup.sh

たとえば、このファイルだけがある場合:(ドットなし)

-rwxr-xr-x 1 root root 2155 Jan  4  2018 zkCleanup.sh

次に、このドットをファイルのアクセス許可に追加するコマンドは何ですか?

ドット再帰を追加する2番目の方法

たとえば、下のすべてのサブフォルダに

/usr/hdp/current/zookeeper-server

前の例

 pwd
/usr/hdp/current/zookeeper-server


 ls -Z
drwxr-xr-x root root ?                                bin
lrwxrwxrwx root root ?                                conf -> /etc/zookeeper/2.6.4.0-91/0
drwxr-xr-x root root ?                                doc
drwxr-xr-x root root ?                                etc
drwxr-xr-x root root ?                                lib
drwxr-xr-x root root ?                                man
drwxr-xr-x root root ?                                usr
-rw-r--r-- root root ?                                zookeeper-3.4.6.2.6.4.0-91.jar
lrwxrwxrwx root root ?                                zookeeper.jar -> zookeeper-3.4.6.2.6.4.0-91.jar

期待される出力:

 pwd
/usr/hdp/current/zookeeper-server

ls -Z
drwxr-xr-x. root root system_u:object_r:bin_t:s0       bin
lrwxrwxrwx. root root unconfined_u:object_r:usr_t:s0   conf -> /etc/zookeeper/2.6.4.0-91/0
drwxr-xr-x. root root system_u:object_r:usr_t:s0       doc
drwxr-xr-x. root root system_u:object_r:usr_t:s0       etc
drwxr-xr-x. root root system_u:object_r:lib_t:s0       lib
drwxr-xr-x. root root system_u:object_r:usr_t:s0       man
drwxr-xr-x. root root system_u:object_r:usr_t:s0       usr
-rw-r--r--. root root system_u:object_r:usr_t:s0       zookeeper-3.4.6.2.6.4.0-91.jar
lrwxrwxrwx. root root system_u:object_r:usr_t:s0       zookeeper.jar -> zookeeper-3.4.6.2.6.4.0-91.jar

試してみます

restorecon -r /usr/hdp
ls -ltr
total 12
drwxr-xr-x. 27 root root 4096 Oct 29 10:05 2.6.0.3-8
drwxr-xr-x  29 root root 4096 Nov  6 11:29 2.6.4.0-91
drwxr-xr-x.  2 root root 4096 Dec 31 13:01 current

ただし、同じ権限を持つ2.6.4.0-91フォルダー(2.6.4.0-91の下のサブフォルダーを含む)

ls -Z
drwxr-xr-x. root root system_u:object_r:usr_t:s0       2.6.0.3-8
drwxr-xr-x  root root ?                                2.6.4.0-91
drwxr-xr-x. root root unconfined_u:object_r:usr_t:s0   current
1
shalom

末尾の.は、ファイルにSElinuxセキュリティコンテキストがあることを示します。デフォルトのセキュリティコンテキストを設定するには、実行できる必要があります

restorecon -r /usr/hdp 

上記では、システムでSELinuxが有効になっている必要があります。そうでない場合は、それを有効にしてファイルシステムにラベルを付ける必要があります

/ etc/selinux/configを編集して、

SELINUX=enforcing # or permissive
SELINUXTYPW=targeted

次に、コマンドを実行します

touch /.autorelabel
reboot
3
user9517