※当サイトの記事には、広告・プロモーションが含まれます。

JavaでLinuxの権限のマトリックスを作ってみる

nazology.net

⇧ Oh, my gosh...

JavaLinuxの権限のマトリックスを作ってみる

Linuxの権限のマトリックスとか無いんかなと思って、ネットの情報を漁っていたのだけど、全てを網羅しているって情報は見当たらなかった。

ivan.reallusiondesign.com

⇧ 上記サイト様にインスパイアされましたので、Linuxの権限のマトリックスJavaで作成してみる。

ちなみに、

zenn.dev

⇧ 上記サイト様によりますと、大量のデータを0埋めする場合、パフォーマンスの観点から、標準APIのString.format()は避けた方が良いようです。

今回は、String.format()を使ってしまったけど。

まぁ、そもそも、4重ループとか使ってしまっているから、パフォーマンスは完全に無視ですな...

■/test-linux-permission/src/app/LinuxPermissinMatrix.java

package app;

import static java.util.Map.*;

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;

public class LinuxPermissinMatrix {

  public static void main(String[] args) {
    // TODO 自動生成されたメソッド・スタブ
    List<String> permissions = Arrays.asList("User", "Group", "Other");
    List<String> masks = Arrays.asList("r", "w", "x");
    Map<String, String> paternMap = Map.ofEntries(
      entry("---", "000")
      , entry("--x", "001")
      , entry("-w-", "010")
      , entry("-wx", "011")
      , entry("r--", "100")
      , entry("r-x", "101")
      , entry("rw-", "110")
      , entry("rwx", "111")
    );
    
    String htmlTableHeader = makeLinuxPermissionMatrixHeader(permissions, masks);
    String htmlTableBody = makeLinuxPermissionMatrixBody(paternMap);
    String htmlTable = makeLinuxPermissionMatrix(htmlTableHeader, htmlTableBody);
    System.out.println(htmlTable);
  }

  
  private static String makeLinuxPermissionMatrixHeader(List<String> permissions, List<String> masks) {
    StringBuilder sb = new StringBuilder();
    sb.append("<thead><tr><th rowspan=\"2\">Unix Permission Mask</th>\n");
    for (String permission: permissions) {
      sb.append("<th colspan=\"3\">");
      sb.append(permission);
      sb.append("</th>\n");
    }
    sb.append("<th rowspan=\"2\">Decimal Representation</th>\n");
    sb.append("</tr>\n<tr>\n");
    
    for (int idx = 0; idx < permissions.size(); idx++) {
      for (String mask : masks) {
        sb.append("<th>");
        sb.append(mask.toUpperCase());
        sb.append("</th>\n");
      }
    }
    sb.append("</tr>\n");
    sb.append("</thead>\n");
    return sb.toString();
  }

  private static String makeLinuxPermissionMatrixBody(Map<String, String> paternMap) {
    StringBuilder sb = new StringBuilder();
    StringBuilder sortValueSb = new StringBuilder();
    StringBuilder sortKeySb = new StringBuilder();
    Map<Integer, String> sortMap = new TreeMap<Integer, String>();
    
    sb.append("<tbody>");
    for (Map.Entry<String, String> entryUser: paternMap.entrySet()) {
      for (Map.Entry<String, String> entryGroup: paternMap.entrySet()) {
        for (Map.Entry<String, String> entryOther: paternMap.entrySet()) {
          sortValueSb.append("<tr><td>");
          sortValueSb.append(entryUser.getKey());
          sortValueSb.append(entryGroup.getKey());
          sortValueSb.append(entryOther.getKey());
          sortValueSb.append("</td>\n");

          for (char mask: entryUser.getValue().toCharArray()) {
            sortValueSb.append("<td>");
            sortValueSb.append(mask);
            sortValueSb.append("</td>\n");
          }
          for (char mask: entryGroup.getValue().toCharArray()) {
            sortValueSb.append("<td>");
            sortValueSb.append(mask);
            sortValueSb.append("</td>\n");
          }
          for (char mask: entryOther.getValue().toCharArray()) {
            sortValueSb.append("<td>");
            sortValueSb.append(mask);
            sortValueSb.append("</td>\n");
          }
          
          int numberUserPamission = Integer.parseInt(entryUser.getValue(), 2);
          int numberGroupPamission = Integer.parseInt(entryGroup.getValue(), 2);
          int numberOtherPamission = Integer.parseInt(entryOther.getValue(), 2);
          
          sortKeySb.append(String.valueOf(numberUserPamission));
          sortKeySb.append(String.valueOf(numberGroupPamission));
          sortKeySb.append(String.valueOf(numberOtherPamission));          
          
          sortMap.put(Integer.valueOf(sortKeySb.toString()), sortValueSb.toString());
          sortKeySb.setLength(0);
          sortValueSb.setLength(0);
        }
      }
    }
    for (Map.Entry<Integer, String> entry: sortMap.entrySet() ) {
      sb.append(entry.getValue());
      sb.append("<td class=\"permission\">");
      sb.append(String.format("%03d", entry.getKey()));
      sb.append("</td>\n");
      sb.append("</tr>\n");
    }    
    sb.append("</tbody>\n");
    return sb.toString();
  }
  
  
  private static String makeLinuxPermissionMatrix(String htmlTableHeader, String htmlTableBody) {
     StringBuilder sb = new StringBuilder();
     sb.append("<table>");
     sb.append(htmlTableHeader);
     sb.append(htmlTableBody);
     sb.append("</table>\n");

       return sb.toString();
  }
  
}

