<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Proper NTFS permissions for work directories under Windows in Administration and Deployment</title>
    <link>https://communities.sas.com/t5/Administration-and-Deployment/Proper-NTFS-permissions-for-work-directories-under-Windows/m-p/194873#M2585</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Paul, I've got this working thanks to the link you provided.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For those that find this thread in the future, here's what I did:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;General:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;F: is a dedicated drive for the work and utility files.&amp;nbsp; It is the "root" of the work and util files.&lt;/P&gt;&lt;P&gt;We have F:\SASWork and F:\SASUtil to split out the work and utility files.&amp;nbsp; These correspond to the -WORK and -UTILLOC invocation options.&lt;/P&gt;&lt;P&gt;We have three SAS levels on the one machine, so we have F:\SASWork\Lev1 | Lev2 | Lev9 and F:\SASUtil\Lev1 | Lev2 | Lev9.&lt;/P&gt;&lt;P&gt;All directories and files are owned by SYSTEM down to the directories created by SAS (i.e. _TD12345_&amp;lt;machinename&amp;gt;)&lt;/P&gt;&lt;P&gt;The link Paul provided uses the "Everyone" principal.&amp;nbsp; I used "Users" instead of "Everyone", since all SAS users will be authenticated.&lt;/P&gt;&lt;P&gt;I tweaked some of the settings differently from the link Paul provided.&amp;nbsp; I tested pretty heavily, and these settings appear to meet my needs.&amp;nbsp; In general, I granted as little permission as possible but still work correctly.&amp;nbsp; See details below.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;Option 1:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;F:\&lt;/P&gt;&lt;P&gt;SYSTEM and Administrators:&amp;nbsp; Full Control ~ This folder, subfolders and files&lt;/P&gt;&lt;P&gt;Machinename\Users:&amp;nbsp; Traverse folder / execute file + List folder / read data ~ &lt;SPAN style="font-size: 13.3333330154419px;"&gt;This folder, subfolders and files&amp;nbsp; (This will display as "Special permissions")&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;Inheritance is on&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;F:\SASWork&lt;/P&gt;&lt;P&gt;Everything is inherited&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;F:\SASWork\Lev1 | Lev2 | Lev9&lt;/P&gt;&lt;P&gt;Everything is inherited&lt;/P&gt;&lt;P&gt;Additional ACEs:&lt;/P&gt;&lt;P&gt;Machinename\Users:&amp;nbsp; Traverse folder / execute file + List folder / read data + Read attributes + Create folders / append data ~ This folder only.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This allows the current SAS process to create the _TD12345_MachineName_ folder under F:\SASWork\Lev1.&amp;nbsp; This directory, subfolders, and files are owned by the user who has launched the SAS process.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note that some of these permissions duplicate permissions from the Users principal inherited from F:\.&lt;/P&gt;&lt;P&gt;CREATOR OWNER:&amp;nbsp; Full Control ~ Subfolders and files only.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This allows the current SAS process to read/write/delete files and subfolders under &lt;SPAN style="font-size: 13.3333330154419px;"&gt;_TD12345_MachineName_&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Under this scenario, another user can &lt;SPAN style="text-decoration: underline;"&gt;list&lt;/SPAN&gt; the contents of someone else's user library, but &lt;SPAN style="text-decoration: underline;"&gt;cannot read&lt;/SPAN&gt; the data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For example, I can execute libname foo "F:\SASWork\Lev1\_TD12345_MachineName", where that path is someone else's work folder.&amp;nbsp; The DMS explorer will show the contents, i.e. SAS datasets, in that library, but I cannot open them or read their data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the unlikely scenario where even the name of the contents in the other user's work library is sensitive:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;Option 2:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Same as above, except:&lt;/P&gt;&lt;P&gt;1) Turn off inheritance on Lev1 | Lev2 | Lev9&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;2) Remove the &lt;SPAN style="text-decoration: underline;"&gt;inherited&lt;/SPAN&gt; Machinename\Users principal&amp;nbsp; (i.e. remove &lt;SPAN style="font-size: 13.3333330154419px;"&gt;Traverse folder / execute file + List folder / read data from &lt;STRONG&gt;This folder, subfolders, and files&lt;/STRONG&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;3) Propagate the explicit permissions to the child objects (i.e. SYSTEM and Administrators)&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px; line-height: 1.5em;"&gt;4) So, the remaining Machinename\Users principal granting &lt;/SPAN&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;Traverse folder / execute file + List folder / read data + Read attributes + Create folders / append data&amp;nbsp; only applies to &lt;STRONG&gt;This folder only&lt;/STRONG&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In this scenario, I cannot even list the contents of the other user's work library.&amp;nbsp; &lt;SPAN style="font-size: 13.3333330154419px;"&gt;libname foo "F:\SASWork\Lev1\_TD12345_MachineName", where that path is someone else's work folder, fails with Access denied.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I went with Option 1, which meets my security needs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks again for the help Paul, and I hope this may help someone else who finds this in the future.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Scott&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: Scott Bass:&amp;nbsp; Further testing showed that CREATOR OWNER needs Full Control, not just Modify&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 14 Apr 2015 06:05:53 GMT</pubDate>
    <dc:creator>ScottBass</dc:creator>
    <dc:date>2015-04-14T06:05:53Z</dc:date>
    <item>
      <title>Proper NTFS permissions for work directories under Windows</title>
      <link>https://communities.sas.com/t5/Administration-and-Deployment/Proper-NTFS-permissions-for-work-directories-under-Windows/m-p/194871#M2583</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Windows Server 2012 R2&lt;/P&gt;&lt;P&gt;SAS 9.4&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Apologies if this info is already in the SAS documentation.&amp;nbsp; If so please point me in the right direction.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Our server is using a common "root" for all SAS work and SAS util directories.&amp;nbsp; That root is on its own disk drive.&amp;nbsp; The details are F:\SASWork\Lev1 | Lev2 | Lev9\&amp;lt;sas work sub-dir, eg _TD&amp;lt;PID&amp;gt;_&amp;lt;MachineName&amp;gt;_&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Assume that 1) our end users need X command capability from EG, and 2) some users may be working with sensitive data that only they should access.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Question:&amp;nbsp; what is the best practice/correct NTFS permissions to ensure that only the "owner" of the files gets access?&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've set these NTFS permissions (which aren't correct):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;F:\&amp;nbsp; Owner = MachineName\Administrators&lt;/P&gt;&lt;P&gt;Administrators:&amp;nbsp; Full Control&amp;nbsp; This folder, subfolders, and files&lt;/P&gt;&lt;P&gt;SYSTEM:&amp;nbsp; (Same as administrators)&lt;/P&gt;&lt;P&gt;MachineName\Users:&amp;nbsp; Read &amp;amp; Execute&amp;nbsp; This folder, subfolders, and files&amp;nbsp; (so that the SAS process can traverse the directory tree and create the sub-directory under F:\SASWork\Lev1\...)&lt;/P&gt;&lt;P&gt;Inheritance is turned on&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;F:\SASWork&amp;nbsp; Owner = MachineName\Administrators&lt;/P&gt;&lt;P&gt;Inherits from F:\&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;F:\SASWork\Lev1&amp;nbsp; &lt;SPAN style="font-size: 13.3333330154419px;"&gt;Owner = MachineName\Administrators&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;Inherits from F:\&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;Additional ACE:&amp;nbsp; MachineName\Users&amp;nbsp; Modify&amp;nbsp; This folder, subfolders, and files&amp;nbsp; (so that the SAS process can create the sub-directory under F:\SASWork\Lev1\...)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If the user running EG is an administrator, the SAS work sub-directory i.e. _TD12345_MachineName_ is owned by MachineName\Administrators.&amp;nbsp; If the user running EG is not an administrator, the SAS work sub-directory is owned by that user.&amp;nbsp; It's fine if administrators can see anyone else's data, but non-administrators should not be able to access anyone else's data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there an NTFS principal I can use, such as CREATOR OWNER, such that only the owner of the SAS work directory/files can access the files, without locking down the NTFS permissions so tight that the creation of the SAS work directory itself fails?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Scott&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;P.S.:&amp;nbsp; This is pretty esoteric, and I don't suspect any problems from my end users.&amp;nbsp; But assuming the end user will do the right thing isn't a good premise on which to base security!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Appendix:&amp;nbsp; Here is some sample code that a nefarious user could use to snoop on the work files (at least in my current environment...what about yours?)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;* get pathname to work library ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;%let&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; work=&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;%sysfunc&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;(pathname(work));&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;%put&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; &amp;amp;=work;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;* get all directories under the work library parent folder ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;* replace F:\SASWork\... with whatever is the parent folder for your work library ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;* note that even without XCMD the user could just guess at PIDs and use PROC COPY ;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;filename&lt;/SPAN&gt; &lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;dir&lt;/SPAN&gt; &lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;pipe&lt;/SPAN&gt; &lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: purple; background: white;"&gt;'dir F:\SASWork\Lev1 /s /b /a:d'&lt;/SPAN&gt; &lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;lrecl&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;=&lt;/SPAN&gt;&lt;STRONG style="color: teal; background: white; font-size: 11.0pt; font-family: 'Courier New';"&gt;1000&lt;/STRONG&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; background: white; font-size: 11.0pt; font-family: 'Courier New';"&gt;data&lt;/STRONG&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; workdirs;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;infile&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; dir &lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;lrecl&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;=&lt;/SPAN&gt;&lt;STRONG style="color: teal; background: white; font-size: 11.0pt; font-family: 'Courier New';"&gt;1000&lt;/STRONG&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;length&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; file $&lt;/SPAN&gt;&lt;STRONG style="color: teal; background: white; font-size: 11.0pt; font-family: 'Courier New';"&gt;1000&lt;/STRONG&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;input&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;file&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;=_infile_;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; background: white; font-size: 11.0pt; font-family: 'Courier New';"&gt;run&lt;/STRONG&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;* build a program to copy their data to my work library ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;filename&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; copy &lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;temp&lt;/SPAN&gt; &lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;lrecl&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;=&lt;/SPAN&gt;&lt;STRONG style="color: teal; background: white; font-size: 11.0pt; font-family: 'Courier New';"&gt;1000&lt;/STRONG&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; background: white; font-size: 11.0pt; font-family: 'Courier New';"&gt;data&lt;/STRONG&gt; &lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;_null_&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;set&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; workdirs;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;file&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; copy &lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;lrecl&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;=&lt;/SPAN&gt;&lt;STRONG style="color: teal; background: white; font-size: 11.0pt; font-family: 'Courier New';"&gt;1000&lt;/STRONG&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;put&lt;/SPAN&gt; &lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: purple; background: white;"&gt;"libname dummy '"&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; file +(-&lt;/SPAN&gt;&lt;STRONG style="color: teal; background: white; font-size: 11.0pt; font-family: 'Courier New';"&gt;1&lt;/STRONG&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;) &lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: purple; background: white;"&gt;"';"&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;put&lt;/SPAN&gt; &lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: purple; background: white;"&gt;"proc copy in=dummy out=work memtype=data;"&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;put&lt;/SPAN&gt; &lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: purple; background: white;"&gt;"run;"&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;put&lt;/SPAN&gt; &lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: purple; background: white;"&gt;"libname dummy clear;"&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; background: white; font-size: 11.0pt; font-family: 'Courier New';"&gt;run&lt;/STRONG&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;* check the program ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; background: white; font-size: 11.0pt; font-family: 'Courier New';"&gt;data&lt;/STRONG&gt; &lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;_null_&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;infile&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; copy &lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;lrecl&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;=&lt;/SPAN&gt;&lt;STRONG style="color: teal; background: white; font-size: 11.0pt; font-family: 'Courier New';"&gt;1000&lt;/STRONG&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;input&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;put&lt;/SPAN&gt; &lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;_infile_&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; background: white; font-size: 11.0pt; font-family: 'Courier New';"&gt;run&lt;/STRONG&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;* execute the program ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;%include&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; copy;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;* check the work library ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; background: white; font-size: 11.0pt; font-family: 'Courier New';"&gt;proc&lt;/STRONG&gt; &lt;STRONG style="color: navy; background: white; font-size: 11.0pt; font-family: 'Courier New';"&gt;datasets&lt;/STRONG&gt; &lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;lib&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;=work &lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;details&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; background: white; font-size: 11.0pt; font-family: 'Courier New';"&gt;quit&lt;/STRONG&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;/* alternative approach...runs faster but may not work 100%&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;* build a program to copy their data to my work library ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;filename copy "&amp;amp;work\copy.bat" lrecl=1000;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;data _null_;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;set workdirs;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;file copy lrecl=1000;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;put "copy " file " &amp;amp;work";&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;* check the program ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;data _null_;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;infile copy lrecl=1000;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;input;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;put _infile_;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;* execute the program ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;systask command "&amp;amp;work\copy.bat" wait;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Apr 2015 23:11:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Administration-and-Deployment/Proper-NTFS-permissions-for-work-directories-under-Windows/m-p/194871#M2583</guid>
      <dc:creator>ScottBass</dc:creator>
      <dc:date>2015-04-13T23:11:36Z</dc:date>
    </item>
    <item>
      <title>Re: Proper NTFS permissions for work directories under Windows</title>
      <link>https://communities.sas.com/t5/Administration-and-Deployment/Proper-NTFS-permissions-for-work-directories-under-Windows/m-p/194872#M2584</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It sounds like you might be after the same sort of permission pattern as one might want for folders that house home directories (automatically created ones). i.e. where a user can create a folder which then becomes available only to them (+ admins and system). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If so, have a look at this pattern: &lt;A href="http://serverfault.com/questions/456581/ntfs-permissions-for-root-share-that-houses-home-directories-windows-server-2008" title="http://serverfault.com/questions/456581/ntfs-permissions-for-root-share-that-houses-home-directories-windows-server-2008"&gt;NTFS Permissions for root share that houses Home Directories Windows Server 2008 R2 - Server Fault&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Apr 2015 23:57:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Administration-and-Deployment/Proper-NTFS-permissions-for-work-directories-under-Windows/m-p/194872#M2584</guid>
      <dc:creator>PaulHomes</dc:creator>
      <dc:date>2015-04-13T23:57:14Z</dc:date>
    </item>
    <item>
      <title>Re: Proper NTFS permissions for work directories under Windows</title>
      <link>https://communities.sas.com/t5/Administration-and-Deployment/Proper-NTFS-permissions-for-work-directories-under-Windows/m-p/194873#M2585</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Paul, I've got this working thanks to the link you provided.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For those that find this thread in the future, here's what I did:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;General:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;F: is a dedicated drive for the work and utility files.&amp;nbsp; It is the "root" of the work and util files.&lt;/P&gt;&lt;P&gt;We have F:\SASWork and F:\SASUtil to split out the work and utility files.&amp;nbsp; These correspond to the -WORK and -UTILLOC invocation options.&lt;/P&gt;&lt;P&gt;We have three SAS levels on the one machine, so we have F:\SASWork\Lev1 | Lev2 | Lev9 and F:\SASUtil\Lev1 | Lev2 | Lev9.&lt;/P&gt;&lt;P&gt;All directories and files are owned by SYSTEM down to the directories created by SAS (i.e. _TD12345_&amp;lt;machinename&amp;gt;)&lt;/P&gt;&lt;P&gt;The link Paul provided uses the "Everyone" principal.&amp;nbsp; I used "Users" instead of "Everyone", since all SAS users will be authenticated.&lt;/P&gt;&lt;P&gt;I tweaked some of the settings differently from the link Paul provided.&amp;nbsp; I tested pretty heavily, and these settings appear to meet my needs.&amp;nbsp; In general, I granted as little permission as possible but still work correctly.&amp;nbsp; See details below.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;Option 1:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;F:\&lt;/P&gt;&lt;P&gt;SYSTEM and Administrators:&amp;nbsp; Full Control ~ This folder, subfolders and files&lt;/P&gt;&lt;P&gt;Machinename\Users:&amp;nbsp; Traverse folder / execute file + List folder / read data ~ &lt;SPAN style="font-size: 13.3333330154419px;"&gt;This folder, subfolders and files&amp;nbsp; (This will display as "Special permissions")&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;Inheritance is on&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;F:\SASWork&lt;/P&gt;&lt;P&gt;Everything is inherited&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;F:\SASWork\Lev1 | Lev2 | Lev9&lt;/P&gt;&lt;P&gt;Everything is inherited&lt;/P&gt;&lt;P&gt;Additional ACEs:&lt;/P&gt;&lt;P&gt;Machinename\Users:&amp;nbsp; Traverse folder / execute file + List folder / read data + Read attributes + Create folders / append data ~ This folder only.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This allows the current SAS process to create the _TD12345_MachineName_ folder under F:\SASWork\Lev1.&amp;nbsp; This directory, subfolders, and files are owned by the user who has launched the SAS process.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note that some of these permissions duplicate permissions from the Users principal inherited from F:\.&lt;/P&gt;&lt;P&gt;CREATOR OWNER:&amp;nbsp; Full Control ~ Subfolders and files only.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This allows the current SAS process to read/write/delete files and subfolders under &lt;SPAN style="font-size: 13.3333330154419px;"&gt;_TD12345_MachineName_&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Under this scenario, another user can &lt;SPAN style="text-decoration: underline;"&gt;list&lt;/SPAN&gt; the contents of someone else's user library, but &lt;SPAN style="text-decoration: underline;"&gt;cannot read&lt;/SPAN&gt; the data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For example, I can execute libname foo "F:\SASWork\Lev1\_TD12345_MachineName", where that path is someone else's work folder.&amp;nbsp; The DMS explorer will show the contents, i.e. SAS datasets, in that library, but I cannot open them or read their data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the unlikely scenario where even the name of the contents in the other user's work library is sensitive:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;Option 2:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Same as above, except:&lt;/P&gt;&lt;P&gt;1) Turn off inheritance on Lev1 | Lev2 | Lev9&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;2) Remove the &lt;SPAN style="text-decoration: underline;"&gt;inherited&lt;/SPAN&gt; Machinename\Users principal&amp;nbsp; (i.e. remove &lt;SPAN style="font-size: 13.3333330154419px;"&gt;Traverse folder / execute file + List folder / read data from &lt;STRONG&gt;This folder, subfolders, and files&lt;/STRONG&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;3) Propagate the explicit permissions to the child objects (i.e. SYSTEM and Administrators)&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px; line-height: 1.5em;"&gt;4) So, the remaining Machinename\Users principal granting &lt;/SPAN&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;Traverse folder / execute file + List folder / read data + Read attributes + Create folders / append data&amp;nbsp; only applies to &lt;STRONG&gt;This folder only&lt;/STRONG&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In this scenario, I cannot even list the contents of the other user's work library.&amp;nbsp; &lt;SPAN style="font-size: 13.3333330154419px;"&gt;libname foo "F:\SASWork\Lev1\_TD12345_MachineName", where that path is someone else's work folder, fails with Access denied.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I went with Option 1, which meets my security needs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks again for the help Paul, and I hope this may help someone else who finds this in the future.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Scott&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: Scott Bass:&amp;nbsp; Further testing showed that CREATOR OWNER needs Full Control, not just Modify&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Apr 2015 06:05:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Administration-and-Deployment/Proper-NTFS-permissions-for-work-directories-under-Windows/m-p/194873#M2585</guid>
      <dc:creator>ScottBass</dc:creator>
      <dc:date>2015-04-14T06:05:53Z</dc:date>
    </item>
    <item>
      <title>Re: Proper NTFS permissions for work directories under Windows</title>
      <link>https://communities.sas.com/t5/Administration-and-Deployment/Proper-NTFS-permissions-for-work-directories-under-Windows/m-p/194874#M2586</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;No problem Scott. Glad I could help. I think I might bookmark this one myself. &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Apr 2015 00:04:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Administration-and-Deployment/Proper-NTFS-permissions-for-work-directories-under-Windows/m-p/194874#M2586</guid>
      <dc:creator>PaulHomes</dc:creator>
      <dc:date>2015-04-16T00:04:39Z</dc:date>
    </item>
  </channel>
</rss>

