find コマンドであるパーミッションのファイルを探す

必要があって、Sun Studio 12 の SPARC 版を使う必要があったのですが、手元に SPARC マシンがちょうど無く、他の方のマシンにインストールさせてもらいました。

そのマシンはまた OS など再インストールする可能性もあるとのことで、Sun Studio 12 のイメージを tar アーカイブとしてとっておき、手元にある x64 マシンから NFS で共有すれば使えるのだろうかと試してみました。

昔の Sun Studio というか Sun ONE Studio というか Forte Developer というか WorkShop というかコンパイラ製品は、ライセンスの縛りがあるので NFS で共有して複数のユーザーが同時に使用する場合には確か人数に応じたライセンスを購入する必要があるのですが、今の Studio 12 は無償なのでそのような制約はありません。

また、Solaris on x86 を NFS サーバーとして Solaris on SPARC マシンを NFS クライアントにすることも可能です。

さて、tar コマンドを実行したところ、以下のようなメッセージが出力されました。どうやらファイルのパーミッション的に読めないようです。

# tar cf - SUNWspro | gzip -c > /space/share/Studio12SPARC.tar.gz
tar: unable to open SUNWspro/installer/uninstall_Sun_Studio_12.class: アクセス権がありません。
# ls -la /space/share/Studio12SPARC.tar.gz
-rw-r--r--   1 root     root     468198670  3月 13日  13:38 /space/share/Studio12SPARC.tar.gz
# ls -l SUNWspro/installer/uninstall_Sun_Studio_12.class
-rw-------   1 root     other    1327319  3月 12日  11:46 SUNWspro/installer/uninstall_Sun_Studio_12.class

エラーメッセージ的にはこの 1 ファイルだけが読めないようですが、他にも無いかを確認しようと思いました。find コマンドで確かパーミッションを確認できる覚えがあったのですが、man ページを読んでもピンとこなかったのでいろいろ試してみました。 

$ ls -l
合計 0
-rw-------   1 test1    other          0  3月 13日  13:56 600
-rw-r-----   1 test1    other          0  3月 13日  13:56 640
-rw-r--r--   1 test1    other          0  3月 13日  13:57 644
-rw-rw-rw-   1 test1    other          0  3月 13日  14:03 666
$ find . -type f -perm 400
$ find . -type f -perm 040
$ find . -type f -perm 004
$ find . -type f -perm 600
./600
$ find . -type f -perm 640
./640
$ find . -type f -perm 644
./644
$ find . -type f -perm 666
./666
$ find . -type f -perm -400
./640
./644
./666
./600
$ find . -type f -perm -040
./640
./644
./666
$  find . -type f -perm -004
./644
./666
$ find . -type f ! -perm 400
./640
./644
./666
./600
$ find . -type f ! -perm -400
$ find . -type f ! -perm -040
./600
$ find . -type f ! -perm -004
./640
./600
$  find . -type f ! -perm -002
./640
./644
./600

  • -perm xxx だとパーミッションが xxx のファイルが表示されます
  • -perm -xxx だとビットがオンの箇所が一致しているファイルが表示されます
  • ! -perm xxx だとパーミッションが xxx 以外のファイルが表示されます
  • ! -perm -xxx だと xxx でオンにした箇所がオフになっているファイルが表示されているようです

ということで、目的のコマンドとその結果はこのようになりました。

# find . -type f ! -perm -004
./SUNWspro/installer/uninstall_Sun_Studio_12.class
# find . -type f ! -perm -040
./SUNWspro/installer/uninstall_Sun_Studio_12.class

他には読めないファイルは無さそうです。

そういえば、-perm -004 と -perm -040 を同時に指定するとどうなるんだろう。。時間が無いのでまた今度にします。

投稿されたコメント:

コメント
  • HTML文法 不許可
About

user13138578

Search

Archives
« 4月 2014
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
今日