Permission

verify repair permissions アクセス権の検証・修復

Website_image00280319_13110

処理方法を選べるようにしてみた

(*
Verify-Repair-Permissions.scpt
アクセス権の検証・修正をコマンドラインで行ないます
10.11のディスクユーティリティ対応

20160319 初回作成
20160319 設定項目を追加
*)

---設定項目
#1の場合はアップルスクリプト内で処理
#2の場合はターミナルを呼び出しての処理
#ターミナル処理の場合のキャンセル時に応答が無くなる場合があるため
#1を推奨
set numApplication to 1 as number
#


tell application "Finder"
activate
----選択用のリストを定義
set listLngList to {"【検証】diskutil Verify(-10.10)", "【修復】diskutil Repair(-10.10)", "-------", "【検証】libexec Verify(10.11)", "【修復】libexec Repair(10.11)"} as list
----リスト表示のダイアログを出します
set thePermissionsAns to (choose from list listLngList with title "処理方法を選択" with prompt "アクセス権の検証・修復方法を選んでください" default items "【検証】libexec Verify(10.11)" without multiple selections allowed and empty selection allowed) as text
----エラーよけ
if thePermissionsAns is "-------" then
return
else if thePermissionsAns is "false" then
return
end if
end tell

---ダイアログの戻り値のリストをテキストに変換
set thePermissionsAns to thePermissionsAns as text
---処理の分岐
if thePermissionsAns is "【検証】diskutil Verify(-10.10)" then
set theCmdText to "sudo diskutil verifyPermissions /" as text
else if thePermissionsAns is "【修復】diskutil Repair(-10.10)" then
set theCmdText to "sudo diskutil repairPermissions /" as text
else if thePermissionsAns is "【検証】libexec Verify(10.11)" then
set theCmdText to "sudo /usr/libexec/repair_packages --verify --standard-pkgs --volume /" as text
else if thePermissionsAns is "【修復】libexec Repair(10.11)" then
set theCmdText to "sudo /usr/libexec/repair_packages --repair --standard-pkgs --volume /" as text
else
return
end if


if numApplication is 1 then
log "処理を開始します。処理が終わるまでしばらくお待ち下さい"
do shell script theCmdText with administrator privileges
log "処理が終了しました"
else if numApplication is 2 then

---ターミナルでコマンドを開く
tell application "Terminal" to launch

tell application "Terminal"
activate
do script theCmdText
end tell
else
return
end if


「Verify-Repair-Permissions.scpt.zip」をダウンロード

ソース
https://github.com/force4u/Verify-Repair-Permissions.scpt/blob/master/Verify-Repair-Permissions.scpt

|

[chflags]Finder上での『鍵』マークの仕組み

ここでは
『ロック』=『鍵マーク』について
を書きます。

■デフォルトのアクセス権についてはこちら[LINK]新しいウィンドで開きます
■アクセスコントーロールACLsについてはこちら[LINK]新しいウィンドで開きます
を参照下さい。


 
Finder上で見れる
鍵マークは
『chflags』なるコマンドで付加されたり削除されたりしています。

鍵マークを知るために
chflagsについて書きましょう

chflagsには
共通で使える物
ユーザー環境に限るもの
スーパーユーザー環境に限るもの
があります

 

共通属性

設定解除意味
hiddennohiddenFinder等GUIから隠す。不可視ファイルの設定


コマンドとFinderの動作を
並べてみましょう
ファイルへ付加される『フラッグ』を調べるには
ターミナルで『ls -lO』を使います。

Force4u00221024_194016

このファイルにhidden不可視 のフラグを付けます

chflags hidden <ファイル名やフォルダ名(パス指定)>

Force4u00221024_194055


ファイルにhiddenの属性が付加されて
ファイルがFinder上で見れなくなりました。

では
戻します。

chflags hidden nohidden <ファイル名やフォルダ名(パス指定)>


Force4u00221024_194124

となります。

もう何となくわかりましたね?

不可視ファイルの可視化はこちらの方法もあります。
[SetFile]ファイルを不可視 可視 に変更する。: [FORCE][LINK]新しいウィンドで開きます

 

ユーザー環境

設定解除意味
opaquenoopaqueディスクをユニオンマウント[LINK]新しいウィンドで開きますした時用(未確認)
nodumpdumpダンプする際に含めるか?含めないか?(未確認)
uappndnouappndファイル(開けるが変更できない) フォルダ(追加出来るが削除できないドロップボックスの動作に似ている)
uappendnouappend↑に同じ
uchgnouchgロック『鍵』をかける変更不可に変更
uchangenouchange↑に同じ
uimmutablenouimmutable↑に同じ


 