⇧ で、実行すると、

実行結果

Unix Permission Mask User Group Other Decimal Representation
R W X R W X R W X
--------- 0 0 0 0 0 0 0 0 0 000
--------x 0 0 0 0 0 0 0 0 1 001
-------w- 0 0 0 0 0 0 0 1 0 002
-------wx 0 0 0 0 0 0 0 1 1 003
------r-- 0 0 0 0 0 0 1 0 0 004
------r-x 0 0 0 0 0 0 1 0 1 005
------rw- 0 0 0 0 0 0 1 1 0 006
------rwx 0 0 0 0 0 0 1 1 1 007
-----x--- 0 0 0 0 0 1 0 0 0 010
-----x--x 0 0 0 0 0 1 0 0 1 011
-----x-w- 0 0 0 0 0 1 0 1 0 012
-----x-wx 0 0 0 0 0 1 0 1 1 013
-----xr-- 0 0 0 0 0 1 1 0 0 014
-----xr-x 0 0 0 0 0 1 1 0 1 015
-----xrw- 0 0 0 0 0 1 1 1 0 016
-----xrwx 0 0 0 0 0 1 1 1 1 017
----w---- 0 0 0 0 1 0 0 0 0 020
----w---x 0 0 0 0 1 0 0 0 1 021
----w--w- 0 0 0 0 1 0 0 1 0 022
----w--wx 0 0 0 0 1 0 0 1 1 023
----w-r-- 0 0 0 0 1 0 1 0 0 024
----w-r-x 0 0 0 0 1 0 1 0 1 025
----w-rw- 0 0 0 0 1 0 1 1 0 026
----w-rwx 0 0 0 0 1 0 1 1 1 027
----wx--- 0 0 0 0 1 1 0 0 0 030
----wx--x 0 0 0 0 1 1 0 0 1 031
----wx-w- 0 0 0 0 1 1 0 1 0 032
----wx-wx 0 0 0 0 1 1 0 1 1 033
----wxr-- 0 0 0 0 1 1 1 0 0 034
----wxr-x 0 0 0 0 1 1 1 0 1 035
----wxrw- 0 0 0 0 1 1 1 1 0 036
----wxrwx 0 0 0 0 1 1 1 1 1 037
---r----- 0 0 0 1 0 0 0 0 0 040
---r----x 0 0 0 1 0 0 0 0 1 041
---r---w- 0 0 0 1 0 0 0 1 0 042
---r---wx 0 0 0 1 0 0 0 1 1 043
---r--r-- 0 0 0 1 0 0 1 0 0 044
---r--r-x 0 0 0 1 0 0 1 0 1 045
---r--rw- 0 0 0 1 0 0 1 1 0 046
---r--rwx 0 0 0 1 0 0 1 1 1 047
---r-x--- 0 0 0 1 0 1 0 0 0 050
---r-x--x 0 0 0 1 0 1 0 0 1 051
---r-x-w- 0 0 0 1 0 1 0 1 0 052
---r-x-wx 0 0 0 1 0 1 0 1 1 053
---r-xr-- 0 0 0 1 0 1 1 0 0 054
---r-xr-x 0 0 0 1 0 1 1 0 1 055
---r-xrw- 0 0 0 1 0 1 1 1 0 056
---r-xrwx 0 0 0 1 0 1 1 1 1 057
---rw---- 0 0 0 1 1 0 0 0 0 060
---rw---x 0 0 0 1 1 0 0 0 1 061
---rw--w- 0 0 0 1 1 0 0 1 0 062
---rw--wx 0 0 0 1 1 0 0 1 1 063
---rw-r-- 0 0 0 1 1 0 1 0 0 064
---rw-r-x 0 0 0 1 1 0 1 0 1 065
---rw-rw- 0 0 0 1 1 0 1 1 0 066
---rw-rwx 0 0 0 1 1 0 1 1 1 067
---rwx--- 0 0 0 1 1 1 0 0 0 070
---rwx--x 0 0 0 1 1 1 0 0 1 071
---rwx-w- 0 0 0 1 1 1 0 1 0 072
---rwx-wx 0 0 0 1 1 1 0 1 1 073
---rwxr-- 0 0 0 1 1 1 1 0 0 074
---rwxr-x 0 0 0 1 1 1 1 0 1 075
---rwxrw- 0 0 0 1 1 1 1 1 0 076
---rwxrwx 0 0 0 1 1 1 1 1 1 077
--x------ 0 0 1 0 0 0 0 0 0 100
--x-----x 0 0 1 0 0 0 0 0 1 101
--x----w- 0 0 1 0 0 0 0 1 0 102
--x----wx 0 0 1 0 0 0 0 1 1 103
--x---r-- 0 0 1 0 0 0 1 0 0 104
--x---r-x 0 0 1 0 0 0 1 0 1 105
--x---rw- 0 0 1 0 0 0 1 1 0 106
--x---rwx 0 0 1 0 0 0 1 1 1 107
--x--x--- 0 0 1 0 0 1 0 0 0 110
--x--x--x 0 0 1 0 0 1 0 0 1 111
--x--x-w- 0 0 1 0 0 1 0 1 0 112
--x--x-wx 0 0 1 0 0 1 0 1 1 113
--x--xr-- 0 0 1 0 0 1 1 0 0 114
--x--xr-x 0 0 1 0 0 1 1 0 1 115
--x--xrw- 0 0 1 0 0 1 1 1 0 116
--x--xrwx 0 0 1 0 0 1 1 1 1 117
--x-w---- 0 0 1 0 1 0 0 0 0 120
--x-w---x 0 0 1 0 1 0 0 0 1 121
--x-w--w- 0 0 1 0 1 0 0 1 0 122
--x-w--wx 0 0 1 0 1 0 0 1 1 123
--x-w-r-- 0 0 1 0 1 0 1 0 0 124
--x-w-r-x 0 0 1 0 1 0 1 0 1 125
--x-w-rw- 0 0 1 0 1 0 1 1 0 126
--x-w-rwx 0 0 1 0 1 0 1 1 1 127
--x-wx--- 0 0 1 0 1 1 0 0 0 130
--x-wx--x 0 0 1 0 1 1 0 0 1 131
--x-wx-w- 0 0 1 0 1 1 0 1 0 132
--x-wx-wx 0 0 1 0 1 1 0 1 1 133
--x-wxr-- 0 0 1 0 1 1 1 0 0 134
--x-wxr-x 0 0 1 0 1 1 1 0 1 135
--x-wxrw- 0 0 1 0 1 1 1 1 0 136
--x-wxrwx 0 0 1 0 1 1 1 1 1 137
--xr----- 0 0 1 1 0 0 0 0 0 140
--xr----x 0 0 1 1 0 0 0 0 1 141
--xr---w- 0 0 1 1 0 0 0 1 0 142
--xr---wx 0 0 1 1 0 0 0 1 1 143
--xr--r-- 0 0 1 1 0 0 1 0 0 144
--xr--r-x 0 0 1 1 0 0 1 0 1 145
--xr--rw- 0 0 1 1 0 0 1 1 0 146
--xr--rwx 0 0 1 1 0 0 1 1 1 147
--xr-x--- 0 0 1 1 0 1 0 0 0 150
--xr-x--x 0 0 1 1 0 1 0 0 1 151
--xr-x-w- 0 0 1 1 0 1 0 1 0 152
--xr-x-wx 0 0 1 1 0 1 0 1 1 153
--xr-xr-- 0 0 1 1 0 1 1 0 0 154
--xr-xr-x 0 0 1 1 0 1 1 0 1 155
--xr-xrw- 0 0 1 1 0 1 1 1 0 156
--xr-xrwx 0 0 1 1 0 1 1 1 1 157
--xrw---- 0 0 1 1 1 0 0 0 0 160
--xrw---x 0 0 1 1 1 0 0 0 1 161
--xrw--w- 0 0 1 1 1 0 0 1 0 162
--xrw--wx 0 0 1 1 1 0 0 1 1 163
--xrw-r-- 0 0 1 1 1 0 1 0 0 164
--xrw-r-x 0 0 1 1 1 0 1 0 1 165
--xrw-rw- 0 0 1 1 1 0 1 1 0 166
--xrw-rwx 0 0 1 1 1 0 1 1 1 167
--xrwx--- 0 0 1 1 1 1 0 0 0 170
--xrwx--x 0 0 1 1 1 1 0 0 1 171
--xrwx-w- 0 0 1 1 1 1 0 1 0 172
--xrwx-wx 0 0 1 1 1 1 0 1 1 173
--xrwxr-- 0 0 1 1 1 1 1 0 0 174
--xrwxr-x 0 0 1 1 1 1 1 0 1 175
--xrwxrw- 0 0 1 1 1 1 1 1 0 176
--xrwxrwx 0 0 1 1 1 1 1 1 1 177
-w------- 0 1 0 0 0 0 0 0 0 200
-w------x 0 1 0 0 0 0 0 0 1 201
-w-----w- 0 1 0 0 0 0 0 1 0 202
-w-----wx 0 1 0 0 0 0 0 1 1 203
-w----r-- 0 1 0 0 0 0 1 0 0 204
-w----r-x 0 1 0 0 0 0 1 0 1 205
-w----rw- 0 1 0 0 0 0 1 1 0 206
-w----rwx 0 1 0 0 0 0 1 1 1 207
-w---x--- 0 1 0 0 0 1 0 0 0 210
-w---x--x 0 1 0 0 0 1 0 0 1 211
-w---x-w- 0 1 0 0 0 1 0 1 0 212
-w---x-wx 0 1 0 0 0 1 0 1 1 213
-w---xr-- 0 1 0 0 0 1 1 0 0 214
-w---xr-x 0 1 0 0 0 1 1 0 1 215
-w---xrw- 0 1 0 0 0 1 1 1 0 216
-w---xrwx 0 1 0 0 0 1 1 1 1 217
-w--w---- 0 1 0 0 1 0 0 0 0 220
-w--w---x 0 1 0 0 1 0 0 0 1 221
-w--w--w- 0 1 0 0 1 0 0 1 0 222
-w--w--wx 0 1 0 0 1 0 0 1 1 223
-w--w-r-- 0 1 0 0 1 0 1 0 0 224
-w--w-r-x 0 1 0 0 1 0 1 0 1 225
-w--w-rw- 0 1 0 0 1 0 1 1 0 226
-w--w-rwx 0 1 0 0 1 0 1 1 1 227
-w--wx--- 0 1 0 0 1 1 0 0 0 230
-w--wx--x 0 1 0 0 1 1 0 0 1 231
-w--wx-w- 0 1 0 0 1 1 0 1 0 232
-w--wx-wx 0 1 0 0 1 1 0 1 1 233
-w--wxr-- 0 1 0 0 1 1 1 0 0 234
-w--wxr-x 0 1 0 0 1 1 1 0 1 235
-w--wxrw- 0 1 0 0 1 1 1 1 0 236
-w--wxrwx 0 1 0 0 1 1 1 1 1 237
-w-r----- 0 1 0 1 0 0 0 0 0 240
-w-r----x 0 1 0 1 0 0 0 0 1 241
-w-r---w- 0 1 0 1 0 0 0 1 0 242
-w-r---wx 0 1 0 1 0 0 0 1 1 243
-w-r--r-- 0 1 0 1 0 0 1 0 0 244
-w-r--r-x 0 1 0 1 0 0 1 0 1 245
-w-r--rw- 0 1 0 1 0 0 1 1 0 246
-w-r--rwx 0 1 0 1 0 0 1 1 1 247
-w-r-x--- 0 1 0 1 0 1 0 0 0 250
-w-r-x--x 0 1 0 1 0 1 0 0 1 251
-w-r-x-w- 0 1 0 1 0 1 0 1 0 252
-w-r-x-wx 0 1 0 1 0 1 0 1 1 253
-w-r-xr-- 0 1 0 1 0 1 1 0 0 254
-w-r-xr-x 0 1 0 1 0 1 1 0 1 255
-w-r-xrw- 0 1 0 1 0 1 1 1 0 256
-w-r-xrwx 0 1 0 1 0 1 1 1 1 257
-w-rw---- 0 1 0 1 1 0 0 0 0 260
-w-rw---x 0 1 0 1 1 0 0 0 1 261
-w-rw--w- 0 1 0 1 1 0 0 1 0 262
-w-rw--wx 0 1 0 1 1 0 0 1 1 263
-w-rw-r-- 0 1 0 1 1 0 1 0 0 264
-w-rw-r-x 0 1 0 1 1 0 1 0 1 265
-w-rw-rw- 0 1 0 1 1 0 1 1 0 266
-w-rw-rwx 0 1 0 1 1 0 1 1 1 267
-w-rwx--- 0 1 0 1 1 1 0 0 0 270
-w-rwx--x 0 1 0 1 1 1 0 0 1 271
-w-rwx-w- 0 1 0 1 1 1 0 1 0 272
-w-rwx-wx 0 1 0 1 1 1 0 1 1 273
-w-rwxr-- 0 1 0 1 1 1 1 0 0 274
-w-rwxr-x 0 1 0 1 1 1 1 0 1 275
-w-rwxrw- 0 1 0 1 1 1 1 1 0 276
-w-rwxrwx 0 1 0 1 1 1 1 1 1 277
-wx------ 0 1 1 0 0 0 0 0 0 300
-wx-----x 0 1 1 0 0 0 0 0 1 301
-wx----w- 0 1 1 0 0 0 0 1 0 302
-wx----wx 0 1 1 0 0 0 0 1 1 303
-wx---r-- 0 1 1 0 0 0 1 0 0 304
-wx---r-x 0 1 1 0 0 0 1 0 1 305
-wx---rw- 0 1 1 0 0 0 1 1 0 306
-wx---rwx 0 1 1 0 0 0 1 1 1 307
-wx--x--- 0 1 1 0 0 1 0 0 0 310
-wx--x--x 0 1 1 0 0 1 0 0 1 311
-wx--x-w- 0 1 1 0 0 1 0 1 0 312
-wx--x-wx 0 1 1 0 0 1 0 1 1 313
-wx--xr-- 0 1 1 0 0 1 1 0 0 314
-wx--xr-x 0 1 1 0 0 1 1 0 1 315
-wx--xrw- 0 1 1 0 0 1 1 1 0 316
-wx--xrwx 0 1 1 0 0 1 1 1 1 317
-wx-w---- 0 1 1 0 1 0 0 0 0 320
-wx-w---x 0 1 1 0 1 0 0 0 1 321
-wx-w--w- 0 1 1 0 1 0 0 1 0 322
-wx-w--wx 0 1 1 0 1 0 0 1 1 323
-wx-w-r-- 0 1 1 0 1 0 1 0 0 324
-wx-w-r-x 0 1 1 0 1 0 1 0 1 325
-wx-w-rw- 0 1 1 0 1 0 1 1 0 326
-wx-w-rwx 0 1 1 0 1 0 1 1 1 327
-wx-wx--- 0 1 1 0 1 1 0 0 0 330
-wx-wx--x 0 1 1 0 1 1 0 0 1 331
-wx-wx-w- 0 1 1 0 1 1 0 1 0 332
-wx-wx-wx 0 1 1 0 1 1 0 1 1 333
-wx-wxr-- 0 1 1 0 1 1 1 0 0 334
-wx-wxr-x 0 1 1 0 1 1 1 0 1 335
-wx-wxrw- 0 1 1 0 1 1 1 1 0 336
-wx-wxrwx 0 1 1 0 1 1 1 1 1 337
-wxr----- 0 1 1 1 0 0 0 0 0 340
-wxr----x 0 1 1 1 0 0 0 0 1 341
-wxr---w- 0 1 1 1 0 0 0 1 0 342
-wxr---wx 0 1 1 1 0 0 0 1 1 343
-wxr--r-- 0 1 1 1 0 0 1 0 0 344
-wxr--r-x 0 1 1 1 0 0 1 0 1 345
-wxr--rw- 0 1 1 1 0 0 1 1 0 346
-wxr--rwx 0 1 1 1 0 0 1 1 1 347
-wxr-x--- 0 1 1 1 0 1 0 0 0 350
-wxr-x--x 0 1 1 1 0 1 0 0 1 351
-wxr-x-w- 0 1 1 1 0 1 0 1 0 352
-wxr-x-wx 0 1 1 1 0 1 0 1 1 353
-wxr-xr-- 0 1 1 1 0 1 1 0 0 354
-wxr-xr-x 0 1 1 1 0 1 1 0 1 355
-wxr-xrw- 0 1 1 1 0 1 1 1 0 356
-wxr-xrwx 0 1 1 1 0 1 1 1 1 357
-wxrw---- 0 1 1 1 1 0 0 0 0 360
-wxrw---x 0 1 1 1 1 0 0 0 1 361
-wxrw--w- 0 1 1 1 1 0 0 1 0 362
-wxrw--wx 0 1 1 1 1 0 0 1 1 363
-wxrw-r-- 0 1 1 1 1 0 1 0 0 364
-wxrw-r-x 0 1 1 1 1 0 1 0 1 365
-wxrw-rw- 0 1 1 1 1 0 1 1 0 366
-wxrw-rwx 0 1 1 1 1 0 1 1 1 367
-wxrwx--- 0 1 1 1 1 1 0 0 0 370
-wxrwx--x 0 1 1 1 1 1 0 0 1 371
-wxrwx-w- 0 1 1 1 1 1 0 1 0 372
-wxrwx-wx 0 1 1 1 1 1 0 1 1 373
-wxrwxr-- 0 1 1 1 1 1 1 0 0 374
-wxrwxr-x 0 1 1 1 1 1 1 0 1 375
-wxrwxrw- 0 1 1 1 1 1 1 1 0 376
-wxrwxrwx 0 1 1 1 1 1 1 1 1 377
r-------- 1 0 0 0 0 0 0 0 0 400
r-------x 1 0 0 0 0 0 0 0 1 401
r------w- 1 0 0 0 0 0 0 1 0 402
r------wx 1 0 0 0 0 0 0 1 1 403
r-----r-- 1 0 0 0 0 0 1 0 0 404
r-----r-x 1 0 0 0 0 0 1 0 1 405
r-----rw- 1 0 0 0 0 0 1 1 0 406
r-----rwx 1 0 0 0 0 0 1 1 1 407
r----x--- 1 0 0 0 0 1 0 0 0 410
r----x--x 1 0 0 0 0 1 0 0 1 411
r----x-w- 1 0 0 0 0 1 0 1 0 412
r----x-wx 1 0 0 0 0 1 0 1 1 413
r----xr-- 1 0 0 0 0 1 1 0 0 414
r----xr-x 1 0 0 0 0 1 1 0 1 415
r----xrw- 1 0 0 0 0 1 1 1 0 416
r----xrwx 1 0 0 0 0 1 1 1 1 417
r---w---- 1 0 0 0 1 0 0 0 0 420
r---w---x 1 0 0 0 1 0 0 0 1 421
r---w--w- 1 0 0 0 1 0 0 1 0 422
r---w--wx 1 0 0 0 1 0 0 1 1 423
r---w-r-- 1 0 0 0 1 0 1 0 0 424
r---w-r-x 1 0 0 0 1 0 1 0 1 425
r---w-rw- 1 0 0 0 1 0 1 1 0 426
r---w-rwx 1 0 0 0 1 0 1 1 1 427
r---wx--- 1 0 0 0 1 1 0 0 0 430
r---wx--x 1 0 0 0 1 1 0 0 1 431
r---wx-w- 1 0 0 0 1 1 0 1 0 432
r---wx-wx 1 0 0 0 1 1 0 1 1 433
r---wxr-- 1 0 0 0 1 1 1 0 0 434
r---wxr-x 1 0 0 0 1 1 1 0 1 435
r---wxrw- 1 0 0 0 1 1 1 1 0 436
r---wxrwx 1 0 0 0 1 1 1 1 1 437
r--r----- 1 0 0 1 0 0 0 0 0 440
r--r----x 1 0 0 1 0 0 0 0 1 441
r--r---w- 1 0 0 1 0 0 0 1 0 442
r--r---wx 1 0 0 1 0 0 0 1 1 443
r--r--r-- 1 0 0 1 0 0 1 0 0 444
r--r--r-x 1 0 0 1 0 0 1 0 1 445
r--r--rw- 1 0 0 1 0 0 1 1 0 446
r--r--rwx 1 0 0 1 0 0 1 1 1 447
r--r-x--- 1 0 0 1 0 1 0 0 0 450
r--r-x--x 1 0 0 1 0 1 0 0 1 451
r--r-x-w- 1 0 0 1 0 1 0 1 0 452
r--r-x-wx 1 0 0 1 0 1 0 1 1 453
r--r-xr-- 1 0 0 1 0 1 1 0 0 454
r--r-xr-x 1 0 0 1 0 1 1 0 1 455
r--r-xrw- 1 0 0 1 0 1 1 1 0 456
r--r-xrwx 1 0 0 1 0 1 1 1 1 457
r--rw---- 1 0 0 1 1 0 0 0 0 460
r--rw---x 1 0 0 1 1 0 0 0 1 461
r--rw--w- 1 0 0 1 1 0 0 1 0 462
r--rw--wx 1 0 0 1 1 0 0 1 1 463
r--rw-r-- 1 0 0 1 1 0 1 0 0 464
r--rw-r-x 1 0 0 1 1 0 1 0 1 465
r--rw-rw- 1 0 0 1 1 0 1 1 0 466
r--rw-rwx 1 0 0 1 1 0 1 1 1 467
r--rwx--- 1 0 0 1 1 1 0 0 0 470
r--rwx--x 1 0 0 1 1 1 0 0 1 471
r--rwx-w- 1 0 0 1 1 1 0 1 0 472
r--rwx-wx 1 0 0 1 1 1 0 1 1 473
r--rwxr-- 1 0 0 1 1 1 1 0 0 474
r--rwxr-x 1 0 0 1 1 1 1 0 1 475
r--rwxrw- 1 0 0 1 1 1 1 1 0 476
r--rwxrwx 1 0 0 1 1 1 1 1 1 477
r-x------ 1 0 1 0 0 0 0 0 0 500
r-x-----x 1 0 1 0 0 0 0 0 1 501
r-x----w- 1 0 1 0 0 0 0 1 0 502
r-x----wx 1 0 1 0 0 0 0 1 1 503
r-x---r-- 1 0 1 0 0 0 1 0 0 504
r-x---r-x 1 0 1 0 0 0 1 0 1 505
r-x---rw- 1 0 1 0 0 0 1 1 0 506
r-x---rwx 1 0 1 0 0 0 1 1 1 507
r-x--x--- 1 0 1 0 0 1 0 0 0 510
r-x--x--x 1 0 1 0 0 1 0 0 1 511
r-x--x-w- 1 0 1 0 0 1 0 1 0 512
r-x--x-wx 1 0 1 0 0 1 0 1 1 513
r-x--xr-- 1 0 1 0 0 1 1 0 0 514
r-x--xr-x 1 0 1 0 0 1 1 0 1 515
r-x--xrw- 1 0 1 0 0 1 1 1 0 516
r-x--xrwx 1 0 1 0 0 1 1 1 1 517
r-x-w---- 1 0 1 0 1 0 0 0 0 520
r-x-w---x 1 0 1 0 1 0 0 0 1 521
r-x-w--w- 1 0 1 0 1 0 0 1 0 522
r-x-w--wx 1 0 1 0 1 0 0 1 1 523
r-x-w-r-- 1 0 1 0 1 0 1 0 0 524
r-x-w-r-x 1 0 1 0 1 0 1 0 1 525
r-x-w-rw- 1 0 1 0 1 0 1 1 0 526
r-x-w-rwx 1 0 1 0 1 0 1 1 1 527
r-x-wx--- 1 0 1 0 1 1 0 0 0 530
r-x-wx--x 1 0 1 0 1 1 0 0 1 531
r-x-wx-w- 1 0 1 0 1 1 0 1 0 532
r-x-wx-wx 1 0 1 0 1 1 0 1 1 533
r-x-wxr-- 1 0 1 0 1 1 1 0 0 534
r-x-wxr-x 1 0 1 0 1 1 1 0 1 535
r-x-wxrw- 1 0 1 0 1 1 1 1 0 536
r-x-wxrwx 1 0 1 0 1 1 1 1 1 537
r-xr----- 1 0 1 1 0 0 0 0 0 540
r-xr----x 1 0 1 1 0 0 0 0 1 541
r-xr---w- 1 0 1 1 0 0 0 1 0 542
r-xr---wx 1 0 1 1 0 0 0 1 1 543
r-xr--r-- 1 0 1 1 0 0 1 0 0 544
r-xr--r-x 1 0 1 1 0 0 1 0 1 545
r-xr--rw- 1 0 1 1 0 0 1 1 0 546
r-xr--rwx 1 0 1 1 0 0 1 1 1 547
r-xr-x--- 1 0 1 1 0 1 0 0 0 550
r-xr-x--x 1 0 1 1 0 1 0 0 1 551
r-xr-x-w- 1 0 1 1 0 1 0 1 0 552
r-xr-x-wx 1 0 1 1 0 1 0 1 1 553
r-xr-xr-- 1 0 1 1 0 1 1 0 0 554
r-xr-xr-x 1 0 1 1 0 1 1 0 1 555
r-xr-xrw- 1 0 1 1 0 1 1 1 0 556
r-xr-xrwx 1 0 1 1 0 1 1 1 1 557
r-xrw---- 1 0 1 1 1 0 0 0 0 560
r-xrw---x 1 0 1 1 1 0 0 0 1 561
r-xrw--w- 1 0 1 1 1 0 0 1 0 562
r-xrw--wx 1 0 1 1 1 0 0 1 1 563
r-xrw-r-- 1 0 1 1 1 0 1 0 0 564
r-xrw-r-x 1 0 1 1 1 0 1 0 1 565
r-xrw-rw- 1 0 1 1 1 0 1 1 0 566
r-xrw-rwx 1 0 1 1 1 0 1 1 1 567
r-xrwx--- 1 0 1 1 1 1 0 0 0 570
r-xrwx--x 1 0 1 1 1 1 0 0 1 571
r-xrwx-w- 1 0 1 1 1 1 0 1 0 572
r-xrwx-wx 1 0 1 1 1 1 0 1 1 573
r-xrwxr-- 1 0 1 1 1 1 1 0 0 574
r-xrwxr-x 1 0 1 1 1 1 1 0 1 575
r-xrwxrw- 1 0 1 1 1 1 1 1 0 576
r-xrwxrwx 1 0 1 1 1 1 1 1 1 577
rw------- 1 1 0 0 0 0 0 0 0 600
rw------x 1 1 0 0 0 0 0 0 1 601
rw-----w- 1 1 0 0 0 0 0 1 0 602
rw-----wx 1 1 0 0 0 0 0 1 1 603
rw----r-- 1 1 0 0 0 0 1 0 0 604
rw----r-x 1 1 0 0 0 0 1 0 1 605
rw----rw- 1 1 0 0 0 0 1 1 0 606
rw----rwx 1 1 0 0 0 0 1 1 1 607
rw---x--- 1 1 0 0 0 1 0 0 0 610
rw---x--x 1 1 0 0 0 1 0 0 1 611
rw---x-w- 1 1 0 0 0 1 0 1 0 612
rw---x-wx 1 1 0 0 0 1 0 1 1 613
rw---xr-- 1 1 0 0 0 1 1 0 0 614
rw---xr-x 1 1 0 0 0 1 1 0 1 615
rw---xrw- 1 1 0 0 0 1 1 1 0 616
rw---xrwx 1 1 0 0 0 1 1 1 1 617
rw--w---- 1 1 0 0 1 0 0 0 0 620
rw--w---x 1 1 0 0 1 0 0 0 1 621
rw--w--w- 1 1 0 0 1 0 0 1 0 622
rw--w--wx 1 1 0 0 1 0 0 1 1 623
rw--w-r-- 1 1 0 0 1 0 1 0 0 624
rw--w-r-x 1 1 0 0 1 0 1 0 1 625
rw--w-rw- 1 1 0 0 1 0 1 1 0 626
rw--w-rwx 1 1 0 0 1 0 1 1 1 627
rw--wx--- 1 1 0 0 1 1 0 0 0 630
rw--wx--x 1 1 0 0 1 1 0 0 1 631
rw--wx-w- 1 1 0 0 1 1 0 1 0 632
rw--wx-wx 1 1 0 0 1 1 0 1 1 633
rw--wxr-- 1 1 0 0 1 1 1 0 0 634
rw--wxr-x 1 1 0 0 1 1 1 0 1 635
rw--wxrw- 1 1 0 0 1 1 1 1 0 636
rw--wxrwx 1 1 0 0 1 1 1 1 1 637
rw-r----- 1 1 0 1 0 0 0 0 0 640
rw-r----x 1 1 0 1 0 0 0 0 1 641
rw-r---w- 1 1 0 1 0 0 0 1 0 642
rw-r---wx 1 1 0 1 0 0 0 1 1 643
rw-r--r-- 1 1 0 1 0 0 1 0 0 644
rw-r--r-x 1 1 0 1 0 0 1 0 1 645
rw-r--rw- 1 1 0 1 0 0 1 1 0 646
rw-r--rwx 1 1 0 1 0 0 1 1 1 647
rw-r-x--- 1 1 0 1 0 1 0 0 0 650
rw-r-x--x 1 1 0 1 0 1 0 0 1 651
rw-r-x-w- 1 1 0 1 0 1 0 1 0 652
rw-r-x-wx 1 1 0 1 0 1 0 1 1 653
rw-r-xr-- 1 1 0 1 0 1 1 0 0 654
rw-r-xr-x 1 1 0 1 0 1 1 0 1 655
rw-r-xrw- 1 1 0 1 0 1 1 1 0 656
rw-r-xrwx 1 1 0 1 0 1 1 1 1 657
rw-rw---- 1 1 0 1 1 0 0 0 0 660
rw-rw---x 1 1 0 1 1 0 0 0 1 661
rw-rw--w- 1 1 0 1 1 0 0 1 0 662
rw-rw--wx 1 1 0 1 1 0 0 1 1 663
rw-rw-r-- 1 1 0 1 1 0 1 0 0 664
rw-rw-r-x 1 1 0 1 1 0 1 0 1 665
rw-rw-rw- 1 1 0 1 1 0 1 1 0 666
rw-rw-rwx 1 1 0 1 1 0 1 1 1 667
rw-rwx--- 1 1 0 1 1 1 0 0 0 670
rw-rwx--x 1 1 0 1 1 1 0 0 1 671
rw-rwx-w- 1 1 0 1 1 1 0 1 0 672
rw-rwx-wx 1 1 0 1 1 1 0 1 1 673
rw-rwxr-- 1 1 0 1 1 1 1 0 0 674
rw-rwxr-x 1 1 0 1 1 1 1 0 1 675
rw-rwxrw- 1 1 0 1 1 1 1 1 0 676
rw-rwxrwx 1 1 0 1 1 1 1 1 1 677
rwx------ 1 1 1 0 0 0 0 0 0 700
rwx-----x 1 1 1 0 0 0 0 0 1 701
rwx----w- 1 1 1 0 0 0 0 1 0 702
rwx----wx 1 1 1 0 0 0 0 1 1 703
rwx---r-- 1 1 1 0 0 0 1 0 0 704
rwx---r-x 1 1 1 0 0 0 1 0 1 705
rwx---rw- 1 1 1 0 0 0 1 1 0 706
rwx---rwx 1 1 1 0 0 0 1 1 1 707
rwx--x--- 1 1 1 0 0 1 0 0 0 710
rwx--x--x 1 1 1 0 0 1 0 0 1 711
rwx--x-w- 1 1 1 0 0 1 0 1 0 712
rwx--x-wx 1 1 1 0 0 1 0 1 1 713
rwx--xr-- 1 1 1 0 0 1 1 0 0 714
rwx--xr-x 1 1 1 0 0 1 1 0 1 715
rwx--xrw- 1 1 1 0 0 1 1 1 0 716
rwx--xrwx 1 1 1 0 0 1 1 1 1 717
rwx-w---- 1 1 1 0 1 0 0 0 0 720
rwx-w---x 1 1 1 0 1 0 0 0 1 721
rwx-w--w- 1 1 1 0 1 0 0 1 0 722
rwx-w--wx 1 1 1 0 1 0 0 1 1 723
rwx-w-r-- 1 1 1 0 1 0 1 0 0 724
rwx-w-r-x 1 1 1 0 1 0 1 0 1 725
rwx-w-rw- 1 1 1 0 1 0 1 1 0 726
rwx-w-rwx 1 1 1 0 1 0 1 1 1 727
rwx-wx--- 1 1 1 0 1 1 0 0 0 730
rwx-wx--x 1 1 1 0 1 1 0 0 1 731
rwx-wx-w- 1 1 1 0 1 1 0 1 0 732
rwx-wx-wx 1 1 1 0 1 1 0 1 1 733
rwx-wxr-- 1 1 1 0 1 1 1 0 0 734
rwx-wxr-x 1 1 1 0 1 1 1 0 1 735
rwx-wxrw- 1 1 1 0 1 1 1 1 0 736
rwx-wxrwx 1 1 1 0 1 1 1 1 1 737
rwxr----- 1 1 1 1 0 0 0 0 0 740
rwxr----x 1 1 1 1 0 0 0 0 1 741
rwxr---w- 1 1 1 1 0 0 0 1 0 742
rwxr---wx 1 1 1 1 0 0 0 1 1 743
rwxr--r-- 1 1 1 1 0 0 1 0 0 744
rwxr--r-x 1 1 1 1 0 0 1 0 1 745
rwxr--rw- 1 1 1 1 0 0 1 1 0 746
rwxr--rwx 1 1 1 1 0 0 1 1 1 747
rwxr-x--- 1 1 1 1 0 1 0 0 0 750
rwxr-x--x 1 1 1 1 0 1 0 0 1 751
rwxr-x-w- 1 1 1 1 0 1 0 1 0 752
rwxr-x-wx 1 1 1 1 0 1 0 1 1 753
rwxr-xr-- 1 1 1 1 0 1 1 0 0 754
rwxr-xr-x 1 1 1 1 0 1 1 0 1 755
rwxr-xrw- 1 1 1 1 0 1 1 1 0 756
rwxr-xrwx 1 1 1 1 0 1 1 1 1 757
rwxrw---- 1 1 1 1 1 0 0 0 0 760
rwxrw---x 1 1 1 1 1 0 0 0 1 761
rwxrw--w- 1 1 1 1 1 0 0 1 0 762
rwxrw--wx 1 1 1 1 1 0 0 1 1 763
rwxrw-r-- 1 1 1 1 1 0 1 0 0 764
rwxrw-r-x 1 1 1 1 1 0 1 0 1 765
rwxrw-rw- 1 1 1 1 1 0 1 1 0 766
rwxrw-rwx 1 1 1 1 1 0 1 1 1 767
rwxrwx--- 1 1 1 1 1 1 0 0 0 770
rwxrwx--x 1 1 1 1 1 1 0 0 1 771
rwxrwx-w- 1 1 1 1 1 1 0 1 0 772
rwxrwx-wx 1 1 1 1 1 1 0 1 1 773
rwxrwxr-- 1 1 1 1 1 1 1 0 0 774
rwxrwxr-x 1 1 1 1 1 1 1 0 1 775
rwxrwxrw- 1 1 1 1 1 1 1 1 0 776
rwxrwxrwx 1 1 1 1 1 1 1 1 1 777

⇧ という感じで、Linuxの権限のマトリックスを作成することができました。

2進数の0と1で、最大3桁なので、10進数にすると、0~7まで表現できて、

  • User
  • Group
  • Other

の3つで考えると、最大が777になるってことですな。

まぁ、よく使うパターンは限られてるとは思うけども。

qiita.com

⇧ 上記サイト様によりますと、

  • 777
  • 775
  • 755
  • 664
  • 644

あたりを使うことが多いんかな。

久々に、Javaを触ったから、いろいろ忘れてるなぁ...

まぁ、そもそも、HTMLの生成で、且つ、動的なデータを扱ってるわけでも無いので、サーバサイド側で実装する必要が無いので、JavaScriptとかで実装した方が良さそうね...

毎度モヤモヤ感が半端ない...

今回はこのへんで。