管理者(su)環境

chflagsの前にsudoが必要になります。

sudo chflags 〜となります。


設定解除意味
archnoarchアーカイブフラグ 検索時にアーカイブの中を除外すると検索されない(たぶん...笑)
archivednoarchived↑に同じ
sappndnosappndファイル(開けるが変更できない) フォルダ(追加出来るが削除できないドロップボックスの動作に似ている)
sappendnosappend↑に同じ
schgnoschgロック『鍵』をかける変更不可
schangenoschange↑に同じ
simmutablenosimmutable↑に同じ

 

それではいよいよ
ロック『鍵』のかかってしまった
ディスクのフラグの解除をしてみましょう。

問題になるのは
こんな表示の場合ですね。

20101024_65012_pm

10.6だとこんな感じです。

Force4u00221024_204314

『カスタム』と出る場合はこちら[LINK]新しいウィンドで開きますを先に読んでください。

ちなみに
↑で表示されるUIDでログインしてFinderからロック解除って方法で成功した例もあります。

 

全部ターミナルでの作業になります。
注意
コマンドを間違えると起動不能になる事も考えられます
コマンド操作に自信の無い人やよくわからないなぁ〜な人は
心配なら詳しい人にお願いした方が良いかもしれません。


サンプルでは
『ディスクの名前』は『Disk1』になっています。
自分のディスク名で変更してください。(ここが重要です)

まずは『Volumes』に移動します。



sh-3.2#
sh-3.2#
sh-3.2# cd /Volumes
sh-3.2#
sh-3.2# pwd
/Volumes



pwdの戻り値が『/Volumes』なら
『ls -lO』エル エス スペース ハイフン エル オーの大文字

実行します。



sh-3.2# ls -lO
total X
drwxrwxrwx 22 admin staff schg,uappnd 816 Oct 24 17:50 Disk1



マウントしている『Disk1』の
ディスクボリュームに『フラグ』
『schg』と『uappnd』が付いているのがわかります。

では解除します。



sh-3.2#
sh-3.2# sudo chflags -R noschg Disk1
Password:<ここに管理者パスワード>
sh-3.2#



解除出来たか?
『ls -lO』で確認します。


sh-3.2#
sh-3.2# ls -lO
total X
drwxrwxrwx 22 admin staff uappnd 816 Oct 24 17:50 Disk1



schgが取れました
続けてuappndも取ります。



sh-3.2#
sh-3.2# sudo chflags -R nouappnd Disk1
sh-3.2#
sh-3.2#



解除出来たか?
『ls -lO』で確認します。


sh-3.2#
sh-3.2# ls -lO
total X
drwxrwxrwx 22 admin staff - 816 Oct 24 17:50 Disk1



これで『uappnd』も取れました

一連の操作で
書き込み不能だった
ディスクに書き込み出来るようになります。

後はアクセス権ですので

Force4u00221024_210522

ファインダーの情報を見る
から変更しても良いですし
ターミナルを使ってchmodしても良いでしょう

フラグを『取る』のはさして問題ありませんが
フラグを『付ける』のは最悪
間違えると起動出来なくなったりしますので
注意して実施してください。

| | コメント (0)

[ACLs]アクセスコントロールを使う(メモ)

OSXでアクセスコントロールを使う場合

メモ

GUIで設定出来ます。
10.6xだと若干表示がバグりますが
まぁ使える範囲です。

Sandbox 2[LINK]OpenNewWindow
Screencapture00220712_142156


 
こちらの記事は大変参考になると思います。

MOSA Developer News[MOSADeN=モサ伝]第238号[LINK]OpenNewWindow
MOSA Developer News[MOSADeN=モサ伝]第239号[LINK]OpenNewWindow
MOSA Developer News[MOSADeN=モサ伝]第240号[LINK]OpenNewWindow
MOSA Developer News[MOSADeN=モサ伝]第241号[LINK]OpenNewWindow

 

※Snow Leopardでは無効になっています。

アクセスコントーロールを
ACLs(Access Control Lists)

有効にする(Enable)
sudo fsaclctl -p /Volumes/ディスク名 -e

無効にする(Disable)
sudo fsaclctl -p /Volumes/ディスク名 -d


確認はしていないが

Force4u00221024_191407


TinkerTool System Release 2: Description[LINK]新しいウィンドで開きます

がACLsをサポートしているので
トラブル時には試してみると良い

| | コメント (0)

【まとめ】MacOSXのデフォルト・アクセス権を変更する。

 
■10.5までのACLsについてはこちら[LINK]新しいウィンドで開きます
■ chflagsについてはこちら[LINK]新しいウィンドで開きます
を参照ください
 

Macintosh
MacOSXのデフォルトのアクセス権の変更方法

ここで言う『デフォルトのアクセス権』とは
新規でフォルダを作成した際に
適応されるアクセス権の事です。


MacOSX10〜10.4.xまでは
TinkerTool[LINK]
使うのが簡単で良いでしょう
基本的には日本語化されていますので
安心して使えます。
また
TinkerToolを使って変更した内容を
簡単にリセットする事も出来ますので
おすすめです。

MacOSX10.5〜10.5.2まではこちら[LINK]の方法

MacOSX10.5.3〜10.6xはこちら[LINK]の方法


MacOSX10.10はこちら[LINK]の方法
[Yosemite]デフォルトのアクセス権を設定する



変更する事が出来ます。

Server管理さているネットワークの場合は
アクセスコントロール[LINK]OpenNewWindow
使うのが定石だと思いますが

小さいネットワークで
ファイル共有機能で共有している場合は
この設定を行わないと
ファイルが削除出来ない等
色々と不具合が出ますね。

参考にしてください。

 

確認していませんが
10.4では
777に設定する場合



defaults write /Library/Preferences/com.apple.finder umask -int 0
chmod +r /Library/Preferences/com.apple.finder.plist
defaults write com.apple.finder umask -int 0




が有効
って記述をしているサイトがあるが[LINK]OpenNewWindow
今となっては確認のしようも無く...w


 
この情報で助かったぁ!な方はぜひ
↓クリック募金をお願いします。     
クリックで救える命がある。

| | コメント (0)

[AppleScript]MacOSXのデフォルト・アクセス権を変更する。

設定用のスクリプトを作成した。

設定値はモードで入力するようにしたので以下を参考にしてください。

Mode        
7:読み書き実行  
6:読み書き    
5:読み  実行  
4:読み      
3:  書き実行  
2:  書き    
1:    実行  
0:      不可

UMASK値一覧はこちら[LINK]です。
こちらも参考にしてください。
 
デフォルトのアクセス権は
セキュリティの状態に大きく影響を与えます。
不安な方やアクセス権を変更する必要の無い方は755で利用しましょう。

 
「MacOSX10.5.3〜10.6.x用.scpt.zip」をダウンロード

「MacOSX10.5.3〜10.6.x用.txt」を見る

 
「MacOSX10.5〜10.5.2用.scpt.zip」をダウンロード

「MacOSX10.5〜10.5.2用.txt」を見る
 

| | コメント (0)

Xserver custom umask

まとめ記事はこちら[LINK]OpenNewWindowです。
まずは↑の記事を読んでみてください。
 

Appleから公式のドキュメントが出ました。
こちら[LINK]

ユーザ−のプロセスは
/etc/launchd-user.conf
に記述

システムプロセスは
/etc/launchd.conf
って事のようですね。

 

launchdについてはこちら[LINK]OpenNewWindowも参照下さい


 

| | コメント (0)

【10.6】デフォルトのアクセス権を変更する。

まとめ記事はこちら[LINK]OpenNewWindowです。
まずは↑の記事を読んでみてください。
 

/etc/launchd-user.conf
に設定する方法に変更は無いようです。



sudo touch /etc/launchd-user.conf






sudo vi /etc/launchd-user.conf




VIで下記のように編集



umask 000






読み書き全ユーザーフルアクセス
となるようです。

モードで775にするなら
umask 002
となります。


umaskの値は
こちら[LINK]に一覧を用意しています。

| | コメント (0)

[10.5]デフォルトのアクセス権を変える【その2】

まとめ記事はこちら[LINK]OpenNewWindowです。
まずは↑の記事を読んでみてください。
 

アップルのサイト[LINK]に掲載されている[PDF]を見ると

以下のような記述がありました。

Chapter 7 Securing Data and Using Encryption
の161ページ
To change the global umask file permission:
に以下のような記述があります。




sudo defaults write /Library/Preferences/.GlobalPreferences NSUmask `echo "ibase=8; 027" | bc`



`echo "ibase=8; 027" | bc`
これは
23

sudo defaults write /Library/Preferences/.GlobalPreferences NSUmask 23



を意味します。

NSUmask一覧はこちら[LINK]を見て下さい。

"Umask値"はOctで8進数
"NSUmask値"はDecで10進数
です。
ちなみに
HEXは16進数
BINは2進数

これをbcコマンドを使って変換しているわけです。
`echo "ibase=8; 027" | bc`

『027』をibase(入力数値)で指定した基数8進数として評価
なので
23となります。
逆は
`echo "obase =8; 23" | bc`
『23』をobase(出力数値)で指定した基数10進数で評価
となります。

| | コメント (0)

[10.5]デフォルトのアクセス権を変える【変更】


まとめ記事はこちら[LINK]OpenNewWindowです。
まずは↑の記事を読んでみてください。
 

10.5.3から
なにやら変更が入ったようで
設定ファイルが変わったようで

/etc/launchd-user.conf

な感じで記述が必要になった模様

手順は以下




sudo touch /etc/launchd-user.conf






sudo vi /etc/launchd-user.conf




VIで下記のように編集



umask 000






読み書き全ユーザーフルアクセス
となるようです。

umaskの値は
こちら[LINK]に一覧を用意しています。

| | コメント (0)

[10.5]デフォルトのアクセス権を変える

まとめ記事はこちら[LINK]OpenNewWindowです。
まずは↑の記事を読んでみてください。
 

10.5からは
defaults write NSGlobalDomainが
使えなくなっていますので

launchd.conf
を使います。

こちら[LINK]に一覧を用意しています。
『Umask Oct』
の所の値を設定すれば良いわけです。

まずはlaunchd.confを作成します。
ユーザー用とシステム用で
作成位置が違います。
システム用:/etc/launchd.conf
ユーザー用:~/.launchd.conf
また
/etc/rc.common
に記述する方法もあるようです。

ここではユーザー用として設定します。




touch ~/.launchd.conf




としてファイルを作成して


vi ~/.launchd.conf





とvi等で編集します。

でフォルトモードは『755』なので



umask 022




の行を加えれば良いとなります。

また全ユーザー書き込み可能な設定の場合は


umask 000





となります。

追記
10.5.3から変更になりました。
こちら

| | コメント (0)

その他のカテゴリー

Accessibility AccessibilityCheck AccessibilityForm AccessibilityInDesign AccessibilityPDF Acrobat Acrobat Action Acrobat Annotation Acrobat AppleScripts Acrobat Character Acrobat Layer Acrobat PDF Embed API Acrobat PDF Form Print Acrobat Plug-ins Acrobat Portfolios Acrobat Print AcrobatBarcode AcrobatDialog AcrobatForm AcrobatJS AcrobatMenu AcrobatPDF AcrobatStamp AcrobatYouTube AddressBook Adobe Adobe InDesign Adobe Photoshop AdobeAppleScript AdobeBridge AdobeIllustrator AdobeJSX aed Alfresco Android AnimationGif Apple Apple Support AppleScript AppleScriptBasics AppleScriptCharacter AppleScriptColor AppleScriptDroplet AppleScriptErrorNum AppleScriptFolder AppleScriptFontBook AppleScriptRename AppleScriptTools AppleSymbols Applications Barcode Barcode2D BarcodePostal BetterHTMLExport Book BOX Browser buzz Certificates CharacterEntity CharacterSets Colors Cool Site CSS Cutting DecoMail DecorationMail Design Desktop Diff DJ dmg DNS Documents Download DTP eBook Editer eMail Envelopes ExifTool Facebook FFmpeg File System Fonts FontsTool FontsWeb FOOD FormPrint ftp Gadget Gif Animation Google Google Chrome Enterprise HexEditor HTML info iPhoto ISBN ISO iTunes iWork iWorkNumbers iWorkNumbersCalendar iWorkNumbersTimecard iWorkPages JavaScript JeditX JeditX Regexp JeditXAppleScript JIS jquery Letterpress Library logo Mac Admin Mac Archiver Mac Browser Mac Browser Plugin Mac QuickLook Mac Setup Mac Spotlight Mac Video Map Memo Microsoft Teams Mobby mobileconfig Moto Movies Music Network Basic ntp OCR Office OfficePowerPoint OSX Paint Pantone Paper PDFlib Permission Photo Pictograms Print Public Python QuickLook QuickTime QuickTimeSetting QuickTimeSound Real Media ReName ResourceFork ruby Sample Screen ScreenCast Search Security SEO Sharing SLAResource Sound Spotlight Stamp SWF TCC.db Tutorial PSD TV Twitter Typography Unicode Utilities Video WEB APP WebFont Wedding Windows WindowsMedia XML XMP XPS YouTube YouTube Rss